| 标注 | 说明 | 数据类型 |
输入栅格或要素区域数据 | 定义区域的数据集。 可通过整型栅格或要素图层来定义区域。 | Raster Layer; Feature Layer |
区域字段 | 包含定义每个区域的值的字段。 该字段可以是区域数据集的整型字段或字符串型字段。 | Field |
输入赋值栅格 | 包含将用于创建直方图的值的栅格。 | Raster Layer |
输出表 | 输出表文件。 表的格式将由输出位置和路径确定。 默认情况下,如果在地理数据库工作空间中,则输出将是一个地理数据库表;如果在文件工作空间中,则输出将为 dBASE 表。 根据表中的信息创建可选图形输出。 | Table |
输出图形名称 (可选) | 用于显示的输出图形名称。 将在内容窗格的独立表下列出该图形。 | Graph |
作为输出表中行的区域 (可选) | 指定输入值栅格中的值在输出表中的表示方式。
| Boolean |
需要 Spatial Analyst 许可。
摘要
创建显示各唯一区域值输入中的像元值频数分布的表和直方图。
使用情况
区域直方图可用于对一个数据集中的值在另一个数据集类中的频数分布进行研究。 示例包括土地利用类中的坡度分布、高程类中的降雨分布或警察打击的犯罪分布。
区域直方图中的类数取决于指定输入值栅格(Python 中的 in_value_raster)参数值的方式。
如果指定为栅格数据集,则以下条件适用:
- 对于唯一值数小于 25 的整型栅格,类数将与值栅格中的唯一值数一致。
- 对于唯一值数大于 25 的整型栅格,这些值将被划分成 256 个类(从 1 到 256)。 如果唯一值数小于 256,则某些类的频率为 0。
- 对于浮点型栅格,值将划分成 256 个类(从 1 到 256)。
当指定为栅格图层时,以下条件适用:
- 对于拉伸符号系统,将使用拉伸类型,并将值划分成 256 个类(从 1 到 256)。
- 对于分类或唯一值符号系统,类数将与符号系统中的类数或唯一值数一致。
- 区域分析将在拉伸、分类或唯一值符号系统指定的值范围内执行。 将在计算中忽略值栅格中未在符号系统中显示的所有值。
- 对于“离散”和“向量场”符号系统,区域分析将忽略符号系统。 与将输入值栅格指定为栅格数据集时的方式相同,执行分析时将仅考虑数据类型和值栅格中的唯一值数。
- 区域直方图将显示值栅格图层符号系统标注中的类值。
区域定义为输入中具有相同值的所有区域。 各区域无需相连。 栅格和要素都可用于区域输入。
如果输入栅格或要素区域数据参数值(Python 中的 in_zone_data)是栅格,则必须是整数栅格。
如果输入栅格或要素区域数据参数值为要素,则将使用输入赋值栅格(Python 中的 in_value_raster)参数的像元大小和像元对齐方式在内部将其转换为栅格。
如果输入栅格或要素区域数据和输入赋值栅格参数值的像元大小、像元对齐方式或空间参考不同,则输入赋值栅格值将在内部用作像元大小、捕捉栅格和输出坐标系。 在执行分区操作之前,任何情况都会导致内部重采样。
如果区域输入和值输入均为具有相同像元大小的栅格,并且像元已对齐,则可将其直接应用于工具中,且工具处理期间不会对其进行内部重采样。
如果输入栅格或要素区域数据的值是点要素,则值输入栅格的任何特定像元中可能包含多个点。 对于这样的像元,区域值将通过具有最低 ObjectID 字段的点(例如 OID 或 FID)来确定。
如果输入栅格或要素区域数据的值具有重叠面,则无法为每一个单独的面执行区域分析。 因为要素输入已转换为栅格,所以每个位置只能拥有一个值。
另一种方法就是要为每个面区域反复进行区域操作并核对结果。
区域字段(Python 中的 zone_field)参数值必须为整型或文本类型。
在指定输入栅格或要素区域数据参数值时,默认区域字段将为第一个可用的整型或文本字段。 如果不存在其他有效字段,则 ObjectID 字段(例如 OID 或 FID)将成为默认字段。
默认情况下不生成区域直方图。 要创建区域直方图,请选中作为输出表中行的区域参数(在 Python 中将 zones_as_rows 参数设置为 ZONES_AS_ROWS)并指定输出直方图名称(Python 中的 out_graph 参数)参数值。 区域直方图只能在 ArcGIS Pro 中创建,不支持根据独立脚本创建。
通过取消选中作为输出表中行的区域参数创建输出表时,标注字段将包含值栅格数据集或图层符号系统标注中的值,具体取决于如何指定输入值栅格。
通过选中作为输出表中行的区域参数创建输出表时,标注字段将包含区域栅格中的值。
如果输出频率值超出长整型(32 位整数)字段数据类型的容量范围,只要指定输出表格式支持,则输出表中的字段将自动更新为大整数(64 位整数)字段数据类型。 如果输出格式不支持大整数字段数据类型,则输出频率值将返回为 -9999。 文件地理数据库和企业级地理数据库表支持大整数字段数据类型。
有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst。
参数
ZonalHistogram(in_zone_data, zone_field, in_value_raster, out_table, {out_graph}, {zones_as_rows})| 名称 | 说明 | 数据类型 |
in_zone_data | 定义区域的数据集。 可通过整型栅格或要素图层来定义区域。 | Raster Layer; Feature Layer |
zone_field | 包含定义每个区域的值的字段。 该字段可以是区域数据集的整型字段或字符串型字段。 | Field |
in_value_raster | 包含将用于创建直方图的值的栅格。 | Raster Layer |
out_table | 输出表文件。 表的格式将由输出位置和路径确定。 默认情况下,如果在地理数据库工作空间中,则输出将是一个地理数据库表;如果在文件工作空间中,则输出将为 dBASE 表。 根据表中的信息创建可选图形输出。 | Table |
out_graph (可选) | 用于显示的输出图形名称。 | Graph |
zones_as_rows (可选) | 指定输入值栅格中的值在输出表中的表示方式。
| Boolean |
代码示例
本示例创建了分区直方图 .dbf 表和图形文件。
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outZonalHist = ZonalHistogram("zoneras", "zonfield", "valueras", "znhist_tbl.dbf",
"znhist_graphl", "ZONES_AS_ROWS")本示例创建了分区直方图 .dbf 表。
# Name: ZonalHistogram_Ex_02.py
# Description: Creates a zonal histogram output table
# showing the amount of value cells
# for each unique input zone.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Set environment settings
env.workspace = "C:/sapyexamples/data"
# Set local variables
inZoneData = "zonras"
zoneField = "zonfield"
inValueRaster = "valueras"
outTable = "C:/sapyexamples/output/zonehist_tb2.dbf"
# Execute ZonalHistogram
ZonalHistogram(inZoneData, zoneField, inValueRaster, outTable)环境
许可信息
- Basic: 需要 Spatial Analyst
- Standard: 需要 Spatial Analyst
- Advanced: 需要 Spatial Analyst