我已经创建了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).
发布于 2016-03-21 11:21:45
来自ArcGIS “按位置选择层”函数中的“帮助”页
输入必须是一个特征层;它不能是一个特性类。
在尝试选择之前包括一个制作特征层操作,并且它应该可以像预期的那样工作。
fc = "C:/project/pmms.gdb/stops"
arcpy.MakeFeatureLayer_management(fc, 'stops')
arcpy.SelectLayerByLocation_management('stops', 'intersect', infeat)
只需确保您的ArcMap目录中没有一个名为stops
的层(这大概就是您之前版本的代码正常工作的原因)。
https://stackoverflow.com/questions/36076557
复制相似问题