描述
计算另一个数据集区域内的栅格数据值并以表的形式显示结果。
插图
使用方法
区域定义为输入中具有相同值的所有区域。各区域无需相连。栅格和要素都可用于区域输入。
此栅格分析门户工具将在您登录到 ArcGIS Enterprise 时可用,其中门户包含一个 ArcGIS Image Server ,此链接专为 Raster Analysis 配置。调用该工具后,ArcGIS Pro 将充当客户端,处理将在与 ArcGIS Enterprise 联合的服务器中进行。门户工具接受来自门户的图层作为输入,并在门户中创建输出。
输入栅格图层支持来自门户的图层、图像服务的 URI 或 URL 或创建影像服务器图层工具的输出。输入要素图层可以是来自门户、URI 或要素服务 URL 的图层。此工具不支持本地栅格数据或图层。虽然可以使用本地要素数据和图层作为此门户工具的输入,但是最佳做法是使用门户的图层作为输入。
如果输入区域栅格或要素(Python 中为 inputZoneRasterOrFeatures)为栅格,则其必须为整型栅格。
如果区域为一个要素,则可使用输入值栅格(Python 中为 inputValueRaster)中的像元大小和像元对齐从内部将其转换为栅格。
如果输入区域栅格或要素与输入值栅格的像元大小不相同,则输出像元大小的值将为输入的最大值,值栅格图像服务将在内部用作捕捉栅格。如果像元大小相同,但像元不对齐,则值栅格将在内部用作捕捉栅格。在执行区域操作之前,上述任一情况都会触发内部重采样。
如果区域输入和值输入均为具有相同像元大小的栅格,并且像元已对齐,则可将其直接应用于工具中,且工具执行期间不会对其进行内部重采样。
如果输入区域栅格或要素为要素,对于不与值栅格的任何像元中心重叠的任何区域要素,这些区域将不会转换为内部区域栅格。因此,这些区域将不会在输出中表示。您可以通过为保留要素区域所需细节层次的像元大小环境指定适当的值来管理这些区域并在分析环境中指定这些区域。指定像元大小越小,生成的输出栅格越大。较高的分辨率输出并不一定像看起来那样高质量,因为其他详细信息实际上没有存在于输入值栅格中。
如果输入区域栅格或要素具有重叠要素,则将针对每个单独的要素执行区域分析。
如果输入区域栅格或要素为点要素,则其可能具有值输入栅格的任何特定像元内所含的多个点。对于这样的像元,区域值将通过具有最低 ObjectID 字段的点(例如 OID 或 FID)来确定。
指定输入区域栅格或要素时,默认区域字段将为第一个可用的整型或文本字段。如果不存在其他有效字段,则 ObjectID 字段(如 OID 或 FID)将成为默认字段。
输入值栅格可以是整型或浮点型。但是,当它是浮点型时,将无法计算众数、少数和变异性。对于众数和少数计算,当存在平局时,区域的输出将基于平局值的最低值。
将根据统计类型参数设置(在 Python 中为 statisticType)在输出表中创建一个字段或一系列字段。输出表中的行数将表示区域数。
语法
arcpy.ra.ZonalStatisticsAsTable(inputZoneRasterOrFeatures, inputValueRaster, outputTableName, zoneField, {ignoreNodata}, {statisticType}, {percentileValues}, {processAsMultidimensional}, {percentileInterpolationType})
参数 | 说明 | 数据类型 |
inputZoneRasterOrFeatures | 定义区域的输入。 栅格和要素数据都可用于区域输入。 | Raster Layer; Feature Layer |
inputValueRaster | 含有要汇总统计数据的值的栅格。 | Raster Layer |
outputTableName | 输出表的名称。 如果表已存在,则系统将提示您提供其他名称。 | String |
zoneField | 定义各个区域的字段。 该字段可以是区域数据集的整型字段或字符串型字段。 | String |
ignoreNodata (可选) | 指定值输入中的 NoData 值是否会在其所落入区域的结果中被忽略。
| Boolean |
statisticType (可选) | 指定要计算的统计数据类型。 值栅格为整型时的可用选项是全部、均值、众数、最大值、中值、最小值、少数、百分比数、范围、标准差、总和、变异度、最小值和最大值、均值和标准差,以及 最小值、最大值和均值。 如果值栅格为浮点型,则选项包括全部、平均值、最大值、中值、百分位数、最小值、范围、标准差和总和。
| String |
percentileValues [percentileValues,...] (可选) | 要计算的百分比数。默认值为 90,指示 90%。 取值范围为 0 到 100。0% 基本上等同于“最小值”统计数据,而 100% 则等同于“最大值”。值 50 所生成的结果基本等同于“中值”统计数据的结果。 此选项仅在将 statisticType 参数设置为 PERCENTILE 或 ALL 后可用。 | Double |
processAsMultidimensional (可选) | 用于指定多维输入栅格的处理方式。
| Boolean |
percentileInterpolationType (可选) | 指定输入栅格中要计算的值数为偶数时使用的百分位数插值方法。
| String |
派生输出
名称 | 说明 | 数据类型 |
outputTable | 输出表。 | 没有几何的要素服务 |
代码示例
本示例可针对各区域确定要汇总的栅格图层中的像元平均值。
import arcpy
arcpy.ra.ZonalStatisticsAsTable('https://MyPortal.esri.com/server/rest/services/Hosted/landuse/ImageServer',
'https://MyPortal.esri.com/server/rest/services/Hosted/elevation/ImageServer',
'outTable', 'Landuse', '', 'MEAN')
本示例可针对各区域确定要汇总的栅格图层中的统计值。
#-------------------------------------------------------------------------------
# Name: ZonalStatisticsAsTable_Ex_02.py
# Description: Calculates all statistics with defined percentile values
# for sea-surface temperature defined by ecological zones.
# Requirements: ArcGIS Image Server
# Import system modules
import arcpy
# Set local variables
inputZoneRasterOrFeatures = 'https://MyPortal.esri.com/server/rest/services/Hosted/zones/ImageServer'
inputValueRaster = 'https://MyPortal.esri.com/server/rest/services/Hosted/seaSurfaceTemperature/ImageServer'
outputTableName = 'outZSAT'
zoneField = 'temperature'
ignoreNodata = ''
statisticType = 'PERCENTILE'
percentileValues = [25,75,90]
processAsMultidimensional = 'ALL_SLICES'
percentileInterpolationType = 'NEAREST'
# Execute Multidimensional Zonal Statistics as Table
arcpy.ra.ZonalStatisticsAsTable(inputZoneRasterOrFeatures, inputValueRaster, outputTableName, zoneField,
ignoreNodata, statisticType, percentileValues, processAsMultidimensional,
percentileInterpolationType)
许可信息
- Basic: 需要 ArcGIS Image Server
- Standard: 需要 ArcGIS Image Server
- Advanced: 需要 ArcGIS Image Server