需要 Spatial Analyst 许可。
获得 Image Analyst 许可后可用。
插图
使用方法
区域定义为输入中具有相同值的所有区域。各区域无需相连。栅格和要素都可用于区域输入。
如果输入栅格或要素区域数据(Python 中的 in_zone_data)为栅格,则其必须为整型栅格。
如果输入栅格或要素区域数据(Python 中的 in_zone_data)为要素,则将使用输入值栅格(Python 中的 in_value_raster)的像元大小和像元对齐方式在内部将其转换为栅格。
如果输入栅格或要素区域数据(Python 中的 in_zone_data)与输入值栅格(Python 中的 in_value_raster)的像元大小不同,则输出像元大小的值将为输入的最大值,且输入值栅格将在内部用作捕捉栅格。如果像元大小相同,但是像元未对齐,则输入值栅格将在内部用作捕捉栅格。在执行区域操作之前,上述任一情况都会触发内部重采样。
如果区域输入和值输入均为具有相同像元大小的栅格,并且像元已对齐,则可将其直接应用于工具中,且工具执行期间不会对其进行内部重采样。
如果输入栅格或要素区域数据(Python 中的 in_zone_data)为要素,对于不与值栅格的任何像元中心重叠的任何区域要素,这些区域将不会转换为内部区域栅格。因此,这些区域将不会在输出中表示。您可以通过为保留要素区域所需细节层次的像元大小环境指定适当的值来管理这些区域并在分析环境中指定这些区域。
如果输入栅格或要素区域数据(Python 中的 in_zone_data)为点要素,则其可能具有值输入栅格的任何特定像元内所含的多个点。对于这样的像元,区域值将通过具有最低 ObjectID 字段的点(例如 OID 或 FID)来确定。
如果输入栅格或要素区域数据(Python 中的 in_zone_data)具有重叠要素,则将针对每个单独的要素执行区域分析。
在指定输入栅格或要素区域数据(Python 中的 in_zone_data)时,默认区域字段将为第一个可用的整型或文本字段。如果不存在其他有效字段,则 ObjectID 字段(如 OID 或 FID)将成为默认字段。
输入值栅格(Python 中的 in_value_raster)可以为整型,也可以为浮点型。但是,当它是浮点型时,将无法计算众数、少数和变异性。
对于众数和少数计算,当存在平局时,区域的输出将基于平局值的最低值。有关详细信息,请参阅分区统计工具的工作原理。
将根据统计类型参数设置在输出表中创建一个字段或一系列字段。如果输入值为整型,则所有统计数据(均值、众数、最大值、中值、最小值、少数、百分比数、范围、标准差、总和和变异度)均可用于计算。如果值输入为浮点型,将众数、少数和变异度统计数据不适用于计算。
支持的多维栅格数据集类型包括多维栅格图层、镶嵌、图像服务和 Esri 的 CRF。
输出表中各项中的各个值的数据类型取决于所执行的分区计算。有关统计特定行为的详细信息,请参阅分区统计工具的工作原理。
输出表中的行数与区域数相同。
默认情况下,此工具会利用多核处理器。可供使用的最大核数为四。
要使用较少的核,请使用 parallelProcessingFactor 环境设置。
有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst。
语法
ZonalStatisticsAsTable(in_zone_data, zone_field, in_value_raster, out_table, {ignore_nodata}, {statistics_type}, {process_as_multidimensional}, {percentile_values}, {percentile_interpolation_type})
参数 | 说明 | 数据类型 |
in_zone_data | 定义区域的数据集。 可通过整型栅格或要素图层来定义区域。 | Raster Layer; Feature Layer |
zone_field | 包含定义每个区域的值的字段。 该字段可以是区域数据集的整型字段或字符串型字段。 | Field |
in_value_raster | 含有要计算统计数据的值的栅格。 | Raster Layer |
out_table | 将包含每个区域中值的汇总的输出表。 表的格式由输出位置和路径确定。默认情况下,如果在地理数据库工作空间中,则输出将是一个地理数据库表;如果在文件工作空间中,则输出将为 dBASE 表。 | Table |
ignore_nodata (可选) | 指定值输入中的 NoData 值是否会在其所落入区域的结果中被忽略。
| Boolean |
statistics_type (可选) | 指定要计算的统计数据类型。
| String |
process_as_multidimensional (可选) | 用于指定多维输入栅格的处理方式。
| Boolean |
percentile_values [percentile_values,...] (可选) | 要计算的百分比数。默认值为 90,指示 90%。 取值范围为 0 到 100。0% 基本上等同于“最小值”统计数据,而 100% 则等同于“最大值”。值 50 所生成的结果基本等同于“中值”统计数据的结果。 此选项仅在将 statistics_type 参数设置为 PERCENTILE 或 ALL 后受支持。 | Double |
percentile_interpolation_type (可选) | 指定输入栅格中要计算的值数为偶数时使用的百分位数插值方法。
| String |
代码示例
本示例对面要素定义的区域内的栅格值进行了汇总,并将结果记录在表中。
import arcpy
from arcpy import env
from arcpy.ia import *
env.workspace = "C:/sapyexamples/data"
outZSaT = ZonalStatisticsAsTable("zones.shp", "Classes", "valueforzone",
"zonalstattblout", "NODATA", "SUM")
本示例对面要素定义的区域内的栅格值进行了汇总,并将结果记录在表中。
# Name: ZonalStatisticsAsTable_Ex_standalone.py
# Description: Summarizes values of a multidimensional raster within the zones
# of another dataset and reports the results to a table.
# Requirements: Image Analyst Extension
# Import system modules
import arcpy
from arcpy.ia import *
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
# Set the analysis environments
arcpy.env.workspace = "C:/sapyexamples/data"
# Set the local variables
inZoneData = "zones.shp"
zoneField = "sampleID"
inValueRaster = "multidimensional_valueraster.crf"
outTable = "zonalstattblout02.dbf"
# Execute ZonalStatisticsAsTable
outZSaT = ZonalStatisticsAsTable(inZoneData, zoneField, inValueRaster,
outTable, "NODATA", "MAXIMUM", "ALL_SLICES")
环境
许可信息
- Basic: 需要 Image Analyst 或 Spatial Analyst
- Standard: 需要 Image Analyst 或 Spatial Analyst
- Advanced: 需要 Image Analyst 或 Spatial Analyst