Hi Gurus,
Refer to this
Create RasterDataset
After managed to create raster dataset, tried and change the raster size and update the extent and it does not update my raster properties.
SetExtent, SetWidth, SetHeight methods are used.
May I know what went wrong?
Below is my code snippet.
string ExportTifFile = FileName + ".tif";
var parameters = Geoprocessing.MakeValueArray(
this.InputModel.DestinationPath, // Output path
ExportTifFile, // Raster name : make it as tif file
rasterInfo.CellSize.ToString(), // Cellsize
this.InputModel.PixelType, // pixel type
this._lastSelectedSR, // Spatial reference,
1); // Bands count
//IReadOnlyList<KeyValuePair<string, string>> environments = Geoprocessing.MakeEnvironmentArray(extent: pEnvelope);
var gpResult = Geoprocessing.ExecuteToolAsync("CreateRasterDataset_management", parameters, null,
CancelableProgressor.None, GPExecuteToolFlags.GPThread);
gpResult.Wait();
IGPResult ProcessingResult = gpResult.Result;
if (ProcessingResult.IsFailed)
{
foreach(IGPMessage message in ProcessingResult.Messages)
{
ConversionToolModule.Current.ModuleLogManager.LogError("Error on create raster dataset tool calling");
ConversionToolModule.Current.ModuleLogManager.LogError($"{{Error Code: {message.ErrorCode}, Text : {message.Text} }}");
}
Geoprocessing.ShowMessageBox(ProcessingResult.Messages, "Raster creation error", GPMessageBoxStyle.Error);
}
//Try and update
await QueuedTask.Run(() =>
{
FileSystemConnectionPath connectionPath = new FileSystemConnectionPath(new System.Uri(this.InputModel.DestinationPath), FileSystemDatastoreType.Raster);
FileSystemDatastore datastore = new FileSystemDatastore(connectionPath);
RasterDataset tmpFileRasterDataset = datastore.OpenDataset<RasterDataset>(ExportTifFile);
ArcGIS.Core.Data.Raster.Raster tmpRaster = tmpFileRasterDataset.CreateDefaultRaster();
if (tmpRaster.CanEdit())
{
Envelope RasterExtent = EnvelopeBuilder.CreateEnvelope((double)rasterInfo.MinX, (double)rasterInfo.MinY, (double)rasterInfo.MaxX, (double)rasterInfo.MaxX, this._lastSelectedSR);
tmpRaster.SetExtent(RasterExtent);
tmpRaster.SetWidth(rasterInfo.RasterColumnCount);
tmpRaster.SetHeight(rasterInfo.RasterRowCount);
tmpRaster.Refresh();
}
}, ps.Progressor);