按属性选择图层 (数据管理)
摘要
基于属性查询在图层或表视图中添加、更新或移除选择内容。
用法
语法
参数 | 说明 | 数据类型 |
in_layer_or_view |
将应用选择的要素图层或表视图。 输入可以是 ArcMap 内容列表中的图层或表视图,也可以是在 ArcCatalog 或脚本中使用“创建要素图层”或“创建表视图”工具创建的图层或表视图。 | Table View; Raster Layer; Mosaic Layer |
selection_type (可选) |
确定如何应用所选内容以及如果已存在已选内容要执行的操作。
| String |
where_clause (可选) |
用于选择记录子集的 SQL 表达式。表达式的语法会因数据源的不同而稍有不同。例如,如果要查询文件或 ArcSDE 地理数据库、shapefile、coverage、dBASE 或 INFO 表,需将字段名用双引号括起: "MY_FIELD" 如果要查询个人地理数据库,需将字段用方括号括起: [MY_FIELD] 在 Python 中,字符串用成对的单引号或双引号括起。要创建含有引号的字符串(常见于 SQL 表达式中的 WHERE 子句),可以对引号进行转义(使用反斜线)或对字符串使用三重引号。例如,如果所需的 WHERE 子句为 "CITY_NAME" = 'Chicago' 可以将整个字符串用双引号括起,然后如下所示对内部双引号进行转义: " \"CITY_NAME\" = 'Chicago' " 或者可以将整个字符串用单引号括起,然后如下所示对内部单引号进行转义: ' "CITY_NAME" = \'Chicago\' ' 或者不进行转义,而将整个字符串用三重引号括起: """ "CITY_NAME" = 'Chicago' """ 有关 SQL 语法及其在不同数据源中的差异的详细信息,请参阅帮助主题在 ArcGIS 中使用查询表达式的 SQL 参考。 | SQL Expression |
代码示例
以下 Python 窗口脚本演示了如何在即时模式下使用 SelectLayerByAttribute 函数。
import arcpy arcpy.MakeFeatureLayer_management ("C:/data/data.mdb/states", "stateslyr") arcpy.SelectLayerByAttribute_management ("stateslyr", "NEW_SELECTION", " [NAME] = 'California' ")
以下独立脚本显示了如何在工作流中使用 SelectLayerByAttributes 函数,以便根据位置和属性查询提取要素并将其导入一个新要素类中。
# Name: ExtactFeaturesByLocationAndAttribute.py # Description: Extract features to a new feature class based on a spatial relationships to another layer AND an attribute query # Author: ESRI # Import system modules import arcpy # Set the workspace env.workspace = "c:/data/mexico.gdb" # Make a layer from the feature class arcpy.MakeFeatureLayer_management("cities", "lyr") # Select all cities which overlap the chihuahua polygon arcpy.SelectLayerByLocation_management("lyr", "intersect", "chihuahua", 0, "new_selection") # Within selected features, further select only those cities which have a population > 10,000 arcpy.SelectLayerByAttribute_management("lyr", "SUBSET_SELECTION", ' "population" > 10000 ') # Write the selected features to a new featureclass arcpy.CopyFeatures_management("lyr", "chihuahua_10000plus")