分区几何统计 (空间分析)

摘要

为数据集中的各个区域计算指定的几何测量值(面积、周长、厚度或者椭圆的特征值)。

了解有关“分区几何统计”工作原理的详细信息

插图

分区几何工具图示
OutRas = ZonalGeometry(InRas1,"VALUE","AREA")

使用情况

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

  • 输出像元大小参数可以通过数值进行定义,也可以从现有栅格数据集获取。 如果没有将像元大小明确指定为参数值,则将从像元大小环境获取相应值(前提是已指定环境)。 如果参数像元大小和环境像元大小均未指定,则默认的输出像元大小会根据输入数据集的类型并按照如下方式进行确定。

    • 如果输入数据集是栅格,则使用数据集的像元大小。
    • 如果输入数据集为要素,且设置了捕捉栅格环境,则使用捕捉栅格的像元大小。 如果未设置捕捉栅格,则像元大小会通过使用范围的宽度或高度中的较小值除以 250 来计算,其中范围位于在环境中指定的输出坐标系内。
  • 如果使用数值指定了像元大小,工具将直接将其用于输出栅格。

    如果使用栅格数据集指定了像元大小,则参数将显示栅格数据集的路径而不是像元大小值。 该栅格数据集的像元大小将直接用于分析,前提是数据集的空间参考与输出空间参考相同。 如果数据集的空间参考与输出空间参考不同,将根据指定的像元大小方法值进行投影。

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

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

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

  • 各几何类型的输出栅格的数据类型将为浮点型。

  • 如果特定区域仅由一个像元组成,或者该区域是单个方形像元块,则椭圆(在本例中为圆)的方向设置为 90 度。

  • 当输出栅格格式为 .crf 时,此工具支持金字塔栅格存储环境。 默认情况下,将在输出中创建金字塔。 对于任何其他输出格式,不支持此环境,并且不会创建金字塔。

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

参数

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

定义区域的数据集。

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

Raster Layer; Feature Layer
区域字段

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

必须是区域数据集的整型字段。

Field
几何类型
(可选)

指定将计算的几何类型。

  • 面积将计算各个区域的面积。
  • 周长将计算各个区域的周长。
  • 厚度将计算区域中最深(或最厚)的点距其周围像元的距离。
  • 质心将计算各个区域的质心。
String
输出像元大小
(可选)

将创建的输出栅格的像元大小。

该参数可以通过数值定义,也可以从现有的栅格数据集获取。 在像元大小未明确指定为参数值的情况下,如果指定了环境像元大小值,则将使用该值;否则,将使用附加规则,根据其他输入来计算该值。 有关详细信息,请参阅使用方法部分。

Analysis Cell Size

返回值

标注说明数据类型
输出栅格

输出分区几何栅格。

Raster

ZonalGeometry(in_zone_data, zone_field, {geometry_type}, {cell_size})
名称说明数据类型
in_zone_data

定义区域的数据集。

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

Raster Layer; Feature Layer
zone_field

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

必须是区域数据集的整型字段。

Field
geometry_type
(可选)

指定将计算的几何类型。

  • AREA将计算各个区域的面积。
  • PERIMETER将计算各个区域的周长。
  • THICKNESS将计算区域中最深(或最厚)的点距其周围像元的距离。
  • CENTROID将计算各个区域的质心。
String
cell_size
(可选)

将创建的输出栅格的像元大小。

该参数可以通过数值定义,也可以从现有的栅格数据集获取。 在像元大小未明确指定为参数值的情况下,如果指定了环境像元大小值,则将使用该值;否则,将使用附加规则,根据其他输入来计算该值。 有关详细信息,请参阅使用方法部分。

Analysis Cell Size

返回值

名称说明数据类型
out_raster

输出分区几何栅格。

Raster

代码示例

ZonalGeometry 示例 1(Python 窗口)

本示例为输入面要素定义的各个区域确定面积。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outZonalGeometry = ZonalGeometry("zones.shp", "Classes", "AREA", 0.2)
outZonalGeometry.save("C:/sapyexamples/output/zonegeomout3")
ZonalGeometry 示例 2(独立脚本)

本示例为输入面要素定义的各个区域确定面积。

# Name: ZonalGeometry_Ex_02.py
# Description:Calculates for each zone in a dataset the specified geometry 
#   measure (area, perimeter, thickness, or the characteristics 
#   of ellipse).
# 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"
cellSize = 0.2

# Execute ZonalStatistics
outZonalGeometry = ZonalGeometry(inZoneData, zoneField, "AREA", cellSize)  

# Save the output 
outZonalGeometry.save("C:/sapyexamples/output/zonegeomout2")