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

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

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

Каждый объект Входных объектов оценивается относительно объектов параметра Вспомогательные объекты выборки. Если подходит параметр Отношение, будет выбран входной объект.

Подробнее о Выборе по расположению, включая примеры изображения взаимосвязей

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

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

  • Система координат, в которой оцениваемое пространственное отношение может влиять на результат. Объекты, пересекающиеся в одной системе координат, могут пересекаться или не пересекаться в другой системе.

    • Данный инструмент оценивает пространственные отношения в системе координат источника данных Входных объектов. Выберите для параметра среды Выходная система координат значение Текущая карта [Слои], чтобы использовалась та же система координат, что и при текущем отображении.

  • Этот инструмент может использоваться для выбора пространственных объектов на основе их пространственных отношений к другим объектам в том же слое. Примеры содержатся в разделе Выбрать на основе пространственного отношения в слое.

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

  • Более подробно об использовании трехмерных пространственных отношений Пересечение 3D и В пределах расстояния 3D (INTERSECT_3D и WITHIN_A_DISTANCE_3D в Python) см. в разделе Выбор трехмерных отношений по расположению.

  • Пространственное отношение Пересечение (СУБД) (INTERSECT_DBMS в Python) обеспечивает лучшую производительность, чем отношение Пересечение (INTERSECT в Python) при использовании данных многопользовательских баз геоданных; но оно поддерживается только при соблюдении некоторых условий. Если все условия соблюдены, пространственная операция будет выполнена в СУБД многопользовательской базы геоданных, а не в клиентском приложении. При использовании этого пространственного отношения необходимо учитывать следующее:

    • Чтобы операция была запущена в СУБД, должны быть соблюдены следующие требования:
      • Значения параметров Входные объекты и Выбор объектов относятся к одной и той же рабочей области многопользовательской базы геоданных, и должны иметь одинаковую пространственную привязку и тип хранения геометрии.
      • Используемой СУБД является IBM Db2, Oracle, PostgreSQL, SAP HANA или Microsoft SQL Server.
      • Поддерживаемые типы хранения геометрии для этого параметра: ST_GEOMETRY (Db2, Oracle, PostgreSQL и SAP HANA), PostGIS (PostgreSQL), SDO_GEOMETRY (Oracle), и MSSQLGeometry и MSSQLGeography (SQL Server). См. раздел Управление базой геоданных для получения информации об установке и настройке СУБД, а также информации о настройке выбранного вами типа хранения геометрии, чтобы он был доступен для использования.
      • Если вы работаете с ST_GEOMETRY Oracle, вы должны настроить внешний протокол Oracle для доступа к ST_Geometry. Более подробную информацию см. в разделе Настройка extproc для доступа к ST_Geometry в Oracle.
      • Параметр Расстояние поиска не задан.
      • Параметр Тип выборки установлен на Новую выборку.
      • Существующая выборка перед запуском инструмента сделана с использованием определяющего запроса в слое а не выбранным поднабором.
    • Пространственная операция выполняется без применения допуска x,y в процессе обработки. Использование допуска x,y не поддерживается в СУБД. Вследствие этого результат выборки может немного отличаться от результата операции в клиентском приложении, где используется допуск x,y. См. Классы пространственных объектов. Основные понятия для дополнительной информации о том, как работает допуск x,y при выполнении операции на стороне клиента.
    • Поддерживаются многопользовательские базы геоданных в Db2, Oracle, PostgreSQL, SAP HANA и SQL Server. Для каждой имеется собственный тип хранения геометрии, поддерживающий эти отношения. См. документацию СУБД для информации о типах хранения геометрии. Возможны ограничения хранения, которые будут влиять на производительность и масштабируемость выполняемых пространственных операций.

Параметры

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

Объекты, оценка которых будет производиться на основе значений параметра Вспомогательные объекты выборки. К этим объектам будет применяться выборка.

Feature Layer; Raster Layer; Mosaic Layer
Отношение
(Дополнительный)

