栅格邻域统计分析。

命名空间:  SuperMap.Analyst.SpatialAnalyst
程序集:  SuperMap.Analyst.SpatialAnalyst (in SuperMap.Analyst.SpatialAnalyst)
版本: dll

语法

C#
public static DatasetGrid NeighbourStatistics(
	NeighbourStatisticsParameter parameter
)

参数

parameter
Type: SuperMap.Analyst.SpatialAnalyst..::.NeighbourStatisticsParameter
指定的邻域分析参数设置。

返回值

统计结果栅格数据集。

备注

邻域统计分析,是对输入数据集中的每个像元的指定扩展区域中的像元进行统计,将运算结果作为像元的值。统计的方法包括:总和、最大值、最小值、众数、少数、中位数等,请参见 GridStatisticsMode 枚举类型。目前提供的邻域范围类型(请参见 NeighbourShapeType 枚举类型)有:矩形、圆形、圆环和扇形。

下图为邻域统计的原理示意,假设使用“总和”作为统计方法做矩形邻域统计,邻域大小为 3×3,那么对于图中位于第二行第三列的单元格,它的值则由以其为中心向周围扩散得到的一个 3×3 的矩形内所有像元值的和来决定。

该方法通过 NeighbourStatisticsParameter 类对邻域分析的形状、输入与输出、单位类型、统计方式进行设置。

邻域统计的应用十分广泛。例如:

  • 对表示物种种类分布的栅格计算每个邻域内的生物种类(统计方法:种类),从而观察该地区的物种丰度;
  • 对坡度栅格统计邻域内的坡度差(统计方法:值域),从而评估该区域的地形起伏状况:

  • 邻域统计还用于图像处理,如统计邻域内的平均值(称为均值滤波)或中位数(称为中值滤波)可以达到平滑的效果,从而去除噪声或过多的细节,等等。

示例

以下代码示范了如何对栅格数据集进行矩形邻域分析,通过矩形邻域统计分析参数设置对象来设置矩形邻域统计分析所需参数,最终获得矩形邻域统计分析结果栅格数据集。

CopyC#
public DatasetGrid GridRectangleNeighbourStatistics(DatasetGrid sourceDatasetGrid, Datasource targetDatasource)
{
    //设置结果栅格数据集的名称,并检查数据源中是否已存在该数据集,如存在则删除
    String targetDatasetName = "neighbourStastisticsResult";
    if (targetDatasource.Datasets.Contains(targetDatasetName))
    {
        targetDatasource.Datasets.Delete(targetDatasetName);
    }

    //设置邻域统计分析参数
    NeighbourStatisticsRectangleParameter neighbourParameter = new NeighbourStatisticsRectangleParameter();
    neighbourParameter.Width = 6.0;
    neighbourParameter.Height = 4.0;
    neighbourParameter.IsIgnoreNoValue = false;
    neighbourParameter.StatisticsMode = GridStatisticsMode.Majority;
    neighbourParameter.UnitType = NeighbourUnitType.Cell;
    neighbourParameter.SourceDataset = sourceDatasetGrid;
    neighbourParameter.TargetDatasource = targetDatasource;
    neighbourParameter.TargetDatasetName = targetDatasetName;

    //调用栅格邻域统计分析方法,并获取分析结果栅格数据集
    DatasetGrid resultDatasetGrid = StatisticsAnalyst.NeighbourStatistics(neighbourParameter);

    return resultDatasetGrid;
}

版本信息

SuperMap iObjects .NET


请参见