POST
|
It seems it's impossible to edit pixels of raster layer's raster. Am I right?
... View more
06-20-2019
07:50 AM
|
0
|
0
|
808
|
POST
|
Thanks, that works! Quite strange behavior since cell size is optional parameter.
... View more
06-17-2019
11:47 AM
|
0
|
0
|
1368
|
POST
|
Hi Prashant, I need layer since I want to show raster on map. CanEdit returns true. So have RasterLayer in which I need to modify pixels. But my edits are not applied. Max
... View more
06-17-2019
11:43 AM
|
0
|
0
|
808
|
POST
|
I've also checked Create Raster Dataset for GDB and file rasters, and in all cases output dataset has such strange extent. Please give advice how can I create valid raster dataset with valid extent for WGS84?
... View more
06-17-2019
02:59 AM
|
0
|
2
|
1368
|
POST
|
OK, but it has been created with Create Raster Dataset tool, so dataset is created in legitimate way. Is it a bug in Create Raster Dataset geoprocessing tool? How can I create valid raster dataset in GDB?
... View more
06-15-2019
03:19 AM
|
0
|
0
|
1368
|
POST
|
Hi Charles, I found exact scenario to reproduce issue. I suppose you added feature layer with WGS84 and all is OK. Yes, in this case I see valid values too. But if I add raster dataset with WGS84 to new project, values will be invalid: I've attached zip archive with GDB with raster dataset to my question. Raster dataset created with this code: var fullExtent = await QueuedTask.Run(() => EnvelopeBuilder.CreateEnvelope(-180, -90, 180, 90, SpatialReferences.WGS84));
var args = Geoprocessing.MakeValueArray(datastorePath, RasterDatasetName, null, "32_BIT_UNSIGNED", null, 1, null, "NONE");
var env = Geoprocessing.MakeEnvironmentArray(outputCoordinateSystem: SpatialReferences.WGS84, extent: fullExtent);
var gpResult = await Geoprocessing.ExecuteToolAsync("CreateRasterDataset_management", args, env, cancellationToken, flags: GPExecuteToolFlags.AddOutputsToMap);
... View more
06-14-2019
07:36 AM
|
0
|
5
|
1368
|
POST
|
OK, but I need to support earlier versions too. In my case I can easily work around the problem using WGS84 spatial reference. So just instead of default map's spatial reference I specify WGS84 (from added layer with this SR) and tool works. Thanks for fixing this in 2.4.
... View more
06-11-2019
03:45 AM
|
0
|
0
|
816
|
POST
|
Hi Narelle, It seems I found the root cause of the bug. My full workflow is: create layer, change name of label class, set its properties. In your example you get already added layer (after some time after adding, I suppose) and change label class. If I insert thread sleep for small amount of time before changing placement, placement will be changed as expected. I believe the problem is related to https://community.esri.com/thread/234941-featurelayeraddlabelclass-ignores-passed-class-name. My workaround at now is: layer.LabelClasses.ToList().ForEach(lc => layer.RemoveLabelClass(lc.Name));
layer.AddLabelClass(LabelClassName);
SpinWait.SpinUntil(() => layer.LabelClasses.Any(lc => lc.Name == LabelClassName)); After that I am able to change placement properties. Thanks
... View more
06-11-2019
03:41 AM
|
0
|
0
|
503
|
POST
|
I'm trying to add label class for points layer and place labels at points centers. My code: var maplexLabelPlacementProperties = labelClass.GetMaplexLabelPlacementProperties() ?? new CIMMaplexLabelPlacementProperties();
maplexLabelPlacementProperties.PointPlacementMethod = MaplexPointPlacementMethod.CenteredOnPoint;
maplexLabelPlacementProperties.CanRemoveOverlappingLabel = false;
maplexLabelPlacementProperties.CanTruncateLabel = false;
maplexLabelPlacementProperties.EnablePointPlacementPriorities = false;
labelClass.SetMaplexLabelPlacementProperties(maplexLabelPlacementProperties); So I explicitly set MaplexPointPlacementMethod.CenteredOnPoint. But placement is not applied. If I go to Label Classes dock pane, I will see Best position in placement combobox. Is it possible or am I doing something wrong?
... View more
06-10-2019
05:29 AM
|
0
|
2
|
594
|
POST
|
I'm trying to edit raster of GDB raster dataset added to map as RasterLayer. I need to set new extent, height, width and cells values. My code is: var raster = layer.GetRaster();
raster.SetExtent(extent);
raster.SetHeight(rowsCount);
raster.SetWidth(columnsCount);
var pixelBlockHeight = Math.Min(raster.GetHeight(), rowsCount);
var pixelBlockWidth = Math.Min(raster.GetWidth(), columnsCount);
var pixelBlock = raster.CreatePixelBlock(pixelBlockWidth, pixelBlockHeight);
raster.Read(0, 0, pixelBlock);
var sourcePixels = pixelBlock.GetPixelData(0, false);
for (var i = 0; i < pixelBlockHeight; i++)
{
for (var j = 0; j < pixelBlockWidth; j++)
{
sourcePixels.SetValue(Convert.ToUInt32(1000), j, i);
}
}
pixelBlock.SetPixelData(0, sourcePixels);
raster.Write(0, 0, pixelBlock);
raster.Refresh(); But nothing happens. No values are applied. If I get pixel block again, all values are zero. Statistics is empty. What am I doing wrong?
... View more
06-09-2019
07:04 AM
|
0
|
4
|
941
|
POST
|
Code for test: var sr = mapView.Map.SpatialReference;
var extent = mapView.Extent; Steps to reproduce the problem: 1. Create new project. Variables now will have values: 2. Add layer with WGS84 spatial reference and zoom to full extent (the issue will be without zooming too). Now execute the code above: We see that spatial reference now is WGS84, but extent coordinates doesn't correspond to WGS84. Max extent for this sr must be -180 -90 180 90 in degrees, but the values from screenshot are obviously wrong. More than that I can't project extent to WGS84, because it's already in WGS84, so coordinates still the same!
... View more
06-08-2019
07:32 AM
|
0
|
8
|
1613
|
POST
|
Screenshot for bad case: As for project it's just new one without any added layers except the default Topographic. If you run the tool with parameters from screenshot, ArcGIS Pro will crash.
... View more
06-08-2019
06:16 AM
|
0
|
2
|
816
|
POST
|
Hi Uma, FrameworkApplication.Panes.ActivePane is the same thing as drop target? I think no. At now I use VisualTarget to determine where I'm dropping my object: private static bool IsOverMapView(DropInfo dropInfo)
{
if (dropInfo == null)
return false;
if (dropInfo.TargetModel is MapView)
return true;
var visualTarget = dropInfo.VisualTarget;
if (visualTarget == null)
return false;
// TODO: seems there is a bug in ArcGIS Pro SDK 2.3 with TargetModel is null, so this is a workaround
return visualTarget.GetType().Name == "MapPaneView";
}
... View more
06-07-2019
08:13 AM
|
0
|
1
|
584
|
Title | Kudos | Posted |
---|---|---|
1 | 11-20-2017 12:35 PM | |
1 | 02-16-2017 08:55 PM | |
1 | 11-18-2017 06:15 AM | |
1 | 01-13-2017 07:15 PM | |
1 | 01-30-2017 04:00 AM |
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:24 AM
|