Указывает оцениваемое пространственное отношение.

  • ПересечениеОбъекты во входном слое будут выбраны, если они пересекаются со вспомогательным объектом выборки. Используется по умолчанию.
  • Пересечение 3DОбъекты во входном слое будут выбраны, если они пересекаются со вспомогательным объектом выборки в трехмерном пространстве (x, y и z).
  • Пересечение (СУБД)Объекты во входном слое будут выбраны, если они пересекаются со вспомогательным объектом выборки.Эта опция применяется только для многопользовательских баз геоданных. Выборка будет выполнена в СУБД многопользовательской базы геоданных, а не в клиентском приложении, если соблюдены все требования (дополнительную информацию см. в советах).Эта опция может повысить производительность, в сравнении с выполнением выборки на стороне клиента.
  • В пределах расстоянияОбъекты во входном слое будут выбраны, если они находятся в пределах указанного расстояния (используется Евклидово расстояние) от выбирающего объекта. Используйте параметр Расстояние поиска для указания расстояния.
  • В пределах геодезического расстоянияОбъекты во входном слое будут выбраны, если они находятся в пределах указанного расстояния от вспомогательного объекта выборки. Расстояние между объектами будет вычислено геодезически по формуле, которая учитывает кривизну поверхности Земли и корректно выполняет обработку данных, расположенных вокруг линий перемены дат и в приполярных областях. Используйте параметр Расстояние поиска для указания расстояния.
  • В пределах расстояния 3DОбъекты во входном слое будут выбраны, если они находятся в пределах указанного расстояния от вспомогательного объекта выборки в трехмерном пространстве. Используйте параметр Расстояние поиска для указания расстояния.
  • СодержатОбъекты входного слоя будут выбраны, если они содержат вспомогательные объекты выборки.
  • Полностью содержитОбъекты входного слоя будут выбраны, если они полностью содержат выбранный объект.
  • Содержит по КлементиниЭто пространственное отношение дает те же результаты, что и Cодержит, за исключением ситуаций, когда вспомогательный объект выборки находится целиком на границе входного объекта (ни одна часть не находится внутри или за пределами); в этом случае объект не будет выбираться.Клементини определяет границу полигона, как линию, разделяющую внешнюю и внутреннюю области полигона, границу линии – как её конечную точку, а граница точки всегда является пустой.
  • ВнутриОбъекты входного слоя будут выбраны, если они находятся внутри вспомогательного объекта выборки.
  • Полностью в пределахОбъекты входного слоя будут выбраны, если они находятся полностью, то есть содержатся внутри вспомогательного объекта выборки.
  • Внутри по КлементиРезультат будет идентичен В пределах. Исключение: если объект входного слоя полностью находится на границе объекта вспомогательного слоя выборки, объект не будет выбран.Клементини определяет границу полигона, как линию, разделяющую внешнюю и внутреннюю области полигона, границу линии – как её конечную точку, а граница точки всегда является пустой.
  • ИдентичныОбъекты входного слоя будут выбраны, если они идентичны (по геометрии) вспомогательному объекту выборки.
  • Касаются границыОбъекты во входном слое будут выбраны, если их границы соприкасаются со вспомогательным объектом выборки. Если входные объекты являются линиями или полигонами, граница входного объекта может только касаться границы выделенного объекта, и ни одна часть входного объекта не может пересекать границу выделенного.
  • Имеют общий линейный сегмент сОбъекты во входном слое будут выбраны, если они имеют общий линейный сегмент со вспомогательным объектом выборки. Входные и вспомогательные объекты выборки должны быть линейными или полигональными.
  • Пересекается границейОбъекты во входном слое будут выбраны, если они пересекаются внешней линией вспомогательного объекта выборки. Входные и выбираемые объекты должны быть линиями или полигонами. Если полигоны используются для входных данных или выбранных слоев, будет использоваться граница (линия) полигона. Будут выбраны линии, которые пересекаются в точке, а не те, которые образуют общий линейный сегмент.
  • Имеют центр внутриОбъекты во входном слое будут выбраны, если их центр попадает в пределы вспомогательного объекта выборки. Центр объекта вычисляется следующим образом: для полигонального и мультиточечного объекта используется его геометрический центроид, а для линии используется ее геометрическая середина.
String
Вспомогательные объекты выборки
(Дополнительный)

Объекты во Входных объектах будут выбираться на основе их отношения к пространственным объектам из этого слоя или класса пространственных объектов.

Feature Layer
Расстояние поиска
(Дополнительный)

Расстояние, в пределах которого будет проводиться поиск. Этот параметр действителен, только если для параметра Отношение установлено одно из следующих значений: В пределах расстояния, В пределах геодезического расстояния, В пределах расстояния 3D, Пересекает, Пересекает в 3D, Имеют центр внутри или Содержит.

Если выбран параметр В пределах геодезического расстояния, следует использовать линейные единицы измерения, например, километры или мили.

Linear Unit
Тип выборки
(Дополнительный)

Определяет, как выборка будет применяться к входным данным и как она будет комбинироваться с существующей выборкой. Этот инструмент не включает в себя опцию очистки существующей выборки; в этом случае используйте опцию Очистить текущую выборку в инструменте Выбрать в слое по атрибуту.

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

Определяет, будет ли использоваться выражение пространственного отношения или противоположное ему выражение. Например, этот параметр может использоваться для быстрого получения списка объектов, которые не пересекают либо не находятся в пределах данного расстояния от объектов другого набора данных.

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

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

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

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

