Выбрать в слое по атрибуту (Управление данными)

Краткая информация

Добавляет, обновляет или удаляет выборку на основе запроса к атрибутам.

Использование

  • Если входные данные представлены классом пространственных объектов или путем к набору данных, этот инструмент будет автоматически создавать и возвращать новый слой с результатом примененного инструмента.

  • Если для входных данных задан определяющий запрос, в выборке будут представлены только объекты или строки, которые отвечают параметрам этого запроса.

  • Число выбранных записей будет перечислено в истории геообработки. Щелкните Параметры > Количество. Дополнительно, инструмент Посчитать строки может использоваться для определения числа выбранных записей. В Python количество выбранных записей также можно получить из объекта Result инструмента.

  • Разделители полей, используемые в выражении SQL различаются, в зависимости от формата запрашиваемых данных. Например, в файловых базах геоданных и шейп-файлах используются двойные кавычки, а многопользовательские базы геоданных не используют разделители. Вы можете использовать функцию AddFieldDelimiters, чтобы проверить, корректно ли использованы разделители полей в выражении SQL.

  • Если выходной источник данных - векторный слой, рекомендуется, чтобы ArcGIS Server использовал стандартизированные SQL-запросы.

Параметры

ПодписьОписаниеТип данных
Входные строки

Данные, к которым будет применяться эта выборка.

Table View; Raster Layer; Mosaic Layer
Тип выборки
(Дополнительный)

Определяет, как будет применяться выборка и что произойдет, если выборка уже существует.

  • Новая выборкаРезультирующая выборка заменяет текущую. Это значение по умолчанию
  • Добавить к текущей выборкеРезультирующая выборка добавляется к текущей, если таковая существует. Если никакой выборки нет, данная опция работает так же, как и опция создания новой выборки.
  • Удалить из текущей выборкиРезультирующая выборка будет удалена из текущей выборки. Если во входном слое объекты не были выбраны, выбор данной опции не приведет ни к какому результату.
  • Выбрать поднабор из текущей выборки.Результирующая выборка будет соединена с текущей выборкой. Выбранными останутся только те записи, которые являются общими для обеих выборок.
  • Переключить текущую выборкуВыборка переключится. Все записи, которые были выбраны, удаляются из нее, а все ранее не выбранные записи становятся выбранными. Выражение игнорируется, если установлена эта опция.
  • Очистить текущую выборкуВыборка очищается или удаляется. Выражение игнорируется, если установлена эта опция.
String
Выражение
(Дополнительный)

SQL-выражение, использованное для выбора поднабора записей.

SQL Expression
Инвертировать условие Where
(Дополнительный)

Определяет, будет ли выражение использоваться как есть или будет использоваться противоположное ему выражение.

  • Не отмечено – запрос останется в исходном виде. Это значение по умолчанию
  • Отмечено – выражение запроса будет инвертировано. Если используется параметр Тип выборки, до того, как выборка будет объединена с существующими выборками, произойдет ее инвертирование.
Boolean

Производные выходные данные

ПодписьОписаниеТип данных
Обновленный слой или представление таблицы

Обновленный входной слой с применением выборки.

Table View; Raster Layer; Feature Layer
Количество

Число выбранных записей.

Long

arcpy.management.SelectLayerByAttribute(in_layer_or_view, {selection_type}, {where_clause}, {invert_where_clause})
ИмяОписаниеТип данных
in_layer_or_view

Данные, к которым будет применяться эта выборка.

Table View; Raster Layer; Mosaic Layer
selection_type
(Дополнительный)

Определяет, как будет применяться выборка и что произойдет, если выборка уже существует.

  • NEW_SELECTIONРезультирующая выборка заменяет текущую. Это значение по умолчанию
  • ADD_TO_SELECTIONРезультирующая выборка добавляется к текущей, если таковая существует. Если никакой выборки нет, данная опция работает так же, как и опция создания новой выборки.
  • REMOVE_FROM_SELECTIONРезультирующая выборка будет удалена из текущей выборки. Если во входном слое объекты не были выбраны, выбор данной опции не приведет ни к какому результату.
  • SUBSET_SELECTIONРезультирующая выборка будет соединена с текущей выборкой. Выбранными останутся только те записи, которые являются общими для обеих выборок.
  • SWITCH_SELECTIONВыборка переключится. Все записи, которые были выбраны, удаляются из нее, а все ранее не выбранные записи становятся выбранными. Параметр where_clause игнорируется, если установлена эта опция.
  • CLEAR_SELECTIONВыборка очищается или удаляется. Параметр where_clause игнорируется, если установлена эта опция.
String
where_clause
(Дополнительный)

SQL-выражение, использованное для выбора поднабора записей.

SQL Expression
invert_where_clause
(Дополнительный)

Определяет, будет ли выражение использоваться как есть или будет использоваться противоположное ему выражение.

  • NON_INVERTЗапрос останется в исходном виде. Это значение по умолчанию
  • INVERTВыражение запроса будет инвертировано. Если используется параметр selection_type, до того, как выборка будет объединена с существующими выборками, произойдет ее инвертирование.
Boolean

Производные выходные данные

ИмяОписаниеТип данных
out_layer_or_view

Обновленный входной слой с применением выборки.

Table View; Raster Layer; Feature Layer
count

Число выбранных записей.

Long

Пример кода

SelectLayerByAttribute, пример (окно Python)

В следующем скрипте окна Python показано, как используется функция SelectLayerByAttribute в режиме прямого запуска.

import arcpy
arcpy.management.SelectLayerByAttribute("states", "NEW_SELECTION", 
                                        "[NAME] = 'California'")
SelectLayerByAttribute, пример 2 (автономный скрипт)

Пример скрипта окна Python для выполнения функции SelectLayerByAttribute в рабочем процессе, чтобы извлечь пространственные объекты в новый класс пространственных объектов на основе расположения и атрибутивного запроса.

# Name: ExtractFeaturesByLocationAndAttribute.py
# Description: Extract features to a new feature class based on a spatial 
# relationship to another layer and an attribute query

# Import system modules
import arcpy

# Set the workspace
arcpy.env.workspace = 'c:/data/mexico.gdb'

# Select all cities that overlap the chihuahua polygon
chihuahua_cities = arcpy.management.SelectLayerByLocation('cities', 'INTERSECT', 
                                                          'chihuahua', 0, 
                                                          'NEW_SELECTION')

# Within selected features, further select only those cities with a 
# population > 10,000   
arcpy.management.SelectLayerByAttribute(chihuahua_cities, 'SUBSET_SELECTION', 
                                        '"population" > 10000')

# Write the selected features to a new feature class
arcpy.management.CopyFeatures(chihuahua_cities, 'chihuahua_10000plus')

Параметры среды

Этот инструмент не использует параметры среды геообработки