以表格显示分区统计 (空间分析)

需要 Spatial Analyst 许可。

获得 Image Analyst 许可后可用。

摘要

汇总另一个数据集区域内的栅格数据值并以表的形式显示结果。

了解有关分区统计工具的工作原理的详细信息

插图

以表格图解显示分区统计工具
ZonalStatisticsAsTable(ZoneRas, "Value", ValRas, OutTable, "DATA", "MIN_MAX_MEAN")

使用情况

  • 区域定义为输入中具有相同值的所有区域。 各区域无需相连。 栅格和要素都可用于区域输入。

  • 如果输入栅格或要素区域数据(Python 中的 in_zone_data)值为栅格,则其必须为整型栅格。

  • 如果输入栅格或要素区域数据为要素,则将使用输入值栅格(Python 中的 in_value_raster)参数的像元大小和像元对齐方式在内部将其转换为栅格。

  • 如果输入栅格或要素区域数据输入值栅格像元大小不同,则输出像元大小的值将为最大输入数的值,且输入值栅格将在内部用作捕捉栅格。 如果像元大小相同,但是像元未对齐,则输入值栅格将在内部用作捕捉栅格。 在执行区域操作之前,上述任一情况都会触发内部重采样。

    如果区域输入和值输入均为具有相同像元大小的栅格,并且像元已对齐,则可将其直接应用于工具中,且工具处理期间不会对其进行内部重采样。

  • 如果输入栅格或要素区域数据为要素,对于不与值栅格的任何像元中心重叠的任何区域要素,这些区域将不会转换为内部区域栅格。 因此,这些区域将不会在输出中表示。 您可以通过为保留要素区域所需细节层次的像元大小环境指定适当的值来管理这些区域并在分析环境中指定这些区域。

  • 如果输入栅格或要素区域数据的值是点要素,则值输入栅格的任何特定像元中可能包含多个点。 对于这样的像元,区域值将通过具有最低 ObjectID 字段的点(例如 OIDFID)来确定。

  • 如果输入栅格或要素区域数据具有重叠要素,则将针对每个单独的要素执行区域分析。

  • 在指定输入栅格或要素区域数据值时,默认区域字段将为第一个可用的整型或文本字段。 如果不存在其他有效字段,则 ObjectID 字段(如 OIDFID)将成为默认字段。

  • 支持的统计数据类型取决于输入值栅格值的数据类型,以及通过计算圆形统计数据参数指定的统计数据计算类型。

    如果数据类型为整型,则算术统计数据计算支持平均值众数最大值中位数最小值少数百分比数范围标准差总和变异度选项;圆形统计数据计算支持平均值众数少数标准差变异度选项。

    如果数据类型为浮点型,则算术统计数据计算支持平均值最大值中位数最小值百分比数范围标准差总和选项;圆形统计数据计算支持平均值标准差选项。

  • 对于众数和少数计算,当存在平局时,输出将为平局值的最低值。

  • 要计算圆形统计数据,请选中计算圆形统计数据参数(Python 中的 circular_calculation = "CIRCULAR"),然后为圆换行值(Python 中的 circular_wrap_value)指定值。

  • 支持的多维栅格数据集类型包括多维栅格图层、镶嵌、图像服务和 Esri 的 CRF。

  • 将根据统计类型参数设置(Python 中的 statisticType)在输出表中创建一个字段或一系列字段。

    字段名称与算术统计数据计算的统计类型相同。 这是默认设置。

    但是,对于圆形统计数据,字段名称将以 C_ 开头,后跟指定的统计数据。 例如,算术中位数统计数据的字段名称为 Median,圆形中位数统计数据的字段名称为 C_Median

  • 输出表中各项中的各个值的数据类型取决于所执行的分区计算。 有关统计特定行为的详细信息,请参阅分区统计工具的工作原理

  • 输出表中的行数与区域数相同。

  • 默认情况下,此工具会利用多核处理器。 可供使用的最大核数为四。

    要使用较少的核,请使用并行处理因子环境设置。

  • 有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst

