分区特征 (Spatial Analyst)

需要 Spatial Analyst 许可。

摘要

汇总另一数据集分区内的多个栅格数据值,并以表的形式报告结果。

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

使用情况

  • 以下是该工具的示例应用:

    • 计算不同生态系统区域的平均降雨量、最高温度和人口总数,以估计可持续农业实践。
    • 估算每个图的平均海拔、平均坡度和 NDVI 值总和,以确定适合种植遮荫树的区域。

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

  • 如果输入栅格或要素区域 ( in_zone_raster_or_features in Python) 参数值是栅格,则它必须是整型栅格。

  • 如果输入栅格或要素区域参数值为要素,则将使用像元大小最小的输入值栅格 ( in_value_rasters_statistics in Python ) 参数值的像元大小、像元对齐和空间参考在内部将其转换为栅格,除非在分析环境中另有规定。 这将在执行分区操作之前触发内部重采样。

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

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

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

  • 输入栅格或要素区域的像元大小和输入值栅格参数值不同时,则将使用像元大小最小的输入值栅格参数值的像元大小、像元对齐和空间参考,除非在分析环境中另有规定。 这将在执行分区操作之前触发内部重采样。

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

  • 在指定输入栅格或要素区域值时,默认区域字段 (zone_field in Python) 参数值将为要素的第一个可用的整型字段(例如 OIDFID),以及栅格的 VALUE 字段。 区域字段可以是整型或字符串字段类型。

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

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

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

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

  • 要为每个值栅格计算多种统计数据类型,需要多次指定相同的值栅格。 如果相同的值栅格和统计数据类型组合重复,工具将生成错误。

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

    如果选中计算圆形统计数据参数,则将为所有应用了指定圆换行值的值栅格计算圆形统计数据。

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

  • 输出统计数据表 (out_statistics_table in Python) 参数值具有以下特征:

    • 输出表中的行数与分析范围中的区域数相同。
    • 输出表中将创建一系列字段来表示区域,其中包含每个输入值栅格的计数和统计数据值。
    • 默认情况下,字段名称来自值栅格名称和统计数据类型,除非在字段名称参数中指定。 对于圆形统计数据,字段名称将在指定统计数据之前包含 C_。 例如,算术平均统计的字段名称为 ValueRasterName_MEAN,圆平均值统计的字段名称为 ValueRasterName_C_MEAN
    • 输出表中字段名称的最大长度取决于工作空间。
    • 输出表中项目的每个值的数据类型取决于正在执行的区域计算。 有关统计特定行为的详细信息,请参阅分区统计工具的工作原理

  • 对于输出统计数据要素类 (out_statistics_features in Python) 参数值,如果区域输入是栅格,则输出要素类将转换为不经过概化并遵循分析环境的要素。

  • 此工具将使用以下环境设置:

    • 像元大小最小的值栅格将默认用作分析像元大小、输出坐标系和捕捉栅格。
    • 默认范围是区域与所有值栅格的并集的交点。
    • 默认情况下,如果有多核处理器可用,此工具将使用多核处理。 可供使用的最大核数为四。

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

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

参数

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

定义区域的数据集。

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

Raster Layer; Feature Layer
输入值栅格

栅格的集合,其各个值将通过统计数据进行汇总。 该参数有以下属性。

  • Raster - 输入值栅格。
  • Statistics Type - 要为栅格计算的统计数据。
  • Field Name - 输出表中栅格的字段名称。

将针对每个输入值栅格中所有与输出像元属于同一区域的像元计算统计数据。 可用的统计数据类型如下:

  • Mean - 像元的平均值。
  • Majority - 出现次数最多的像元值
  • Majority count - 包含众数值的所有像元的频率。
  • Majority percentage - 包含众数值的像元的百分比。
  • Maximum - 最大像元值。
  • Median - 中值或中间像元值
  • Minimum - 最小像元值。
  • Minority - 出现次数最少的像元值。
  • Minority count - 包含少数值的所有像元的频率。
  • Minority percentage - 包含少数值的像元的百分比。
  • Percentile - 像元值的百分比值。 默认情况下将计算 90% 百分比数。 您可以使用百分数值参数来指定其他值(从 0 到 100)。
  • Range - 最大和最小像元值之间的差。
  • Std - 像元值的标准差。
  • Sum - 像元的总值。
  • Variety - 唯一像元值的数量。

输出统计表中的字段名称将默认从值栅格名称和统计类型中获取。

Value Table
输出统计表

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

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

Table
输出统计数据要素类
(可选)

通过将输出表连接到输入区域数据来创建的输出要素类。

Feature Class
区域字段
(可选)

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

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

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

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

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

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

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

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

Double
百分比插值类型
(可选)

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

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

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

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

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

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

