焦点统计 (Image Analyst)

需要 Spatial Analyst 许可。

获得 Image Analyst 许可后可用。

摘要

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

Learn more about how Focal Statistics works

插图

Input and output values from the Focal Statistics tool for a rectangle neighborhood with the Sum statistic set
OutRas = FocalStatistics(InRas1, NbrRectangle(3,3,"CELL"), "SUM", "DATA")

使用情况

  • 有多种邻域形状和统计数据类型可供选择。 可用的统计数据取决于输入栅格的类型。

  • 可用的邻域形状有环形(圆环或环)、圆形、矩形和楔形。 使用核文件可定义自定义邻域形状。

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

  • 不规则与权重邻域类型需要指定核文件值。 核文件是一个 ASCII 文本文件,用于指定邻域的值和形状。 可以使用任何纯文本编辑器来创建此文件。 文件的扩展名必须是 .txt,且文件名中没有空格。

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

  • 对于整型输入栅格,统计类型的有效统计数据包括:众数、最大值、平均值、中值、最小值、少数、百分比数、范围、标准差、总和及变异度。 对于浮点型输入栅格,有效统计数据包括:最大值、平均值、中值、最小值、百分比数、范围、标准差和总和。 对于浮点型输入栅格,众数、少数和变异度不可用。

  • 如果输入栅格为整型,则以下统计类型的输出栅格将为整型:众数、最大值、最小值、少数、范围、总和和变异度。 对于平均值、中值、百分比数和标准差统计类型,输出将为浮点型。

    如果输入栅格为浮点型,则所有可用统计类型的输出均为浮点型。

  • 对于中值计算,如果邻域具有奇数个像元,则将对值进行排列,然后将排在中间的值作为中值。 如果邻域的像元数为偶数,则将对这些值进行排列,然后取中间两个数的平均值。

  • 对于众数和少数计算,有关出现平局时的详细信息,请参阅“焦点统计的工作原理”主题。

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

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

参数

标注说明数据类型
输入栅格

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

Raster Layer
邻域分析
(可选)

统计计算中将使用的处理像元周围的像元。 有多种预定义邻域类型可供选择,也可以定义自定义核。

选择邻域类型后,可设置其他参数来完全定义形状、大小和测量单位。 默认邻域是宽和高为三个像元的方矩形。

以下为可用邻域类型的形式:

  • 环形内半径外半径单位类型

    由内半径和外半径定义的环或圆环形邻域。 半径的最小值为 1 个像元,并且外半径必须大于内半径。 最大内半径为 2046 个像元,最大外半径为 2047 个像元。 默认环形的内半径为 1 个像元,外半径为 3 个像元。

  • 圆形半径单位类型

    具有给定半径的圆形邻域。 最小半径为 1 个像元,最大值为 2047 个像元。 默认半径为 3 个像元。

  • 矩形高度宽度单位类型

    由宽度和高度定义的矩形邻域。 宽度或高度的最小值为 1 个像元,最大值为 4096 个像元。 默认设置是宽度和高度为 3 个像元的正方形。

  • 楔形半径起始角度终止角度单位类型

    由半径、起始角度和终止角度定义的楔形邻域。 最小半径为 1 个像元,最大值为 2047 个像元。 楔形按逆时针方向从起始角延伸到终止角。 角度以度为单位进行指定,0 或 360 的值表示东方。 也可使用负角度。 默认楔形起始角度为 0 度,终止角度为 90 度,半径为 3 个像元。

  • 不规则核文件

    带有通过已识别核文本文件设置的规范的自定义邻域,可将权重应用于邻域的成员。 核宽度或高度的最小值为 1 个像元,最大值为 4096 个像元。

  • 权重核文件

    带有通过已识别核文本文件设置的规范的自定义邻域,可将权重应用于邻域的成员。 核宽度或高度的最小值为 1 个像元,最大值为 4096 个像元。

对于环形、圆形、矩形和楔形邻域类型,参数的距离单位能够以像元单位或地图单位进行指定。 默认设置为“像元”单位。

对于核邻域,核文件中的第一行将以像元数来定义邻域的宽度和高度。 后续各行将指示如何处理与核中该位置相对应的输入值。 核文件中不规则邻域或权重邻域类型的值为 0 表示相应位置将不包括在计算中。 对于不规则邻域,核文件中的值为 1 表示相应的输入像元将包含在运算中。 对于权重邻域,每个位置的值均表示需要与对应输入像元值相乘的值。 可以使用正值、负值和小数值。

Neighborhood
统计类型
(可选)

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

