Выбрать в слое по атрибуту (Управление данными)
Резюме
Добавляет, обновляет или удаляет выборку на слое или представлении таблицы на основе атрибутивного запроса.
Использование
-
Входными данными должен быть векторный слой или представление таблицы. Входными данными не могут быть класс пространственных объектов или таблица.
-
Этот инструмент работает со слоями или представлениями таблицы в таблице содержания ArcMap, а также со слоями или представлениями таблицы, созданными в скриптах с помощью инструментов Создать векторный слой (Make Feature Layer) или Создать представление таблицы (Make Table View).
-
Если задан параметр Экстент (Extent environment), или в параметре Входной слой или Представление таблицы (Input Layer or Table View) имеется определяющий запрос, будут выбраны только строки или объекты, находящиеся в пределах экстента или соответствующие определяющему запросу.
-
Инструмент Посчитать строки (Get Count) может использоваться для определения количества выбранных пространственных объектов или строк. Это может быть особенно полезно в скрипте или модели для определения, нужна ли последующая обработка.
Синтаксис
Параметр | Объяснение | Тип данных |
in_layer_or_view |
Слой пространственных объектов или представление таблицы, к которому будет применена выборка. Входными данными может быть слой или представление таблицы в таблице содержания ArcMap или слой или представление таблицы, созданные в ArcCatalog или в скриптах с помощью инструментов Создать векторный слой (Make Feature Layer) или Создать представление таблицы (Make Table View). | Table View; Raster Layer; Mosaic Layer |
selection_type (дополнительно) |
Определяет, как будет применятся выборка и что произойдет, если выборка уже существует.
| String |
where_clause (дополнительно) |
SQL-выражение, использованное для выбора поднабора записей. Синтаксис выражения различается в зависимости от формата данных. Например, если вы строите запрос к файловой или ArcSDE базам геоданных, шейп-файлам, покрытиям, dBASE или таблицам INFO, заключите имена полей в двойные кавычки: "ИМЯ_ПОЛЯ" Если вы запрашиваете персональную базу геоданных, заключите поля в квадратные скобки: [ИМЯ_ПОЛЯ] В Python строковые значения заключаются в соответствующие одинарные или двойные кавычки. Чтобы создать строку с кавычками (что часто требуется при написании условия WHERE в выражениях SQL), можно использовать перед кавычками escape-символ (символ обратной косой черты) или заключить всю строку в три пары кавычек. Например, если требуется написать в условии WHERE "CITY_NAME" = 'Чикаго', можно заключить всю строку в двойные кавычки и добавить escape-символ перед внутренними двойными кавычками: " \"CITY_NAME\" = 'Чикаго' ", Или можно заключить всю строку в одинарные кавычки и добавить escape-символ перед внутренними одинарными кавычками: ' "CITY_NAME" = \'Чикаго\' ' Или можно заключить всю строку в три пары кавычек и не добавлять escape-символ: """ "CITY_NAME" = 'Чикаго' """, Более подробно о синтаксисе SQL и о том, как он различается между источниками данных, смотрите разделы справки: Литература по SQL для выражений запросов, используемых в ArcGIS. | SQL Expression |
Пример кода
Пример скрипта Python для выполнения функции Выбрать в слое по атрибуту (Select Layer By Attribute) с запуском из окна Python в ArcGIS.
import arcpy
arcpy.MakeFeatureLayer_management ("C:/data/data.mdb/states", "stateslyr")
arcpy.SelectLayerByAttribute_management ("stateslyr", "NEW_SELECTION", " [NAME] = 'California' ")
Пример скрипта Python для выполнения функции Выбрать в слое по атрибуту (Select Layer By Attribute) в рабочем потоке, чтобы извлекать пространственные объекты в новый класс пространственных объектов на основе местоположения и атрибутивного запроса.
# 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")