在根据指定的属性条件从图层中选择要素时,我们需要用到arcpy.management.SelectLayer这个函数。
函数的用法:
arcpy.management.SelectLayerByAttribute(in_layer_or_view, {selection_type}, {where_clause}, {invert_where_clause})
函数的各个参数含义如下:
in_layer_or_view
:要素图层或要素视图。selection_type
:选择类型。可选值包括:"NEW_SELECTION"(新建选择)、"ADD_TO_SELECTION"(添加到选择)和"CLEAR_SELECTION"(清除选择)。默认值为"NEW_SELECTION"。where_clause
:选择条件语句。例如:"POPULATION >= 10000"。invert_where_clause
:是否选择不满足指定条件的要素。 Boolean 类型,True 表示选择不满足条件的要素,False 表示选择满足条件的要素。默认为 False。
注意事项:
where_clause
参数指定选择条件,使用的是 SQL 查询语句,需要正确书写查询语句,以选择符合条件的要素。in_layer_or_view
参数必须是要素图层或要素视图,不支持选择数据表。- 选择结果会影响到图层数据,可以用
arcpy.management.CopyFeatures()
复制选择结果,以保留原始图层数据。
下面是一个使用 arcpy.management.SelectLayerByAttribute()
工具的示例代码
import arcpy
# 指定要素图层和选择条件
in_layer = r"C:\data\test.gdb\myFeatureClass"
where_clause = "POPULATION >= 10000"
# 选择满足指定条件的要素
arcpy.management.SelectLayerByAttribute(in_layer, "NEW_SELECTION", where_clause)
# 保存选择结果
arcpy.management.CopyFeatures(in_layer, r"C:\data\test.gdb\SelectionResult")
该代码将从要素图层中选择满足人口数量大于等于10000的要素,并将选择结果保存为新的要素类。