参数

标注说明数据类型
输入栅格数据或要素区域数据

定义区域的数据集。

可通过整型栅格或要素图层来定义区域。

Raster Layer; Feature Layer
区域字段

包含定义每个区域的值的字段。

该字段可以是区域数据集的整型字段或字符串型字段。

Field
输入赋值栅格

含有要计算统计数据的值的栅格。

Raster Layer
输出表

将包含每个区域中值的汇总的输出表。

表的格式由输出位置和路径确定。 默认情况下,如果在地理数据库工作空间中,则输出将是一个地理数据库表;如果在文件工作空间中,则输出将为 dBASE 表。

Table
在计算中忽略 NoData
(可选)

指定值输入中的 NoData 值是否会在其所落入区域的结果中被忽略。

  • 选中 - 在任意特定区域内,仅使用在输入值栅格中拥有值的像元来确定该区域的输出值。 在统计计算过程中,值栅格内的 NoData 像元将被忽略。 这是默认设置。
  • 未选中 - 在任何特定区域中,如果 NoData 像元存在于值栅格中,则它们不会被忽略,并且 NoData 像元的存在表明没有足够的信息来对该区域中的所有像元执行统计计算。 因此,整个区域将在输出栅格上接收 NoData 值。
Boolean
统计类型
(可选)

指定要计算的统计数据类型。

  • 全部将计算所有的统计数据。 这是默认设置。
  • 平均值将计算值栅格中与输出像元同属一个区域的所有像元的平均值。
  • 众数将计算值栅格中与输出像元同属一个区域的所有像元中最常出现的值。
  • 最大值将计算值栅格中与输出像元同属一个区域的所有像元的最大值。
  • 中值将计算值栅格中与输出像元同属一个区域的所有像元的中值。
  • 最小值将计算值栅格中与输出像元同属一个区域的所有像元的最小值。
  • 少数将计算值栅格中与输出像元同属一个区域的所有像元中出现次数最少的值。
  • 百分比数将计算值栅格中与输出像元同属一个区域的所有像元的百分比值。 默认情况下将计算 90% 百分比数。 您可以使用百分数值参数来指定其他值(从 0 到 100)。
  • 范围将计算值栅格中与输出像元同属一个区域的所有像元的最大值与最小值之差。
  • 标准差将计算值栅格中与输出像元同属一个区域的所有像元的标准偏差。
  • 总和将计算值栅格中与输出像元同属一个区域的所有像元的合计值。
  • 变异度将计算值栅格中与输出像元同属一个区域的所有像元中唯一值的数目。
  • 最小值和最大值将计算最小值统计数据和最大值统计数据。
  • 平均值和标准差将计算平均值统计数据和标准差统计数据。
  • 最小值、最大值和平均值将计算最小值、最大值和平均值统计数据。
  • 全部将计算所有的统计数据。 这是默认设置。
  • 平均值将计算值栅格中与输出像元同属一个区域的所有像元的平均值。
  • 众数将计算值栅格中与输出像元同属一个区域的所有像元中最常出现的值。
  • 最大值将计算值栅格中与输出像元同属一个区域的所有像元的最大值。
  • 中值将计算值栅格中与输出像元同属一个区域的所有像元的中值。
  • 最小值将计算值栅格中与输出像元同属一个区域的所有像元的最小值。
  • 少数将计算值栅格中与输出像元同属一个区域的所有像元中出现次数最少的值。
  • 百分比数将计算值栅格中与输出像元同属一个区域的所有像元的百分比值。 默认情况下将计算 90% 百分比数。 您可以使用 percentile_values 参数来指定其他值(从 0 到 100)。
  • 范围将计算值栅格中与输出像元同属一个区域的所有像元的最大值与最小值之差。
  • 标准差将计算值栅格中与输出像元同属一个区域的所有像元的标准偏差。
  • 总和将计算值栅格中与输出像元同属一个区域的所有像元的合计值。
  • 变异度将计算值栅格中与输出像元同属一个区域的所有像元中唯一值的数目。
  • 最小值和最大值将计算最小值统计数据和最大值统计数据。
  • 平均值和标准差将计算平均值统计数据和标准差统计数据。
  • 最小值、最大值和平均值将计算最小值、最大值和平均值统计数据。
