无法为arcpy中的给定多边形输入选择图层

时间:2016-03-18 05:07:52

标签: python arcpy

我已经创建了python脚本工具,并且能够通过提供如下的要素类来选择图层。

import arcpy

arcpy.env.workspace = "C:/project/pmms.gdb"

arcpy.SelectLayerByLocation_management('stops', 'intersect', 'adminarea')

但是当我使用以下代码获取用户输入多边形(FeatureSet)时,它会失败并给出错误消息。我创建了一个FeatureSet类型的参数,以允许用户提供交互式多边形输入。请提供您的建议。

import arcpy

fc = "C:/project/pmms.gdb/stops"

infeat = arcpy.GetParameterAsText(0)

arcpy.SelectLayerByLocation_management(fc, 'intersect', infeat)

错误讯息:

Traceback (most recent call last):
  File "C:\project\scripts\select.py", line 7, in <module>
    arcpy.SelectLayerByLocation_management(fc, 'intersect', infeat)
  File "c:\program files\arcgis\desktop10.1\arcpy\arcpy\management.py", line 6585, in SelectLayerByLocation
    raise e
ExecuteError: Failed to execute. Parameters are not valid.
ERROR 000368: Invalid input data.
Failed to execute (SelectLayerByLocation).

1 个答案:

答案 0 :(得分:1)

来自ArcGIS help page on the Select Layer By Location function

  

输入必须是要素图层;它不能是一个要素类。

在尝试选择之前包含Make Feature Layer操作,它应该按预期工作。

fc = "C:/project/pmms.gdb/stops"
arcpy.MakeFeatureLayer_management(fc, 'stops')
arcpy.SelectLayerByLocation_management('stops', 'intersect', infeat)

确保您的ArcMap目录中没有一个名为stops的图层(这可能是您的代码的先前版本正常工作的原因)。