块统计 (Spatial Analyst)

需要 Spatial Analyst 许可。

描述

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

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

插图

包含最大值选项的“块统计”图示
OutRas = BlockStatistics(InRas1, NbrRectangle(3,3,MAP), "MAXIMUM", "")

使用方法

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

  • 如果输入栅格为浮点类型,那么所有可用统计类型的输出都为浮点型。

    如果输入栅格为整型,那么大多数统计类型的输出也为整型。平均值或标准差统计类型的输出将始终为浮点型。

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

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

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

  • 对于“中位数”统计量,如果块中的像元数为奇数,则将对值进行排列,然后将排在中间的值作为中位数并取整。如果块中的像元数为偶数,则将对这些值进行排列,然后将排在中间的两个值取平均值后舍入为最接近的整数。

  • 对于“众数”统计量,将没有单个众数值的像元(即,块中两个或两个以上的值所对应的像元数为最多且相等)指定为 NoData。对于“少数”统计量,没有单个少数值的像元也将指定为 NoData。

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

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

语法

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

默认统计类型为 平均值

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")

许可信息

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

相关主题