默认统计类型为平均值

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

  • 平均值将计算邻域内像元的平均值。
  • 众数将识别邻域内像元的众数(出现次数最多的值)。
  • 最大值将识别邻域内像元的最大值。
  • 中值将计算邻域内像元的中值。 中位数相当于第 50 个百分比数。
  • 最小值将识别邻域内像元的最小值。
  • 少数将识别邻域内像元的少数(出现次数最少的值)。
  • 百分比数将计算邻域内像元的百分比数。 默认情况下将计算 90% 百分比数。 您可以使用百分比值参数来指定其他值(从 0 到 100)。
  • 范围将计算邻域内像元的范围(最大值和最小值之差)。
  • 标准差将计算邻域内像元的标准差。
  • 总和将计算邻域内像元的总和。
  • 变异度将计算邻域内像元的变异度(唯一值的数量)。
String
在计算中忽略 NoData
(可选)

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

  • 选中 - 当邻域中存在 NoData 值时,将忽略此 NoData 值。 将仅使用邻域内具有数据值的像元来确定输出值。 如果处理像元自身为 NoData,则处理像元可在输出栅格中接收值,前提是该邻域内至少有一个像元具有有效值。 这是默认设置。
  • 未选中 - 如果邻域内有任意像元的值是 NoData(包括处理像元),则处理像元的输出将为 NoData。 存在 NoData 值表明确定邻域的统计值所需要的信息不足。
Boolean
百分比值
(可选)

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

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

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

Double

返回值

标注说明数据类型
输出栅格

输出焦点统计栅格。

Raster

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

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

Raster Layer
neighborhood
(可选)

统计计算中将使用的处理像元周围的像元。 有多种预定义邻域类型可供选择,也可以定义自定义核。

选择邻域类型后,可设置其他参数来完全定义形状、大小和测量单位。 默认邻域是宽和高为三个像元的方矩形。

邻域的形状将由 Neighborhood 类进行定义。 可用的邻域类型有 NbrAnnulusNbrCircleNbrRectangleNbrWedgeNbrIrregular,NbrWeight

以下为可用邻域类型的形式:

  • NbrAnnulus({innerRadius}, {outerRadius}, {units})

    由内半径和外半径定义的环或圆环形邻域。 半径的最小值为 1 个像元,并且外半径必须大于内半径。 最大内半径为 2046 个像元,最大外半径为 2047 个像元。 默认环形的内半径为 1 个像元,外半径为 3 个像元。

  • NbrCircle({radius}, {units}

    具有给定半径的圆形邻域。 最小半径为 1 个像元,最大值为 2047 个像元。 默认半径为 3 个像元。

  • NbrRectangle({width}, {height}, {units})

    由宽度和高度定义的矩形邻域。 宽度或高度的最小值为 1 个像元,最大值为 4096 个像元。 默认设置是宽度和高度为 3 个像元的正方形。

  • NbrWedge({radius}, {startAngle}, {endAngle}, {units})

    由半径、起始角度和终止角度定义的楔形邻域。 最小半径为 1 个像元,最大值为 2047 个像元。 楔形按逆时针方向从起始角延伸到终止角。 角度以度为单位进行指定,0 或 360 的值表示东方。 也可使用负角度。 默认楔形起始角度为 0 度,终止角度为 90 度,半径为 3 个像元。

  • NbrIrregular(inKernelFile)

    带有通过已识别核文本文件设置的规范的自定义邻域。 核宽度或高度的最小值为 1 个像元,最大值为 4096 个像元。

  • NbrWeight(inKernelFile)

    带有通过已识别核文本文件设置的规范的自定义邻域,可将权重应用于邻域的成员。 核宽度或高度的最小值为 1 个像元,最大值为 4096 个像元。

对于 NbrAnnulusNbrcircleNbrRectangleNbrWedge 邻域,参数的距离单位可指定为 CELL 单位或 MAP 单位。 默认设置为“像元”单位。

对于核邻域,核文件中的第一行将以像元数来定义邻域的宽度和高度。 后续各行将指示如何处理与核中该位置相对应的输入值。 核文件中不规则邻域或权重邻域类型的值为 0 表示相应位置将不包括在计算中。 对于不规则邻域,核文件中的值为 1 表示相应的输入像元将包含在运算中。 对于权重邻域,每个位置的值均表示需要与对应输入像元值相乘的值。 可以使用正值、负值和小数值。

Neighborhood
statistics_type
(可选)

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

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

默认统计类型为 MEAN

如果输入栅格为整型,则所有统计类型均可用。 如果输入栅格为浮点型,则只有 MEANMAXIMUMMEDIANMINIMUMPERCENTILERANGESTDSUM 统计类型可用。

String
ignore_nodata
(可选)

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

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

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

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

This option is only supported if the statistics_type parameter is set to PERCENTILE. 如果指定任何其他统计类型,则将忽略此参数。

Double

返回值

名称说明数据类型
out_raster

输出焦点统计栅格。

Raster

代码示例

FocalStatistics 示例 1(Python 窗口)

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

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

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

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

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

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

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

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

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

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

许可信息

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

相关主题