块统计 (Spatial Analyst)

摘要

将输入分割放入非重叠块中,然后计算每个块中值的统计数据。 在输出中,将值分配给每个块中的所有像元。

了解有关“块统计”工作原理的详细信息

插图

具有最大统计数据集的矩形邻域的“块统计”工具的输入和输出值
OutRas = BlockStatistics(InRas1, NbrRectangle(3,3,"CELL"), "MAXIMUM", "DATA")

使用情况

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

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

  • 当指定某圆形、环形或楔形邻域时,取决于邻域的大小,可能在计算中不会考虑与 x 轴或 y 轴不垂直的像元。 但是,这些像元位置将从邻域计算中获得结果值,因为它们位于这些圆形邻域类型的最小外接矩形(或输出块)内。

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

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

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

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

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

  • 对于中值计算,如果区块邻域具有奇数个像元,则将对值进行排列,然后将排在中间的值作为中值。 如果块具有偶数个像元,则将对这些值进行排列,并从两个中间值中选择较低的值。

  • 对于众数和少数计算,当存在平局时,输出将为平局值的最低值。

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

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

参数

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

将针对像元块计算统计数据的栅格。

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
统计类型
(可选)

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

默认统计类型为平均值

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

  • 平均值将计算邻域内像元的平均值。
  • 众数将识别邻域内像元的众数(出现次数最多的值)。
  • 最大值将识别邻域内像元的最大值。
  • 中值将计算邻域内像元的中值。
  • 最小值将识别邻域内像元的最小值。
  • 少数将识别邻域内像元的少数(出现次数最少的值)。
  • 范围将计算邻域内像元的范围(最大值和最小值之差)。
  • 标准差将计算邻域内像元的标准差。
  • 总和将计算邻域内像元的总和。
  • 变异度将计算邻域内像元的变异度(唯一值的数量)。
String
在计算中忽略 NoData
(可选)

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

  • 选中 - 当块邻域中存在 NoData 值时,将忽略此 NoData 值。 将仅使用邻域内具有数据值的像元来确定输出值。 这是默认设置。
  • 未选中 - 如果块邻域内任意像元的值都是 NoData,则相应块中各像元的输出均为 NoData。 存在 NoData 值表明确定邻域的统计值所需要的信息不足。
Boolean

返回值

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

输出块统计栅格。

Raster

BlockStatistics(in_raster, {neighborhood}, {statistics_type}, {ignore_nodata})
名称说明数据类型
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将计算邻域内像元的中值。
  • MINIMUM将识别邻域内像元的最小值。
  • MINORITY将识别邻域内像元的少数(出现次数最少的值)。
  • RANGE将计算邻域内像元的范围(最大值和最小值之差)。
  • STD将计算邻域内像元的标准差。
  • SUM将计算邻域内像元的总和。
  • VARIETY将计算邻域内像元的变异度(唯一值的数量)。

默认统计类型为 MEAN

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

String
ignore_nodata
(可选)

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

  • DATA当块邻域中存在 NoData 值时,将忽略此 NoData 值。 将仅使用邻域内具有数据值的像元来确定输出值。 这是默认设置。
  • NODATA如果块邻域内任意像元的值都是 NoData,则相应块中各像元的输出均为 NoData。 存在 NoData 值表明确定邻域的统计值所需要的信息不足。
Boolean

返回值

名称说明数据类型
out_raster

输出块统计栅格。

Raster

代码示例

BlockStatistics 示例 1(Python 窗口)

本示例计算输入栅格中每个非重叠环形(圆环形状)邻域内的最小像元值。

import arcpy
from arcpy import env  
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
nbr = NbrAnnulus(1, 3, "MAP")
outBlockStat = BlockStatistics("block", nbr, "MINIMUM", "")
outBlockStat.save("C:/sapyexamples/output/blockstat")
BlockStatistics 示例 2(独立脚本)

本示例计算输入格网栅格中每个非重叠环形(圆环形状)邻域内的最小像元值。

# Name: BlockStatistics_Ex_02.py
# Description: Calculates statistics for a nonoverlapping 
#              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 = "block"
nbr = NbrAnnulus(1, 3, "MAP")

# Execute BlockStatistics
outBlockStat = BlockStatistics(inRaster, nbr, "MINIMUM", "NODATA")

# Save the output 
outBlockStat.save("C:/sapyexamples/output/blockstat")

相关主题