Краткая информация
Выбирает объекты в слое на основе пространственных отношений с объектами в другом слое.
Каждый объект во Входном векторном слое (Input Feature Layer) сравнивается с объектами в слое Вспомогательные объекты выборки (Selecting Features) или классом объектов; если входной объект соответствует значению в параметре Отношения (Relationship), он выбирается.
Использование
Входными данными должен быть векторный слой; это не может быть класс пространственных объектов.
Этот инструмент применяется для слоев ArcMap, ArcGlobe или ArcScene, а также для слоев, созданных в моделях и скриптах с помощью инструмента Создать векторный слой (Make Feature Layer).
-
Система координат, в которой оцениваемое пространственное отношение может влиять на результат. Объекты, пересекающиеся в одной системе координат, могут пересекаться или не пересекаться в другой системе.
- Данный инструмент оценивает пространственные отношения в системе координат источника данных Входного векторного слоя (Input Feature Layer) (класса пространственных объектов на диске). Задайте среду выходной системы координат (output coordinate system environment) для оценки пространственных отношений в другой системе координат.
Этот инструмент может использоваться для выбора пространственных объектов на основе их пространственных отношений к другим объектам в том же слое. Некоторые примеры см. в разделе Выбрать в слое по расположению (Select by location within a layer).
Инструмент Посчитать строки (Get Count) может использоваться, чтобы найти пространственные объекты, выбранные инструментом Выбрать в слое по расположению (Select Layer By Location). Он может быть полезен, если надо определить, подошли ли объекты под необходимое пространственное отношение, перед продолжением анализа в рамках автоматизированного рабочего процесса (то есть скрипта или модели).
Подробнее об использовании трехмерных пространственных отношений INTERSECT_3D и WITHIN_A_DISTANCE_3D, см. раздел Отношения Выборка по расположению 3D (Select by location 3D relationships).
Синтаксис
SelectLayerByLocation_management (in_layer, {overlap_type}, {select_features}, {search_distance}, {selection_type}, {invert_spatial_relationship})
Параметр | Объяснение | Тип данных |
in_layer | Слой, содержащий объекты, которые будут оцениваться в сравнении со вспомогательными объектами выборки (select_features). К этому слою будет применяться выборка. Входными данными не может быть путь к классу пространственных объектов на диске. | Feature Layer; Mosaic Layer; Raster Catalog Layer |
overlap_type (дополнительно) | Оцениваемое пространственное отношение.
| String |
select_features (дополнительно) | Пространственные объекты в слое входных объектов будут выбираться на основе их отношения к пространственным объектам из этого слоя или класса пространственных объектов. | Feature Layer |
search_distance (дополнительно) | Параметр допустим, только если параметр overlap_type имеет одно из следующих значений: WITHIN_A_DISTANCE_GEODESIC, WITHIN_A_DISTANCE, WITHIN_A_DISTANCE_3D, INTERSECT, INTERSECT_3D, HAVE_THEIR_CENTER_IN, CONTAINS, или WITHIN. Если используется опция WITHIN_A_DISTANCE_GEODESIC, должна быть задана линейная единица измерения, такая как километры или мили. | Linear unit |
selection_type (дополнительно) | Определяет, как выборка будет применяться к входным данным и как она будет комбинироваться с существующей выборкой. Обратите внимание, что здесь нет опции для очистки существующей выборки. Чтобы очистить выборку, используйте опцию CLEAR_SELECTION инструмента Выбрать в слое по атрибуту (Select Layer By Attribute).
| String |
invert_spatial_relationship (дополнительно) | После того как пространственное отношение выполнено, эта опция определяет, будет ли результат использован в том виде, в котором он есть или же инвертирован. Например, эта опция может использоваться для быстрого получения списка объектов, которые не пересекают либо не находятся в пределах какого-либо расстояния от объектов другого набора данных.
| Boolean |
Пример кода
SelectLayerByLocation, пример 1 (окно Python)
Пример скрипта окна Python для использования функции SelectLayerByLocation в режиме прямого запуска.
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")
SelectLayerByLocation, пример 2 (автономный скрипт)
Пример скрипта окна Python для выполнения функции SelectLayerByLocation в рабочем процессе, чтобы извлечь пространственные объекты в новый класс пространственных объектов на основе расположения и атрибутивного запроса.
# 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')[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))