如何计算Arcview 10中栖息地补丁的数量和面积

时间:2013-09-05 15:31:24

标签: gis arcpy arcmap

我目前正在研究我的硕士论文并且遇到了真正的GIS问题。我已经从http://www.kew.org/gis/projects/mad_veg/datasets_gis.html

下载了arc gis网格数据集

我已经成功地将它绘制在arcmap 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

问题是我在示例中复制的一些内容是特定于示例的,但我不确定。如果有人能指出我正确的方向,那将是一个很大的帮助

1 个答案:

答案 0 :(得分: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 - &gt;空间分析师 - &gt;区域 - &gt; ZonalGeometryAsTable并选择上面的参数并运行ZonalGeometryAsTable。