需要 Spatial Analyst 许可。
摘要
计算另一个数据集的区域内栅格数据值的统计信息。
插图
用法
区域定义为输入中具有相同值的所有区。各区域无需相连。栅格和要素都可用于区域输入。
如果输入栅格或要素区域数据(Python 中的 in_zone_data)的像元大小与输入值栅格(Python 中的 in_value_raster)不同,则输出像元大小将为输入的最大值,且输入值栅格将在内部用作捕捉栅格。如果像元大小相同,但是像元未对齐,则输入值栅格将在内部用作捕捉栅格。在执行区域操作之前,上述任一情况都会触发内部重采样。
如果区域输入和值输入均为具有相同像元大小的栅格,并且像元已对齐,则可将其直接应用于工具中,且工具执行期间不会对其进行内部重采样。
如果输入栅格或要素区域数据(Python 中的 in_zone_data)为栅格,则其必须为整型栅格。
如果输入栅格或要素区域数据(Python 中的 in_zone_data)为要素,则将使用输入值栅格(Python 中的 in_value_raster)的像元大小和像元对齐方式在内部将其转换为栅格。
如果输入栅格或要素区域数据(Python 中的 in_zone_data)为点要素,则其可能具有值输入栅格的任何特定像元内所含的多个点。对于这样的像元,区域值将通过具有最低 ObjectID 字段的点(例如 OID 或 FID)来确定。
如果输入栅格或要素区域数据(Python 中的 in_zone_data)具有重叠面,则无法针对每个单独的面执行区域分析。因为要素输入已转换为栅格,所以每个位置只能拥有一个值。
另一种方法就是要为每个面区域反复进行区域操作并核对结果。
在指定输入栅格或要素区域数据(Python 中的 in_zone_data)时,默认区域字段将为第一个可用的整型或文本字段。如果不存在其他有效字段,则 ObjectID 字段(如 OID 或 FID)将成为默认字段。
输入值栅格(Python 中的 in_value_raster)可以为整型,也可以为浮点型。但是,当它是浮点型时,将无法计算众数、中值、少数和变异性。
对于众数和少数计算,当存在平局时,区域的输出将基于平局值的最低值。有关详细信息,请参阅分区统计的工作原理。
输出的数据类型(整型或浮点型)取决于所执行的分区计算以及输入值栅格类型。有关详细信息,请参阅分区统计的工作原理。
默认情况下,此工具会利用多核处理器。可供使用的最大核数限制为四。
如果希望工具使用较少的核,请使用 parallelProcessingFactor 环境设置。
有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst。
语法
ZonalStatistics (in_zone_data, zone_field, in_value_raster, {statistics_type}, {ignore_nodata})
参数 | 说明 | 数据类型 |
in_zone_data | 定义区域的数据集。 可通过整型栅格或要素图层来定义区域。 | Raster Layer; Feature Layer |
zone_field | 保存定义每个区域的值的字段。 该字段可以是区域数据集的整型字段或字符串型字段。 | Field |
in_value_raster | 含有要计算统计数据的值的栅格。 | Raster Layer |
statistics_type (可选) | 要计算的统计类型。
| String |
ignore_nodata (可选) | 指示值输入中的 NoData 值是否会影响其所落入区域的结果。
| Boolean |
返回值
名称 | 说明 | 数据类型 |
out_raster | 输出分区统计栅格。 | Raster |
代码示例
ZonalStatistics 示例 1(Python 窗口)
本示例为各区域确定了值输入栅格中的像元值范围。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outZonalStats = ZonalStatistics("zone", "value", "valueraster", "RANGE",
"NODATA")
outZonalStats.save("C:/sapyexamples/output/zonestatout")
ZonalStatistics 示例 2(独立脚本)
本示例为各区域确定了值输入栅格中的像元值范围。
# Name: ZonalStatistics_Ex_02.py
# Description: Calculates statistics on values of a raster
# within the zones of another dataset.
# 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
inZoneData = "zone"
zoneField = "value"
inValueRaster = "valueraster"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute ZonalStatistics
outZonalStatistics = ZonalStatistics(inZoneData, zoneField, inValueRaster,
"RANGE", "NODATA")
# Save the output
outZonalStatistics.save("C:/sapyexamples/output/zonestatout2")
环境
许可信息
- ArcGIS Desktop Basic: 需要 Spatial Analyst
- ArcGIS Desktop Standard: 需要 Spatial Analyst
- ArcGIS Desktop Advanced: 需要 Spatial Analyst