需要 Spatial Analyst 许可。
描述
将输入分割放入非重叠块中,然后计算每个块中值的统计数据。在输出中,将值分配给每个块中的所有像元。
插图
使用
如果输入栅格为浮点型,则平均值、最大值、最小值、范围、标准差和总和统计类型可用;众数、少数、中值和变异度统计类型则不允许使用。如果输入栅格为整型,则所有统计类型均可用。
如果输入栅格为浮点类型,那么所有可用统计类型的输出都为浮点型。
如果输入栅格为整型,那么大多数统计类型的输出也为整型。平均值或标准差统计类型的输出将始终为浮点型。
当指定某圆形、环形或楔形邻域时,取决于邻域的大小,可能在计算中不会考虑与 x 轴或 y 轴不垂直的像元。但是,由于这些像元的位置落入此类圆形邻域的最小外接矩形(或输出块)中,因此它们仍将从该邻域的计算中接收到结果值。
不规则与权重邻域类型需要指定核文件。核文件应具有 .txt 文件扩展名。
有关创建和使用核文件的信息,请参阅块统计的工作原理的“不规则”部分和“权重”部分。
对于“中位数”统计量,如果块中的像元数为奇数,则将对值进行排列,然后将排在中间的值作为中位数并取整。如果块中的像元数为偶数,则将对这些值进行排列,然后将排在中间的两个值取平均值后舍入为最接近的整数。
对于“众数”统计量,将没有单个众数值的像元(即,块中两个或两个以上的值所对应的像元数为最多且相等)指定为 NoData。对于“少数”统计量,没有单个少数值的像元也将指定为 NoData。
当统计类型为“平均值”、“少数”、“标准差”或“总和”时,可将邻域类型设置为权重。
有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst。
语法
BlockStatistics(in_raster, {neighborhood}, {statistics_type}, {ignore_nodata})
参数 | 说明 | 数据类型 |
in_raster | 执行块统计计算所用的栅格。 | Raster Layer |
neighborhood (可选) | Neighborhood 类表示用于计算统计数据的各像元周围区域的形状。 可用的邻域类型包括 NbrAnnulus、NbrCircle、NbrRectangle、NbrWedge、NbrIrregular, 和 NbrWeight。 以下为邻域的形式:
默认邻域为宽和高为 3 个像元的正方形 NbrRectangle。 | Neighborhood |
statistics_type (可选) | 指定要计算的统计数据类型。
默认统计类型为 MEAN。 | String |
ignore_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")
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# 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