String
以多维方式处理
(可选)

指定在输入栅格为多维栅格时,如何进行计算。

  • 未选中 - 将计算输入多维数据集的当前剖切片中的统计数据。 这是默认设置。
  • 已选中 - 将计算输入多维数据集的所有维度的统计数据。
Boolean
百分比值
(可选)

要计算的百分比数。 默认值为 90,指示 90%。

取值范围为 0 到 100。 0% 基本上等同于“最小值”统计数据,而 100% 则等同于“最大值”。 值 50 所生成的结果基本等同于“中值”统计数据的结果。

仅当统计类型参数设置为百分位数全部时,此参数才可用。

Double
百分位数插值类型
(可选)

指定当百分位数值位于输入值栅格的两个像元值之间时要使用的插值方法。

  • 自动检测如果输入值栅格的像素类型为整型,则将使用最近方法。 如果输入值栅格的像素类型为浮点型,则将使用线性方法。 这是默认设置。
  • 最邻近将使用最接近所需的百分位数的可用值。
  • 线性将使用接近所需百分位数的两个值的加权平均值。
String
计算圆形统计数据
(可选)

指定如何处理圆形数据的输入栅格。

  • 未选中 - 将计算普通线性统计数据。 这是默认设置。
  • 选中 - 将计算角度或其他循环量的统计数据,例如以度为单位的罗盘方向、日间或实数的小数部分。
Boolean
圆换行值
(可选)

将用于将线性值四舍五入到给定圆形统计数据范围的值。 其值必须是正整数或浮点值。 默认值为 360 度。

仅当选中计算圆形统计数据参数时,才支持此参数。

Double

ZonalStatisticsAsTable(in_zone_data, zone_field, in_value_raster, out_table, {ignore_nodata}, {statistics_type}, {process_as_multidimensional}, {percentile_values}, {percentile_interpolation_type}, {circular_calculation}, {circular_wrap_value})
名称说明数据类型
in_zone_data

定义区域的数据集。

可通过整型栅格或要素图层来定义区域。

Raster Layer; Feature Layer
zone_field

包含定义每个区域的值的字段。

该字段可以是区域数据集的整型字段或字符串型字段。

Field
in_value_raster

含有要计算统计数据的值的栅格。

Raster Layer
out_table

将包含每个区域中值的汇总的输出表。

表的格式由输出位置和路径确定。 默认情况下,如果在地理数据库工作空间中,则输出将是一个地理数据库表;如果在文件工作空间中,则输出将为 dBASE 表。

Table
ignore_nodata
(可选)

指定值输入中的 NoData 值是否会在其所落入区域的结果中被忽略。

  • DATA在任意特定区域内,仅使用在输入值栅格中拥有值的像元来确定该区域的输出值。 在统计计算过程中,值栅格内的 NoData 像元将被忽略。 这是默认设置。
  • NODATA在任何特定区域中,如果 NoData 像元存在于值栅格中,则它们不会被忽略,并且 NoData 像元的存在表明没有足够的信息来对该区域中的所有像元执行统计计算。 因此,整个区域将在输出栅格上接收 NoData 值。
Boolean
statistics_type
(可选)

