This document is archived and information here might be outdated.  Recommended version.


How to create a Statistics function dataset (ArcObjects .NET 10.8 SDK)
ArcObjects Help for .NET developers > ArcObjects Help for .NET developers > Developing with ArcGIS > Learning ArcObjects > Managing data > Working with image and raster data > Processing raster data > Function raster datasets and raster functions > How to create a Statistics function dataset

How to create a Statistics function dataset


Creating a Statistics function dataset

To create a Statistics function dataset, follow these steps:
  1. Create the Function Arguments object.
  2. Set the type of statistic operation to be performed.
  3. Set the number of rows and columns of the pixel array used to perform the operation.
  4. Create a Raster Function object.
  5. Create a Function Raster Dataset object.
  6. Create a name object for the function raster dataset.
  7. Specify the output file name for the new dataset.
  8. Initialize the new function raster dataset with the raster function and its arguments.
The following code example shows how to create a Statistics function raster dataset by applying the Statistics raster function to an image:
[C#]
// Create the Function Arguments object.
IStatisticsFunctionArguments rasterFunctionArguments=(IStatisticsFunctionArguments)
    new StatisticsFunctionArguments();
// Set the type of statistic (Mean in this case).
rasterFunctionArguments.Type=esriFocalStatisticType.esriFocalStatisticMean;
// The rows and columns specify the height and width of the pixel array used 
// to calculate the focal statistics.
rasterFunctionArguments.Columns=3;
rasterFunctionArguments.Rows=3;
// The input data can be of type IRasterDataset, IRasterBand, or IRaster.
rasterFunctionArguments.Raster=inputData;

// Create the Raster Function object.
IRasterFunction rasterFunction=new StatisticsFunctionClass();
// Create the Function Raster Dataset object.
IFunctionRasterDataset functionRasterDataset=new FunctionRasterDataset();
// Create a name object for the Function Raster Dataset.
IFunctionRasterDatasetName functionRasterDatasetName=(IFunctionRasterDatasetName)
    new FunctionRasterDatasetName();
// Specify the output file name for the new dataset (including the .afr extension at the end).
functionRasterDatasetName.FullName=@"c:\temp\StatsFunction.afr";
functionRasterDataset.FullName=(IName)functionRasterDatasetName;
// Initialize the new Function Raster Dataset with the Raster Function and its arguments.
functionRasterDataset.Init(rasterFunction, rasterFunctionArguments);
[VB.NET]
' Create the Function Arguments object.
Dim rasterFunctionArguments As IStatisticsFunctionArguments
rasterFunctionArguments=New StatisticsFunctionArguments()
' Set the type of statistic (Mean in this case).
rasterFunctionArguments.Type=esriFocalStatisticType.esriFocalStatisticMean
' The rows and columns specify the height and width of the pixel array used
' to calculate the focal statistics.
rasterFunctionArguments.Columns=3
rasterFunctionArguments.Rows=3
' The input data can be of type IRasterDataset, IRasterBand, or IRaster.
rasterFunctionArguments.Raster=inputData

' Create the Raster Function object.
Dim rasterFunction As IRasterFunction
rasterFunction=New StatisticsFunctionClass()
' Create the Function Raster Dataset object.
Dim functionRasterDataset As IFunctionRasterDataset
functionRasterDataset=New FunctionRasterDataset()
' Create a name object for the Function Raster Dataset.
Dim functionRasterDatasetName As IFunctionRasterDatasetName
functionRasterDatasetName=New FunctionRasterDatasetName()
' Specify the output file name for the new dataset (including the .afr extension at the end).
functionRasterDatasetName.FullName="c:\temp\StatsFunction.afr"
functionRasterDataset.FullName=functionRasterDatasetName
' Initialize the new Function Raster Dataset with the Raster Function and its arguments.
functionRasterDataset.Init(rasterFunction, rasterFunctionArguments)






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 Desktop Advanced ArcGIS Desktop Advanced
ArcGIS Desktop Standard ArcGIS Desktop Standard
ArcGIS Desktop Basic ArcGIS Desktop Basic