2013-09-05 42 views
0

我目前正在研究我的碩士論文,並在GIS方面遇到實際困難。我已經下載了電弧GIS網格數據集http://www.kew.org/gis/projects/mad_veg/datasets_gis.html如何計算Arcview中棲息地斑塊的數量和麪積10

我成功將其繪製在弧形圖10中。該地圖由各種不同的棲息地組成。我想知道我怎麼可以選擇其中一種棲息地類型,比如說「潮溼的森林」,然後計算那個棲息地有多少塊,每塊補丁有多大。

我一直在這裏呆了幾個星期,並沒有取得多大進展。有人建議我看看區域幾何作爲表http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//009z000000w5000000.htm看起來很有前途,但我給了編碼一個嘗試,我不能讓它工作。我在下面發佈了一些我的嘗試。

>>> import arcpy 
>>> from arcpy import env 
>>> from arcpy.sa import * 
>>> env.workspace = "Q:/MADGIS" 
>>> outZonalGeometryAsTable = ZonalGeometryAsTable("zones.shp", "Classes  "zonalgeomout", 0.2) 
Runtime error <class 'arcgisscripting.ExecuteError'>: ERROR 000626: Tool  ZonalGeometryAsTable is not licensed. 
>>> arcpy.CheckOutExtension("Spatial") 
u'CheckedOut' 
>>> outZonalGeometryAsTable = ZonalGeometryAsTable(inZoneData, zoneField, "AREA",  cellSize) 
Runtime error <type 'exceptions.NameError'>: name 'inZoneData' is not defined 

問題是在這個例子中複製的一些東西是特定於這個例子,但我不確定。如果有人甚至可以將我指向正確的方向,這將是一個很大的幫助

回答

0

看來,你沒有設置一些參數。 根據上面的鏈接,你必須設置此參數:

# Set local variables 
inZoneData = "YourShapefileName.shp" 
zoneField = "Classes" 
outTable = "zonalgeomout02.dbf" 
processingCellSize = 0.2 

# Check out the ArcGIS Spatial Analyst extension license 
arcpy.CheckOutExtension("Spatial") 

enter image description here

更新:

必須使用此代碼爲您的柵格數據:

import arcpy 
from arcpy import env 
from arcpy.sa import * 
env.workspace = "C:/Users/Puya/Downloads/Documents/StackOverflow/veg_grid" 
inZoneData = "vegetation" 
zoneField = "Value" 
outTable = "zonalgeomout02.dbf" 
processingCellSize = 29 
arcpy.CheckOutExtension("Spatial") 
outZonalGeometryAsTable = ZonalGeometryAsTable(inZoneData, zoneField, "AREA", processingCellSize) 

另外,在ArcMap中,您可以使用ArcToolbox - >空間分析 - >區域 - > ZonalGeometryAsTab並選擇以上參數並運行ZonalGeometryAsTable。

+0

它希望我在單個文件中閱讀,但下載的用於創建我的地圖的數據是包含Arcmap讀取的許多不同文件(.adf,.dat等)的文件夾。我還能這樣做嗎? – Colin

+0

是的,你可以。我下載了上面的數據併成功運行了這個腳本。我更新了我的答案。 –