『公告』 预祝您龙年大吉,万事如意, 过节期间, 大家如需数据服务,请拨打400 或直接添加客服微信,再祝大家龙年,心想事成。
关注我们 新浪 腾讯

ArcGIS教程:面积制表

ArcGIS教程:面积制表
计算两个数据集之间交叉制表的区域并输出表。

摘要

    计算两个数据集之间交叉制表的区域并输出表。

插图


用法

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

·      如果区域输入和类输入均为具有相同分辨率的栅格,则可直接使用它们。

如果分辨率不同,则可先应用内部重采样以使其相一致,然后再执行区域操作。

·      如果区域输入为栅格数据集,则该输入必须具有属性表。通常会自动为整型栅格数据创建属性表,但是某些情况下可能不会这样做。您可以使用构建栅格属性表来创建一个属性表。

·      如果区域输入是要素数据集,则可在内部对其应用矢量至栅格转换。

要确保转换结果与类栅格输入完全对齐,建议您检查环境设置和栅格设置中的范围和捕捉栅格是否设置正确。

·      在指定输入区域或类数据时,默认字段将为第一个可用的有效字段。如果无其他有效字段存在,则 ObjectID 字段(如 OID FID)将为默认字段。

·      如果为区域字段选择保留字段(例如,OBECTIDFID OID),则这可能导致结果中存在一些不明确现象。结果包括特定输出格式类型以及指定区域字段所必需的特定保留字段名称。如果对于特定输出格式,指定字段具有与保留字段相同的名称,则在输出中以结果中所有字段名均唯一的方式更改区域字段的名称。

·      如果类输入为要素数据集,则同样可在内部对其应用矢量至栅格转换。先前提示中列出的要素区域输入的条件同样适用于要素类输入。

·      通常建议仅将栅格用作区域和类输入。如果您的输入是要素,则应首先考虑使用转为栅格转换工具将其转换为栅格。这可使您更好地控制矢量至栅格转换,以有助于确保您始终获得预期的结果。

·      如果将点或线数据集用作类数据,则将报告由那些要素相交的区域。

·      面积制表工具以表的形式进行输出。

在此表中:

  •   区域数据集的每个唯一值均有一条记录。
  •    类数据集的每个唯一值均有一个字段。
  •   每个记录将存储每个区域内每个类的面积。

语法

    TabulateArea (in_zone_data, zone_field, in_class_data, class_field, out_table, {processing_cell_size})

参数

说明

数据类型

in_zone_data

定义区域的数据集。

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

Raster Layer | Feature Layer

zone_field

保存定义每个区域的值的字段。

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

Field

in_class_data

定义类的数据集将在各个区域内对类的面积进行汇总。

类输入可以是整型栅格图层或要素图层。

Raster Layer | Feature Layer

class_field

用于保存类值的字段。

该字段可以是输入类数据的整型或字符串型字段。

Field

out_table

将包含各区域中各个类面积的汇总的输出表。

Table

processing_cell_size

(可选)

用于分区操作的处理像元大小。

如果专门进行设置,则是环境中的值。如果未设置环境,则默认的像元大小将由区域数据类型确定,如下所示:

·         如果区域数据集为栅格,则像元大小将与区域栅格相同。

·         如果区域数据集为要素,则像元大小为输出空间参考中区域要素数据集范围的宽度或高度较小值除以 250

Analysis Cell Size

代码实例

    面积制表 (TabulateArea) 示例 1Python 窗口)

    本例返回包含各区域中各个类值面积的表。

import arcpy

from arcpy import env

from arcpy.sa import *

env.workspace = "C:/sapyexamples/data"

TabulateArea("zonedata.shp", "IDStr", "valueraster", "VALUE",

             "C:/sapyexamples/output/areatable.dbf", 2)

    TabulateArea 示例 2(独立脚本)

    本例返回包含各区域中各个类值面积的表。

# Name: TabulateArea_Ex_02.py

# Description: Calculates cross tabulated areas between two datasets.

# 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"

env.extent = "classgrid"

env.snapRaster = "classgrid"

# Set local variables

inZoneData = "zonedata.shp"

zoneField = "IDStr"

inClassData = "valueraster"

classField = "VALUE"

outTable = "C:/sapyexamples/output/areatable02.dbf"

processingCellSize = 2

# Check out the ArcGIS Spatial Analyst extension license

arcpy.CheckOutExtension("Spatial")

# Execute TabulateArea

TabulateArea(inZoneData, zoneField, inClassData, classField, outTable,

             processingCellSize)

      京ICP备2025132830号-1 京公网安备 号