import arcpy # 获取用户输入参数 input_feature = arcpy.GetParameterAsText(0) # 输入要素 query_expression = arcpy.GetParameterAsText(1) # 查询表达式 output_feature = arcpy.GetParameterAsText(2) # 输出要素 # 构建查询语句 query = "{} >= {}".format(arcpy.AddFieldDelimiters(input_feature, "面积"), query_expression) # 使用查询语句选择要素 arcpy.MakeFeatureLayer_management(input_feature, "lyr") arcpy.SelectLayerByAttribute_management("lyr", "NEW_SELECTION", query) # 将选择的要素导出到输出位置 arcpy.CopyFeatures_management("lyr", output_feature) # 清除选择 arcpy.SelectLayerByAttribute_management("lyr", "CLEAR_SELECTION")运行错误:Traceback (most recent call last): File "D:\多对一空间连接\批量删除小面积.py", line 12, in <module> File "c:\program files (x86)\arcgis\desktop10.2\arcpy\arcpy\management.py", line 6688, in SelectLayerByAttribute raise e ExecuteError: ERROR 000358: 无效的表达式 执行(SelectLayerByAttribute)失败。 执行(删除小面)失败。请改正代码
时间: 2024-01-22 12:21:22 浏览: 199
GRB2网格预报数据发布影像服务.zip_.grb数据_Arcpy_GRB2格式数据_arcgis 气象_气象数据
这个错误通常是由于查询表达式中的语法错误导致的。您可以尝试打印出您构建的查询语句,检查其中是否有语法错误。另外,还可以将查询表达式直接硬编码到脚本中,看看是否仍然存在错误。例如:
```
query_expression = "1000" # 直接将查询表达式硬编码为 "1000"
query = "{} >= {}".format(arcpy.AddFieldDelimiters(input_feature, "面积"), query_expression)
```
如果上述代码可以正常运行,那么问题可能在于您输入的查询表达式不符合要求。您可以参考 ArcGIS 帮助文档中关于查询表达式的说明,确保输入的查询表达式是正确的。
阅读全文