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