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"
  = "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)