ArcGIS教程:面积制表

  摘要

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

  插图

  

  用法

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

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

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

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

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

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

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

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

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

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

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

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

  在此表中:

  区域数据集的每个唯一值均有一条记录。

  类数据集的每个唯一值均有一个字段。

  每个记录将存储每个区域内每个类的面积。

  语法

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

  代码实例

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

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

  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)

转载自:https://blog.csdn.net/dsac1/article/details/46727197

You may also like...