调用arcpy.SelctLayerByAttribute函数出现问题!
如题,我调用arcpy.SelctLayerByAttribute函数筛选图层中的矢量要素,会设置一条查询语句query = ‘ “Elevation <= 0 ” ’, 之后把它作为输入参数改变为 query = arcpy.GetParameterAsText(0), 之后我在输入参数里设置query为SQL语言,输入
“Elevation” <= 0, 运行后在生成图层再用上述函数处理时会报表达式错误,我又把SQL语言改为String, 输入了跟第一条一模一样的表达式,但还是会报错,请问这是为什么?应该怎么解决?(注:一个发现:使用SQL语言作为输入参数在保存原有图层直接运行处理的情况下可以生成正确的筛选后图层,但是如果先生成图层就会报表达式错误)
“Elevation” <= 0, 运行后在生成图层再用上述函数处理时会报表达式错误,我又把SQL语言改为String, 输入了跟第一条一模一样的表达式,但还是会报错,请问这是为什么?应该怎么解决?(注:一个发现:使用SQL语言作为输入参数在保存原有图层直接运行处理的情况下可以生成正确的筛选后图层,但是如果先生成图层就会报表达式错误)
2 个回复
慕晓燕 - 长期ArcGIS爱好者
赞同来自: 潘建伟 、陈晨
另外有个点我不知题主是否考虑了,就是arcpy.SelectLayerByAttribute() 函数接收的是 Feature Layer 对象,而不是Feature Class,因此注意传入内存图层或lyr文件对象,而不是硬盘数据地址。可以在输入参数中设置类型,也可以在代码中加入arcpy.MakeFeatureLayer_management()实现。
我们再来解决这个问题,我做了个简单的测试可以实现,如下,请参照看看问题在哪。
脚本:
tobm111
赞同来自:
要回复问题请先登录或注册
发起人
相关问题
问题状态