Creating a Local Function raster dataset
Do the following steps to create a Local Function raster dataset:
- Create the Local Function object.
- Create the Local Function Arguments object.
- Set the properties for the local function arguments.
- Specify the operation.
- Specify the input raster array.
- Create a Raster Function object.
- Create a Function Raster dataset object.
- Initialize the new function raster dataset with the raster function and its arguments.
The following code example shows how to create a Local Function raster dataset by calculating the maximum value (per-cell statistic) from multiple input rasters. Additionally, the cell size of the output raster is being set.
[C#]
//Create the Raster Function object and the Function Arguments object.
IRasterFunction rasterFunction = new LocalFunction();
ILocalFunctionArguments localFunctionArguments = new LocalFunctionArguments()as
ILocalFunctionArguments;
//Specify the operation to be the "maximum cell value of the inputs."
localFunctionArguments.Operation =
esriGeoAnalysisFunctionEnum.esriGeoAnalysisFunctionMax;
//Open raster datasets and specify input rasters to the operation as an array.
IArray array1 = new ESRI.ArcGIS.esriSystem.Array();
array1.Add(inRasterDataset01);
array1.Add(inRasterDataset02);
array1.Add(inRasterDataset03);
localFunctionArguments.Rasters = array1;
//Create the Raster Info object and set the cell size for the analysis.
IRasterInfo rasInfo = new RasterInfo();
IPnt pnt1 = new Pnt();
pnt1.X = 2;
pnt1.Y = 2;
rasInfo.CellSize = pnt1;
localFunctionArguments.RasterInfo = rasInfo;
//Create and initialize a Function raster dataset with the Raster Function object and its arguments.
IFunctionRasterDataset functionRasterDataset;
functionRasterDataset = new FunctionRasterDataset();
functionRasterDataset.Init(rasterFunction, localFunctionArguments);
[VB.NET]
'Create the Raster Function object and the Function Arguments object.
Dim rasterFunction As IRasterFunction
rasterFunction = New LocalFunction()
Dim localFunctionArguments As ILocalFunctionArguments
localFunctionArguments = New LocalFunctionArguments()
'Specify the operation to be the "maximum cell value of the inputs."
localFunctionArguments.Operation = esriGeoAnalysisFunctionEnum.esriGeoAnalysisFunctionMax
'Open raster datasets and specify input rasters to the operation as an array.
Dim array1 As IArray
array1 = New ESRI.ArcGIS.esriSystem.Array()
array1.Add(inRasterDataset01)
array1.Add(inRasterDataset02)
array1.Add(inRasterDataset03)
localFunctionArguments.Rasters = array1
'Create the Raster Info object, and set the cell size for the analysis.
Dim rasInfo As IRasterInfo
rasInfo = New RasterInfo()
Dim pnt1 As IPnt
pnt1 = New Pnt()
pnt1.X = 2
pnt1.Y = 2
rasInfo.CellSize = pnt1
localFunctionArguments.RasterInfo = rasInfo
'Create and initialize a Function raster dataset with the Raster Function object and its arguments.
Dim functionRasterDataset As IFunctionRasterDataset
functionRasterDataset = New FunctionRasterDataset()
functionRasterDataset.Init(rasterFunction, localFunctionArguments)
See Also:
How to create a Conditional Function raster datasetHow to create a Math Function raster dataset
Sample: Create a Function Raster dataset
How to save a Function raster dataset into a raster dataset
How to access a raster dataset
To use the code in this topic, reference the following assemblies in your Visual Studio project. In the code files, you will need using (C#) or Imports (VB .NET) directives for the corresponding namespaces (given in parenthesis below if different from the assembly name):
Development licensing | Deployment licensing |
---|---|
ArcGIS for Desktop Advanced: Spatial Analyst | ArcGIS for Desktop Advanced: Spatial Analyst |
ArcGIS for Desktop Standard: Spatial Analyst | ArcGIS for Desktop Standard: Spatial Analyst |
ArcGIS for Desktop Basic: Spatial Analyst | ArcGIS for Desktop Basic: Spatial Analyst |