区域直方图 (Spatial Analyst)

需要 Spatial 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)为点要素,则其可能具有值输入栅格的任何特定像元内所含的多个点。对于这样的像元,区域值将通过具有最低 ObjectID 字段的点(例如 OIDFID)来确定。

  • 如果输入栅格或要素区域数据(Python 中的 in_zone_data)具有重叠面,则无法针对每个单独的面执行区域分析。因为要素输入已转换为栅格,所以每个位置只能拥有一个值。

    另一种方法就是要为每个面区域反复进行区域操作并核对结果。

  • 区域字段参数(Python 中的 zone_field)值必须为整型或文本类型。

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

  • 默认情况下不生成区域直方图。要创建图形,请选中作为输出表中行的区域参数(在 Python 中将 zones_as_rows 参数设置为 ZONES_AS_ROWS)并指定一个 输出图表名称(Python 中的 out_graph 参数)。区域直方图只能在 ArcGIS Pro 应用程序内创建,并且不受独立脚本的支持。

  • 在直方图中,每个区域的类(条柱)的数量由输入赋值栅格参数确定。

    • 如果指定图层,则图层的符号系统定义类的数量。
    • 如果指定数据集,则在默认情况下将有 256 个类,除非输入是具有少于 26 个唯一值的整型(在此情况下,类的数量将是唯一值的总数)。

  • 有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 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
(可选)

指定输入值栅格中的值在输出表中的表示方式。

  • ZONES_AS_FIELDS区域将表示为字段。这是默认设置。
  • ZONES_AS_ROWS区域将表示为行。
Boolean

代码示例

ZonalHistogram 示例 1(Python 窗口)

本示例创建了分区直方图 .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")
ZonalHistogram 示例 2(独立脚本)

本示例创建了分区直方图 .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

相关主题