Double
以多维方式处理
(可选)

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

  • 未选中 - 将计算输入多维数据集的当前剖切片中的统计数据。 这是默认设置。
  • 已选中 - 将计算输入多维数据集的所有维度的统计数据。
Boolean
将区域属性追加到输出要素
(可选)

指定是否将输入区域的任何其他区域属性追加到输出要素类。

  • 未选中 - 仅输入区域的区域 ID 字段追加到输出要素类。 这是默认设置。
  • 选中 - 输入区域的其他区域属性将追加到输出要素类。
Boolean

ZonalCharacterization(in_zone_raster_or_features, in_value_rasters_statistics, out_statistics_table, {out_statistics_features}, {zone_field}, {ignore_nodata}, {percentile_values}, {percentile_interpolation_type}, {circular_calculation}, {circular_wrap_value}, {process_as_multidimensional}, {add_zone_attributes})
名称说明数据类型
in_zone_raster_or_features

定义区域的数据集。

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

Raster Layer; Feature Layer
in_value_rasters_statistics
[in_value_rasters_statistics,...]

栅格的集合,其各个值将通过统计数据进行汇总。 该参数有以下属性。

  • 栅格 - 输入值栅格。
  • 统计类型 - 要为栅格计算的统计数据。
  • 字段名称 - 输出表中栅格的字段名称。

将针对每个输入值栅格中所有与输出像元属于同一区域的像元计算统计数据。 可用的统计数据类型如下:

  • MEAN - 像元的平均值。
  • MAJORITY - 出现次数最多的像元值。
  • MAJORITY_COUNT - 包含众数值的所有像元的频率。
  • MAJORITY_PERCENT - 包含众数值的像元的百分比。
  • MAXIMUM - 最大像元值。
  • MEDIAN - 中值或中间像元值
  • MINIMUM - 最小像元值。
  • MINORITY - 出现次数最少的像元值。
  • MINORITY_COUNT - 包含少数值的所有像元的频率。
  • MINORITY_PERCENT - 包含少数值的像元的百分比。
  • PERCENTILE - 像元值的百分比值。 默认情况下将计算 90% 百分比数。 您可以使用 percentile_values 参数来指定其他值(从 0 到 100)。
  • RANGE - 最大和最小像元值之间的差。
  • STD - 像元值的标准差。
  • SUM - 像元的总值。
  • VARIETY - 唯一像元值的数量。

输出统计表中的字段名称将默认从值栅格名称和统计类型中获取。

Value Table
out_statistics_table

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

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

Table
out_statistics_features
(可选)

通过将输出表连接到输入区域数据来创建的输出要素类。

Feature Class
zone_field
(可选)

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

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

Field
ignore_nodata
(可选)

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

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

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

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

指定是否将输入区域的任何其他区域属性追加到输出要素类。

  • ZONE_FIELD_ONLY仅输入区域的区域 ID 字段追加到输出要素类。 这是默认设置。
  • ALL输入区域的其他区域属性将追加到输出要素类。
Boolean

代码示例

ZonalCharacterization 示例 1(Python 窗口)

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

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"

outTable = ZonalCharacterization("zones.shp",
                "ValueRas1.tif MEAN ValueRas1_MEAN;ValueRas2.tif MAXIMUM ValueRas2_MAX;ValueRas3.tif STD ValueRas3_STD",
                "zonalcharacterout.dbf","featurestatout.shp","Id","DATA","",
                "AUTO_DETECT","ARITHMETIC","","CURRENT_SLICE","ZONE_FIELD_ONLY")
ZonalCharacterization 示例 2(独立脚本)

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

# Name: ZonalCharacterization_Ex_standalone.py
# Description: Summarizes the values of multiple rasters within the zones
#              of another dataset and reports the results as a table.
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy.sa import *

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Set the analysis environments
arcpy.env.workspace = "C:/sapyexamples/data"

# Set the local variables
inZoneData = "zones.tif"
zoneField = "Value"
inValueRas1 = "ValueRas1.tif"
inValueRas2 = "ValueRas2.tif"
inValueRas3 = "ValueRas3.tif"
outTable = "zonalcharactereizationout.dbf"
outFeatureClass = "featurestatout.shp"

# Execute ZonalCharacterization
outzonalchar = ZonalCharacterization(inZoneData, [[inValueRas1, "MEAN", 
            "ValueRas1_MEAN"], [inValueRas2, "STD", "ValueRas2_STD"], 
            [inValueRas3, "SUM", "ValueRas3_SUM"]], outTable, outFeatureClass, 
            zoneField, "NODATA", "", "", "ARITHMETIC", "", "CURRENT_SLICE", "ALL")

许可信息

  • Basic: 需要 Spatial Analyst
  • Standard: 需要 Spatial Analyst
  • Advanced: 需要 Spatial Analyst

相关主题