Выбрать в слое по расположению (Select Layer By Location) (Управление данными)
Краткая информация
Выбирает объекты в слое на основе пространственных отношений с объектами в другом слое.
Каждый объект во Входном векторном слое (Input Feature Layer) сравнивается с объектами в слое Выбирающих объектов (Selecting Features) или классом объектов; если входной объект соответствует значению в параметре Отношения (Relationship), он выбирается.
Использование
-
Входными данными должен быть векторный слой; это не может быть класс пространственных объектов.
-
Корректными входными данными для этого инструмента являются слои в таблице содержания ArcMap, ArcGlobe или ArcScene, а также слои, созданные в ArcCatalog или скриптах, в которых используется инструмент Создать векторный слой (Make Feature Layer).
-
Система координат, в которой оцениваемое пространственное отношение может влиять на результат. Объекты, пересекающиеся в одной системе координат, могут пересекаться или не пересекаться в другой системе.
- Данный инструмент оценивает пространственные отношения в системе координат источника данных Входного векторного слоя (Input Feature Layer) (класс пространственных объектов на диске). Задайте среду выходной системы координат (output coordinate system environment) для оценки пространственных отношений в другой системе координат.
- Инструменты Выбрать по расположению (Select By Location), доступные в меню "Выборка" (Selection) в ArcMap, ArcScene и ArcGlobe, выполняют оценку пространственного отношения в системе координат отображаемой области приложения (текущий фрейм данных). В целях соответствия инструмента геообработки данному поведению (и получения идентичных результатов) необходимо задать среду выходной системы координат значение "Как у отображаемой области" (Same as Display).
-
Этот инструмент может использоваться для выбора пространственных объектов на основе их пространственных отношений к другим объектам в том же слое. Некоторые примеры см. в разделе Выбрать в слое по расположению (Select by location within a layer).
-
Инструмент Посчитать строки (Get Count) может использоваться, чтобы найти пространственные объекты, выбранные инструментом Выбрать в слое по расположению (Select Layer By Location). Он может быть полезен, если надо определить, подошли ли объекты под необходимое пространственное отношение, перед продолжением анализа в рамках автоматизированного рабочего процесса (т.е., скрипта или модели).
-
Более подробно об использовании трехмерных пространственных отношений (INTERSECT_3D и WITHIN_A_DISTANCE_3D) см. в разделе Выбор трехмерных отношений по расположению (Select by location 3D relationships).
Синтаксис
Параметр | Объяснение | Тип данных |
in_layer |
Слой, содержащий объекты, которые будут оцениваться в сравнении с выбирающими объектами. К этому слою будет применяться выборка. Входными данными может быть слой в таблице содержания ArcMap или слой, созданный в ArcCatalog или в скриптах с помощью инструмента Создать векторный слой (Make Feature Layer). Входными данными не может быть путь к классу пространственных объектов на диске. | Feature Layer; Mosaic Layer; Raster Catalog Layer |
overlap_type (дополнительно) |
Оцениваемое пространственное отношение.
| String |
select_features (дополнительно) |
Пространственные объекты в Слое входных объектов будут выбираться на основе их отношения к пространственным объектам из этого слоя или класса пространственных объектов. | Feature Layer |
search_distance (дополнительно) |
Этот параметр действителен, только если для параметра Отношение (Relationship) установлено одно из следующих значений: WITHIN_A_DISTANCE, WITHIN_A_DISTANCE_3D, INTERSECT, INTERSECT_3D, HAVE_THEIR_CENTER_IN, CONTAINS или WITHIN. | Linear unit |
selection_type (дополнительно) |
Определяет, как выборка будет применяться к входным данным и как она будет комбинироваться с существующей выборкой. Обратите внимание, что здесь нет опции для очистки существующей выборки. Чтобы очистить выборку, используйте опцию CLEAR_SELECTION в инструменте Выбрать в слое по атрибуту (Select Layer By Attribute).
| String |
Пример кода
Пример скрипта Python для выполнения функции Выбрать в слое по расположению (Select Layer By Location) с запуском из окна Python в ArcGIS.
import arcpy
# First, make a layer from the feature class
arcpy.MakeFeatureLayer_management("c:/kamsack.gdb/parcel", "parcel_lyr")
# Then add a selection to the layer based on location to features in another feature class
arcpy.SelectLayerByLocation_management ("parcel_lyr", "have_their_center_in", "c:/kamsack.gdb/city_limits")
Пример скрипта Python для выполнения функции Выбрать в слое по расположению (Select Layer By Location) в рабочем потоке, чтобы извлечь пространственные объекты в новый класс пространственных объектов на основе расположения и атрибутивного запроса.
# Name: ExtactFeaturesByLocationAndAttribute.py
# Description: Extract features to a new feature class based on a Location and an attribute query
# Import arcpy and set path to data
import arcpy
arcpy.env.workspace = "c:/data/mexico.gdb"
# Make a layer and select cities which overlap the chihuahua polygon
arcpy.MakeFeatureLayer_management('cities', 'cities_lyr')
arcpy.SelectLayerByLocation_management('cities_lyr', 'intersect', 'chihuahua')
# Within the previous selection sub-select cities which have population > 10,000
arcpy.SelectLayerByAttribute_management('cities_lyr',
'SUBSET_SELECTION', '"population" > 10000')
# If features matched criteria write them to a new feature class
matchcount = int(arcpy.GetCount_management('cities_lyr').getOutput(0))
if matchcount == 0:
print('no features matched spatial and attribute criteria')
else:
arcpy.CopyFeatures_management('cities_lyr', 'chihuahua_10000plus')
print('{0} cities that matched criteria written to {0}'.format(
matchcount, chihuahua_10000plus))