使用按位置语法选择时遇到一些问题

时间:2017-01-22 19:37:47

标签: python arcpy wing-ide

我的指示:

  

创建一个Python脚本,从“coa_parcels.shp”中选择宗地   与shapefile“floodplains.shp”相交并创建一个新的   shapefile仅包含选定的宗地。

     

工作区的位置和三个shapefile(coa_parcels,   泛洪平原和输出)应被视为用户定义的输入   使用“raw_input”语句。

以下是此部分脚本的示例伪代码:

  • 开始
  • 获取工作区的用户输入
  • 获取输入要素类名称的用户输入(例如coa_parcels.shp)
  • 获取选择要素类名称的用户输入(例如floodplains.shp)
  • 获取输出要素类名称的用户输入(例如selected_pa​​rcels.shp)
  • 设置工作区并覆盖输出设置
  • 创建临时要素图层
  • 根据选择要素类
  • 逐层选择
  • 将所选要素复制到新要素类
  • 打印一条消息,让用户知道已创建新要素类
  • 结束

我的剧本:

import arcpy

workSpace = raw_input("What is the workspace location? ")
inFeature = raw_input("What is the input feature class name? ")
selFeature = raw_input("What is the select feature class name? ")
outFeature = raw_input("What is the output feature class name? ")

arcpy.env.workspace = workSpace
arcpy.env.overwriteOutput = True
arcpy.MakeFeatureLayer_management("coa_parcels.shp", "lyr") 
arcpy.SelectLayerByLocation_management(coa_parcels.shp,"INTERSECT",floodplains.shp, "NEW_SELECTION")
arcpy.CopyFeatures_management("lyr", "selected_parcels")
print "A new feature class",outFeature,"has been created!"here

我的错误是:NameError:名称'coa_parcels'未定义

1 个答案:

答案 0 :(得分:-1)

仔细查看引发错误的行:

arcpy.SelectLayerByLocation_management(coa_parcels.shp,

通过不在引号中包含图层名称,您可以向Python指出它应该使用变量coa_parcels作为按位置工具选择图层的参数输入。

未经请求,与您的错误无关,“创建要素图层”工具不会创建shapefile。没有什么能阻止您在图层名称中加入.shp(显然,因为这不是您出现错误的地方!)但是对于"最佳做法"我建议更明确地命名图层,这样你就不会意外地尝试将图层传递给只接受shapefile的工具。