筛选 (Analysis)
摘要
从输入要素类或输入要素图层中提取要素(通常使用选择或结构化查询语言 (SQL) 表达式),并将其存储于输出要素类中。
用法
-
选择表达式或 SQL 表达式可使用查询构建器 构建,也可直接输入。有关表达式语法的详细信息,请参阅构建 SQL 表达式或 SQL 参考。
-
如果以图层作为输入要素并且未输入任何表达式,则仅将所选要素写入到输出要素类。如果以图层作为输入要素并且输入了表达式,则仅对所选要素执行表达式,并将所选集合中基于表达式的子集写入到输出要素类。
-
如果要根据图层中的所选要素集合来创建要素类,请使用复制要素 (Copy_Features) 工具。
语法
参数 | 说明 | 数据类型 |
in_features |
从中选择要素的输入要素类或图层。 | Feature Layer |
out_feature_class |
要创建的输出要素类。如果不使用任何表达式,则其中将包含所有输入要素。 | Feature Class |
where_clause (可选) |
用于选择要素子集的 SQL 表达式。表达式的语法会因数据源的不同而稍有不同。例如,如果要查询文件或 ArcSDE 地理数据库、shapefile 或 coverage,字段名需用双引号: "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 |
代码实例
import arcpy
from arcpy import env
env.workspace = "c:/basedata/roads.gdb"
arcpy.Select_analysis("nfroads", "paved", '[ROAD_CLASS] = "PAVED"')
以下 Python 窗口脚本演示了如何在即时模式下使用筛选 (Select) 函数。
import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.Select_analysis("majorrds.shp", "C:/output/majorrdsClass4.shp", '"CLASS" = \'4\'')
以下 Python 脚本演示了如何在独立脚本中使用筛选 (Select) 函数。
# Name: Select_Example2.py
# Description: Select roads of Class 4 from major roads tin the gnatcatcher habitat study area
# Author: ESRI
# Import system modules
import arcpy
from arcpy import env
# Set workspace
env.workspace = "C:/data"
# Set local variables
in_features = "majorrds.shp"
out_feature_class = "C:/output/majorrdsClass4.shp"
where_clause = '"CLASS" = \'4\''
# Execute Select
arcpy.Select_analysis(in_features, out_feature_class, where_clause)