Feature Layer; Mosaic Layer
Имя выходного слоя

Имена обновленных входных слоев

Feature Layer; Mosaic Layer
Количество

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

Long

arcpy.management.SelectLayerByLocation(in_layer, {overlap_type}, {select_features}, {search_distance}, {selection_type}, {invert_spatial_relationship})
ИмяОписаниеТип данных
in_layer
[in_layer,...]

Объекты, оценка которых будет производиться на основе значений параметра select_features. К этим объектам будет применяться выборка.

Feature Layer; Raster Layer; Mosaic Layer
overlap_type
(Дополнительный)

Указывает оцениваемое пространственное отношение.

  • INTERSECTОбъекты во входном слое будут выбраны, если они пересекаются со вспомогательным объектом выборки. Используется по умолчанию.
  • INTERSECT_3DОбъекты во входном слое будут выбраны, если они пересекаются со вспомогательным объектом выборки в трехмерном пространстве (x, y и z).
  • INTERSECT_DBMSОбъекты во входном слое будут выбраны, если они пересекаются со вспомогательным объектом выборки.Эта опция применяется только для многопользовательских баз геоданных. Выборка будет выполнена в СУБД многопользовательской базы геоданных, а не в клиентском приложении, если соблюдены все требования (см. советы по использованию инструмента).Эта опция может повысить производительность, в сравнении с выполнением выборки на стороне клиента.
  • WITHIN_A_DISTANCEОбъекты во входном слое будут выбраны, если они находятся в пределах указанного расстояния (используется Евклидово расстояние) от выбирающего объекта. Используйте параметр search_distance для указания расстояния.
  • WITHIN_A_DISTANCE_3DОбъекты во входном слое будут выбраны, если они находятся в пределах указанного расстояния от вспомогательного объекта выборки в трехмерном пространстве. Используйте параметр search_distance для указания расстояния.
  • WITHIN_A_DISTANCE_GEODESICОбъекты во входном слое будут выбраны, если они находятся в пределах указанного расстояния от вспомогательного объекта выборки. Расстояние между объектами будет вычислено геодезически по формуле, которая учитывает кривизну поверхности Земли и корректно выполняет обработку данных, расположенных вокруг линий перемены дат и в приполярных областях. Используйте параметр search_distance для указания расстояния.
  • CONTAINSОбъекты входного слоя будут выбраны, если они содержат вспомогательные объекты выборки.
  • COMPLETELY_CONTAINSОбъекты входного слоя будут выбраны, если они полностью содержат выбранный объект.
  • CONTAINS_CLEMENTINIЭто пространственное отношение дает те же результаты, что и CONTAINS, за исключением ситуаций, когда вспомогательный объект выборки находится целиком на границе входного объекта (ни одна часть не находится внутри или за пределами); в этом случае объект не будет выбираться.Клементини определяет границу полигона, как линию, разделяющую внешнюю и внутреннюю области полигона, границу линии – как её конечную точку, а граница точки всегда является пустой.
  • WITHINОбъекты входного слоя будут выбраны, если они находятся внутри вспомогательного объекта выборки.
  • COMPLETELY_WITHINОбъекты входного слоя будут выбраны, если они находятся полностью, то есть содержатся внутри вспомогательного объекта выборки.
  • WITHIN_CLEMENTINIРезультат будет идентичен WITHIN за одним исключением: если объект входного слоя полностью находится на границе объекта вспомогательного слоя выборки, объект не будет выбран.Клементини определяет границу полигона, как линию, разделяющую внешнюю и внутреннюю области полигона, границу линии – как её конечную точку, а граница точки всегда является пустой.
  • ARE_IDENTICAL_TOОбъекты входного слоя будут выбраны, если они идентичны (по геометрии) вспомогательному объекту выборки.
  • BOUNDARY_TOUCHESОбъекты во входном слое будут выбраны, если их границы соприкасаются со вспомогательным объектом выборки. Если входные объекты являются линиями или полигонами, граница входного объекта может только касаться границы выделенного объекта, и ни одна часть входного объекта не может пересекать границу выделенного.
  • SHARE_A_LINE_SEGMENT_WITHОбъекты во входном слое будут выбраны, если они имеют общий линейный сегмент со вспомогательным объектом выборки. Входные и вспомогательные объекты выборки должны быть линейными или полигональными.
  • CROSSED_BY_THE_OUTLINE_OFОбъекты во входном слое будут выбраны, если они пересекаются внешней линией вспомогательного объекта выборки. Входные и выбираемые объекты должны быть линиями или полигонами. Если полигоны используются для входных данных или выбранных слоев, будет использоваться граница (линия) полигона. Будут выбраны линии, которые пересекаются в точке, а не те, которые образуют общий линейный сегмент.
  • HAVE_THEIR_CENTER_INОбъекты во входном слое будут выбраны, если их центр попадает в пределы вспомогательного объекта выборки. Центр объекта вычисляется следующим образом: для полигонального и мультиточечного объекта используется его геометрический центроид, а для линии используется ее геометрическая середина.
