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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM