焦点统计 (Spatial Analyst)

需要 Spatial Analyst 许可。

获得 Image Analyst 许可后可用。

描述

为每个输入像元位置计算其周围指定邻域内的值的统计数据。

了解有关焦点统计工作原理的详细信息

插图

焦点统计图示
OutRas = FocalStatistics(InRas1, NbrRectangle(3,3,MAP), "SUM", "")

使用方法

  • 如果输入栅格为整型,则所有统计类型均可用。如果输入栅格为浮点型,则只有平均值、最大值、中值、最小值、百分比数、范围、标准差和总和统计类型可用;众数、少数和变异度统计类型则不允许使用。

  • 当指定某圆形、环形或楔形邻域时,因为像元的中心必须包含在邻域中,所以在计算中可能不考虑一些外部对角线像元。

  • 不规则与权重邻域类型需要指定核文件。核文件应具有 .txt 文件扩展名。

    有关创建和使用核文件的信息,请参阅了解有关焦点统计工作原理的详细信息的“不规则”部分和“权重”部分。

  • 仅当统计类型为“平均值”、“标准差”和“总和”时,方可将邻域类型设置为权重

  • 假设邻域内至少有一个含有效值的像元,则选中在计算中忽略 NoData 参数时,NoData 输入像元可能会在输出中接收到一个值。

  • 有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst

语法

FocalStatistics(in_raster, {neighborhood}, {statistics_type}, {ignore_nodata}, {percentile_value})
参数说明数据类型
in_raster

系统将为其计算每个输入像元的焦点统计数据的栅格。

Raster Layer
neighborhood
(可选)

Neighborhood 类表示用于计算统计数据的各像元周围区域的形状。

可用的邻域类型包括 NbrAnnulusNbrCircleNbrRectangleNbrWedgeNbrIrregular,NbrWeight

以下为邻域的形式:

  • NbrAnnulus({innerRadius}, {outerRadius}, {units})
  • NbrCircle({radius}, {units}
  • NbrRectangle({width}, {height}, {units})
  • NbrWedge({radius}, {startAngle}, {endAngle}, {units})
  • NbrIrregular(inKernelFile)
  • NbrWeight(inKernelFile)

默认邻域为宽和高为 3 个像元的正方形 NbrRectangle

Neighborhood
statistics_type
(可选)

指定要计算的统计数据类型。

  • MEAN计算邻域内像元的平均值。
  • MAJORITY计算邻域内像元的众数(出现次数最多的值)。
  • MAXIMUM计算邻域内像元的最大值。
  • MEDIAN计算邻域内像元的中值。
  • MINIMUM计算邻域内像元的最小值。
  • MINORITY计算邻域内像元的少数(出现次数最少的值)。
  • PERCENTILE计算邻域内像元的百分比数。默认情况下将计算 90% 百分比数。您可以使用百分数值参数来指定其他值(从 0 到 100)。
  • RANGE计算邻域内像元的范围(最大值和最小值之差)。
  • STD计算邻域内像元的标准差。
  • SUM计算邻域内像元的总和(所有值的总和)。
  • VARIETY计算邻域内像元的变异度(唯一值的数量)。

默认统计类型为 平均值

如果输入栅格为整型,则所有统计类型均可用。如果输入栅格为浮点型,则只有平均值最大值中值最小值百分比数范围标准差总和统计类型可用。

String
ignore_nodata
(可选)

指定在进行统计计算时是否将忽略 NoData 值。

  • DATA当邻域中存在 NoData 值时,将忽略此 NoData 值。将仅使用邻域内具有数据值的像元来确定输出值。这意味着如果处理像元值为 NoData,则一旦选择了该选项,处理像元即可在输出栅格中接收值,前提是该邻域内至少有一个像元具有有效值。这是默认设置。
  • NODATA如果邻域内有任意像元的值是 NoData,则处理像元的输出将为 NoData。使用此选项时,存在 NoData 值表明确定邻域的统计值所需要的信息不足。
Boolean
percentile_value
(可选)

要计算的百分比数。对于 90%,其默认值为 90。

取值范围为 0 到 100。0% 基本上等同于“最小值”统计数据,而 100% 则等同于“最大值”。值 50 所生成的结果基本等同于“中值”统计数据的结果。

此选项仅在将 statistics_type 参数设置为 percentile 后受支持。如果已指定任何其他统计类型,则将忽略此参数。

Double

返回值

名称说明数据类型
out_raster

输出焦点统计栅格。

Raster

代码示例

FocalStatistics 示例 1(Python 窗口)

本例计算输入栅格中每个像元周围的环形邻域内出现频率最低的值。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outFocalStat = FocalStatistics("elevation", NbrAnnulus(5, 10, "CELL"), 
                               "MINORITY", "NODATA")
outFocalStat.save("C:/sapyexamples/output/focalstat01")
FocalStatistics 示例 2(独立脚本)

本例确定输入栅格中每个像元周围的 10×10 邻域内出现频率最低的值。

# Name: FocalStatistics_Ex_02.py
# Description: Calculates a statistic on a raster over a specified
#    neighborhood.
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

# Set environment settings
env.workspace = "C:/sapyexamples/data"

# Set local variables
inRaster = "elevation"
neighborhood = NbrRectangle(10, 10, "CELL")

# Execute FocalStatistics
outFocalStatistics = FocalStatistics(inRaster, neighborhood, "MINORITY",
                                     "")

# Save the output 
outFocalStatistics.save("C:/sapyexamples/output/focalstatout")

许可信息

  • Basic: 需要 Spatial Analyst 或 Image Analyst
  • Standard: 需要 Spatial Analyst 或 Image Analyst
  • Advanced: 需要 Spatial Analyst 或 Image Analyst

相关主题