0

我目前正在研究我的硕士论文,并且在 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

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

4

1 回答 1

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

在此处输入图像描述

更新:

您必须将此代码用于栅格数据:

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 -> Spatial Analyst -> Zonal -> ZonalGeometryAsTable 并选择上述参数并运行 ZonalGeometryAsTable。

于 2013-09-06T08:57:09.603 回答