【问题标题】:How to calculate the the number and area of habitat patches in Arcview 10如何在 Arcview 10 中计算栖息地斑块的数量和面积
【发布时间】:2013-09-05 15:31:23
【问题描述】:

我目前正在写我的硕士论文,但在 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

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

【问题讨论】:

    标签: gis arcpy arcmap


    【解决方案1】:

    你好像没有设置一些参数。 根据上面的链接,你必须设置这个参数:

    # 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。

    【讨论】:

    • 它希望我读取单个文件,但我为创建地图下载的数据是一个文件夹,其中包含 Arcmap 读取的许多不同文件(.adf、.dat 等)。我还能这样做吗?
    • 是的,你可以。我下载了上面的数据并成功运行了这个脚本。我更新了我的答案。
    猜你喜欢
    • 2018-05-13
    • 1970-01-01
    • 1970-01-01
    • 2018-05-16
    • 2013-05-23
    • 1970-01-01
    • 2016-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多