Выбрать в слое по расположению (Select Layer By Location) (Управление данными)

Уровень лицензии:BasicStandardAdvanced

Резюме

Выбирает объекты в слое на основе пространственных отношений с объектами в другом слое.

Каждый объект во Входном векторном слое (Input Feature Layer) сравнивается с объектами в слое Выбирающих объектов (Selecting Features) или классом объектов; если входной объект соответствует значению в параметре Отношения (Relationship), он выбирается.

Графические примеры отношений

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

Синтаксис

SelectLayerByLocation_management (in_layer, {overlap_type}, {select_features}, {search_distance}, {selection_type})
ПараметрОбъяснениеТип данных
in_layer

Слой, содержащий объекты, которые будут оцениваться в сравнении с выбирающими объектами. К этому слою будет применяться выборка. Входными данными может быть слой в таблице содержания ArcMap или слой, созданный в ArcCatalog или в скриптах с помощью инструмента Создать векторный слой (Make Feature Layer). Входными данными не может быть путь к классу пространственных объектов на диске.

Feature Layer; Mosaic Layer; Raster Catalog Layer
overlap_type
(дополнительно)

Оцениваемое пространственное отношение.

  • INTERSECT (пересекает)Объекты во входном слое будут выбраны, если они пересекаются с выбирающим объектом. Это значение используется по умолчанию.
  • INTERSECT_3D (пересечь 3D)Объекты во входном слое будут выбраны, если они пересекаются с выбирающим объектом в трехмерном пространстве (x, y и z).
  • WITHIN_A_DISTANCE (в пределах расстояния)Объекты во входном слое будут выбраны, если они находятся в пределах указанного расстояния от выбирающего объекта. Задайте расстояние для параметра Расстояние поиска (Search Distance).
  • WITHIN_A_DISTANCE_3D (в пределах расстояния 3D)Объекты во входном слое будут выбраны, если они находятся в пределах указанного расстояния от выбирающего объекта в трехмерном пространстве. Задайте расстояние для параметра Расстояние поиска (Search Distance).
  • CONTAINS (содержит)Объекты во входном слое будут выбраны, если они содержат выбирающий объект. Входные объекты должны быть полигонами.
  • COMPLETELY_CONTAINS (полностью содержит)Объекты во входном слое будут выбраны, если они полностью содержат выбирающий объект. Входные объекты должны быть полигонами.
  • CONTAINS_CLEMENTINI (содержит по Клементи)Это пространственное отношение дает те же результаты, что и COMPLETELY_CONTAINS, но с одним исключением. Если выбирающий объект полностью находится на границе входного объекта (ни одна из его частей не находится внутри или вне ее), объект не будет выбран. Опция CLEMENTINI предполагает, что граница полигона - это линия, отделяющая внутреннюю область полигона от внешней, граница линии - это ее конечные точки, а граница точки всегда является пустой.
  • WITHINОбъекты во входном слое будут выбраны, если они находятся в пределах выбирающего объекта. Выбирающие объекты должны быть полигонами.
  • COMPLETELY_WITHIN (полностью внутри)Объекты во входном слое будут выбраны, если они находятся полностью внутри или содержатся в выбирающем объекте. Выбирающие объекты должны быть полигонами.
  • WITHIN_CLEMENTINI (внутри по Клементи)Результат будет идентичен WITHIN. Исключение: если объект входного слоя полностью находится на границе объекта выбирающего слоя, объект не будет выбран. Опция CLEMENTINI предполагает, что граница полигона - это линия, отделяющая внутреннюю область полигона от внешней, граница линии - это ее конечные точки, а граница точки всегда является пустой.
  • ARE_IDENTICAL_TO (идентичны)Объекты во входном слое будут выбраны, если они идентичны (в геометрии) выбирающему объекту.
  • BOUNDARY_TOUCHESОбъекты во входном слое будут выбраны, если их границы соприкасаются с выбирающим объектом. Входные и выбираемые объекты должны быть линиями или полигонами. Дополнительно, пространственный объект в входном слое должен быть либо полностью внутри или вне полигона от выбранного пространственного объекта.
  • SHARE_A_LINE_SEGMENT_WITHОбъекты во входном слое будут выбраны, если они имеют общий линейный сегмент с выбирающим объектом. Входные и выбираемые объекты должны быть линиями или полигонами.
  • CROSSED_BY_THE_OUTLINE_OFОбъекты во входном слое будут выбраны, если они пересекаются внешней линией выбирающего объекта. Входные и выбираемые объекты должны быть линиями или полигонами. Если полигоны используются для входных данных или выбранных слоев, будет использоваться граница (линия) полигона. Будут выбраны линии, которые пересекаются в точке, а не те, которые образуют общий линейный сегмент.
  • HAVE_THEIR_CENTER_IN (имеют центр внутри)Объекты во входном слое будут выбраны, если их центр попадает в пределы выбирающего объекта. Центр объекта вычисляется следующим образом: для полигонального и мультиточечного объекта используется его геометрический центроид, а для линии используется ее геометрическая середина.
  • CONTAINED_BYВыдает такой же результат, что и WITHIN. CONTAINED_BY поддерживает обратную совместимость с моделями и скриптами, встроенными в версии, предшествовавшие ArcGIS 9.3.
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).

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

Пример кода

Пример 1. SelectLayerByLocation (окно Python)

Пример скрипта 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")
Пример 2. SelectLayerByLocation (автономный скрипт)

Пример скрипта 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))

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

Связанные темы

Информация о лицензировании

ArcGIS for Desktop Basic: Да
ArcGIS for Desktop Standard: Да
ArcGIS for Desktop Advanced: Да
9/10/2013