String
select_features
(Дополнительный)

Объекты во Входных объектах будут выбираться на основе их отношения к пространственным объектам из этого слоя или класса пространственных объектов.

Feature Layer
search_distance
(Дополнительный)

Расстояние, в пределах которого будет проводиться поиск. Этот параметр действителен только в случае, если значением параметра overlap_type является WITHIN_A_DISTANCE, WITHIN_A_DISTANCE_GEODESIC, WITHIN_A_DISTANCE_3D, INTERSECT, INTERSECT_3D, HAVE_THEIR_CENTER_IN или CONTAINS.

Если используется опция WITHIN_A_DISTANCE_GEODESIC, необходимо выбирать линейные единицы измерения, например, километры или мили.

Linear Unit
selection_type
(Дополнительный)

Определяет, как выборка будет применяться к входным данным и как она будет комбинироваться с существующей выборкой. Этот инструмент не включает в себя опцию очистки существующей выборки; в этом случае используйте опцию CLEAR_SELECTION в инструменте Выбрать в слое по атрибуту.

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

Определяет, будет ли использоваться выражение пространственного отношения или противоположное ему выражение. Например, этот параметр может использоваться для быстрого получения списка объектов, которые не пересекают либо не находятся в пределах данного расстояния от объектов другого набора данных.

  • NOT_INVERTБудет использоваться результат запроса. Используется по умолчанию.
  • INVERTРезультат запроса будет инвертирован. Если используется параметр selection_type, до того, как выборка будет объединена с существующими выборками, произойдет ее инвертирование.
Boolean

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

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

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

Feature Layer; Mosaic Layer
out_layers_or_views

Имена обновленных входных слоев

Feature Layer; Mosaic Layer
count

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

Long

Пример кода

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

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

import arcpy
arcpy.SelectLayerByLocation_management("parcel_lyr", "have_their_center_in", 
                                       "c:/kamsack.gdb/city_limits")
SelectLayerByLocation, пример 2 (автономный скрипт)

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

# 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 that overlap the chihuahua polygon
chihuahua_cities = arcpy.SelectLayerByLocation_management('cities', 'INTERSECT', 
                                                          'chihuahua')

# From the previous selection, select a subset of cities that have 
# population > 10,000
arcpy.SelectLayerByAttribute_management(chihuahua_cities, 
                                        'SUBSET_SELECTION', 
                                        '"population" > 10000')

# If features matched criteria, write them to a new feature class
matchcount = int(arcpy.GetCount_management(chihuahua_cities)[0]) 

if matchcount == 0:
    print('no features matched spatial and attribute criteria')
else:
    arcpy.CopyFeatures_management(chihuahua_cities, 'chihuahua_10000plus')
    print('{0} cities that matched criteria written to {0}'.format(
        matchcount, chihuahua_10000plus))
SelectLayerByLocation, пример 3 (автономный скрипт)

Следующий автономный скрипт показывает различные варианты использования опций WITHIN_A_DISTANCE и WITHIN_A_DISTANCE_GEODESIC параметра overlap_type с параметром search_distance.

# Description: Select features within a distance

# Import arcpy and set path to data
import arcpy

arcpy.env.workspace = r"c:\data\mexico.gdb"

arcpy.SelectLayerByLocation_management('cities', 'WITHIN_A_DISTANCE', 
                                       'chihuahua', '1.5 Miles')
arcpy.SelectLayerByLocation_management('cities', 'WITHIN_A_DISTANCE_GEODESIC', 
                                       'chihuahua', '200 Kilometers')

# When using WITHIN_A_DISTANCE, if distance units are not specified, the 
# distance value is assumed to be in the units of the input dataset's coordinate 
# system
arcpy.SelectLayerByLocation_management('cities', 'WITHIN_A_DISTANCE', 
                                       'chihuahua', '200')

# When using WITHIN_A_DISTANCE_GEODESIC, if distance units are not specified, 
# the distance value is assumed to be in meters
arcpy.SelectLayerByLocation_management('cities', 'WITHIN_A_DISTANCE_GEODESIC', 
                                       'chihuahua', '200')

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

  • Basic: Да
  • Standard: Да
  • Advanced: Да

Связанные разделы