指定要计算的统计数据类型。

  • ALL将计算所有的统计数据。 这是默认设置。
  • MEAN将计算值栅格中与输出像元同属一个区域的所有像元的平均值。
  • MAJORITY将计算值栅格中与输出像元同属一个区域的所有像元中最常出现的值。
  • MAXIMUM将计算值栅格中与输出像元同属一个区域的所有像元的最大值。
  • MEDIAN将计算值栅格中与输出像元同属一个区域的所有像元的中值。
  • MINIMUM将计算值栅格中与输出像元同属一个区域的所有像元的最小值。
  • MINORITY将计算值栅格中与输出像元同属一个区域的所有像元中出现次数最少的值。
  • PERCENTILE将计算值栅格中与输出像元同属一个区域的所有像元的百分比值。 默认情况下将计算 90% 百分比数。 您可以使用 percentile_values 参数来指定其他值(从 0 到 100)。
  • RANGE将计算值栅格中与输出像元同属一个区域的所有像元的最大值与最小值之差。
  • STD将计算值栅格中与输出像元同属一个区域的所有像元的标准偏差。
  • SUM将计算值栅格中与输出像元同属一个区域的所有像元的合计值。
  • VARIETY将计算值栅格中与输出像元同属一个区域的所有像元中唯一值的数目。
  • MIN_MAX将计算最小值统计数据和最大值统计数据。
  • MEAN_STD将计算平均值统计数据和标准差统计数据。
  • MIN_MAX_MEAN将计算最小值、最大值和平均值统计数据。
String
process_as_multidimensional
(可选)

指定在输入栅格为多维栅格时,如何进行计算。

  • CURRENT_SLICE将计算输入多维数据集的当前剖切片中的统计数据。 这是默认设置。
  • ALL_SLICES将计算输入多维数据集的所有维度的统计数据。
Boolean
percentile_values
[percentile_values,...]
(可选)

要计算的百分比数。 默认值为 90,指示 90%。

取值范围为 0 到 100。 0% 基本上等同于“最小值”统计数据,而 100% 则等同于“最大值”。 值 50 所生成的结果基本等同于“中值”统计数据的结果。

此参数仅在 statistics_type 参数设置为 PERCENTILEALL 时受支持。

Double
percentile_interpolation_type
(可选)

指定当百分位数值位于输入值栅格的两个像元值之间时要使用的插值方法。

  • AUTO_DETECT如果输入值栅格的像素类型为整型,则将使用 NEAREST 方法。 如果输入值栅格的像素类型为浮点型,则将使用 LINEAR 方法。 这是默认设置。
  • NEAREST将使用最接近所需的百分位数的可用值。
  • LINEAR将使用接近所需百分位数的两个值的加权平均值。
String
circular_calculation
(可选)

指定如何处理圆形数据的输入栅格。

  • ARITHMETIC将计算普通线性统计数据。 这是默认设置。
  • CIRCULAR将计算角度或其他循环量的统计数据,例如以度为单位的罗盘方向、日间或实数的小数部分。
Boolean
circular_wrap_value
(可选)

将用于将线性值四舍五入到给定圆形统计数据范围的值。 其值必须是正整数或浮点值。 默认值为 360 度。

仅在 circular_calculation 参数设置为 CIRCULAR 时,才支持此参数。

Double

代码示例

ZonalStatisticsAsTable 示例 1(Python 窗口)

本示例对面要素定义的区域内的栅格值进行了汇总,并将结果记录在表中。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outZSaT = ZonalStatisticsAsTable("zones.shp", "Classes", "valueforzone",
                                  "zonalstattblout", "NODATA", "SUM")
ZonalStatisticsAsTable 示例 2(独立脚本)

本示例对面要素定义的区域内的栅格值进行了汇总,并将结果记录在表中。

# Name: ZonalStatisticsAsTable_Ex_02.py
# Description: Summarizes values of a raster within the zones of 
#              another dataset and reports the results to a table.
# 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 = "zones.shp"
zoneField = "Classes"
inValueRaster = "valueforzone"
outTable = "zonalstattblout02.dbf"


# Execute ZonalStatisticsAsTable
outZSaT = ZonalStatisticsAsTable(inZoneData, zoneField, inValueRaster, 
                                 outTable, "NODATA", "MEAN")