写一个运行于arcgis10.2.2工具箱python2.7的脚本代码:输入要素图层,批量按属性筛选导出筛选后的要素图层
时间: 2024-01-22 10:20:26 浏览: 67
以下是一个运行于 ArcGIS 10.2.2 工具箱 Python 2.7 的脚本代码,可以实现输入要素图层,批量按属性筛选并导出筛选后的要素图层:
```python
# 导入 ArcPy 模块
import arcpy
# 获取输入参数
input_layer = arcpy.GetParameterAsText(0)
field_name = arcpy.GetParameterAsText(1)
field_value = arcpy.GetParameterAsText(2)
output_folder = arcpy.GetParameterAsText(3)
# 定义筛选条件
where_clause = "{} = '{}'".format(arcpy.AddFieldDelimiters(input_layer, field_name), field_value)
# 使用游标进行筛选并导出要素图层
with arcpy.da.SearchCursor(input_layer, ["OID@", "SHAPE@"], where_clause) as cursor:
for row in cursor:
output_name = "feature_{}.shp".format(row[0])
output_path = output_folder + "\\" + output_name
arcpy.CopyFeatures_management(row[1], output_path)
```
该脚本中,`arcpy.GetParameterAsText()` 方法用于获取工具箱中设置的参数,分别为输入的要素图层、要筛选的属性字段名、属性字段值、输出文件夹路径。然后,使用 `arcpy.AddFieldDelimiters()` 方法将属性字段名进行处理,以防止出现 SQL 注入问题。
接下来,使用 `arcpy.da.SearchCursor()` 方法进行筛选,将符合条件的要素图层逐个进行导出。在导出时,使用当前要素的 OID 值作为文件名,以确保输出文件的唯一性。
阅读全文