Построить таблицу соседних объектов (Generate Near Table) (Анализ)
Резюме
Определяет расстояния от каждого объекта входных пространственных объектов до одного или нескольких соседних объектов в списке ближайших пространственных объектов на заданном радиусе поиска. Результаты записываются в выходную таблицу.
Более подробно о вычислении близости с помощью инструментов геообработки
Рисунок
Использование
-
Этот инструмент ведет себя аналогично инструменту Ближайший объект (Near). Однако вместо обновления входных объектов он создает новую выходную таблицу. Кроме того, он может найти столько ближайших пространственных объектов, сколько задано параметром Максимальное число ближайших совпадений (Maximum number of closest matches).
Выходная таблица содержит по умолчанию три поля: IN_FID, NEAR_FID и NEAR_DIST. Дополнительные поля добавляются к выходным данным в зависимости от выбранных дополнительных параметров.
- IN_FID хранит идентификаторы входных объектов.
- NEAR_FID – Хранит идентификатор ближайшего объекта.
- NEAR_DIST – Хранит расстояние от входного до ближайшего объекта. Значение данного поля представляет собой значение в линейных единицах измерения системы координат входных объектов.
-
Выходную таблицу можно присоединить обратно ко входному классу объектов или классу ближайших объектов с помощью полей IN_FID или NEAR_FID.
-
И входные, и ближайшие пространственные объекты могут быть точками, мультиточками, линиями или полигонами.
-
Стандартной опцией этого инструмента является поиск расстояния от каждого входного объекта до ближайшего объекта. Выберите опцию ALL (Все), которая отключает параметр Найти только ближайшие объекты (Find only closest feature), чтобы создать таблицу, содержащую расстояние между всеми входными данными для всех ближайших объектов.
-
Значения для NEAR_FID и NEAR_DIST будут равны -1, если в пределах радиуса поиска не найдено пространственного объекта.
-
Если не задано значение Радиус поиска (Search Radius), используется достаточно большой радиус, и все ближайшие объекты могут быть включены в вычисление расстояния. Если используется радиус поиска по умолчанию (радиус не задан), выходная таблица может быть достаточно большой. Например, при вычислении расстояний из 1000 точек одного класса пространственных объектов до 1000 точек другого класса пространственных объектов, может быть создана выходная таблица, содержащая 1 миллион записей. Используйте радиус поиска, чтобы ограничить число выходных записей.
-
И Входные объекты, и Ближайшие объекты могут быть одним и тем же набором данных. В том случае, если входной и ближайший объекты - это одна запись, этот результат будет пропущен, чтобы не сообщать, что каждый объект находится на расстоянии 0 единиц от самого себя.
Входные объекты могут являться слоем, на котором вы выполняете выбор. Выбранные объекты будут использоваться и обновляться при выполнении этого инструмента. В новых полях оставшихся объектов (например, в полях NEAR_FID и NEAR_DIST) будут установлены значения -1.
Расстояния, вычисленные этим инструментом, задаются в единицах измерения, соответствующих системе координат входных объектов. Если входные данные заданы в географической системе координат и вы хотите измерять выходные расстояния в линейных единицах (а не в десятичных градусах), необходимо сначала спроецировать входные данные в систему координат проекции с помощью инструмента Проецировать (Project). Для получения наилучших результатов используйте равнопромежуточную проекцию или проекцию, соответствующую вашей изучаемой территории (например, UTM).
Синтаксис
Параметр | Объяснение | Тип данных |
in_features |
Входные объекты, которые могут быть точечного, полилинейного, полигонального или мультиточечного типа. | Feature Layer |
near_features [near_features,...] |
Значение, используемое для поиска ближайших объектов для входных объектов. Может быть один или несколько классов ближайших объектов; каждый объект может быть точечного, полилинейного, полигонального или мультиточечного типа. Если задано несколько классов ближайших объектов, во входную таблицу добавляется новое поле NEAR_FC, в котором для каждого ближайшего объекта будет указан путь к соответствующему классу ближайших объектов. | Feature Layer |
out_table |
Выходная таблица, в которой будет содержаться информация близости (например, IN_FID, NEAR_FID и NEAR_DIST) и другие атрибуты (например, местоположение (NEAR_X, NEAR_Y) и угол (NEAR_ANGLE)) ближайшего объекта и NEAR_FC, если необходимо. | Table |
search_radius (дополнительно) |
Расстояние, в пределах которого проводится поиск потенциальных ближайших объектов. В выходной класс записываются только те ближайшие объекты, которые расположены в окружности, определяемой заданным радиусом. Если значение не задано, т.е. параметр Радиус поиска (Search radius) оставлен пустым (по умолчанию), в вычислениях участвуют все ближайшие пространственные объекты. По умолчанию для радиуса поиска используются единицы измерения, определенные в системе координат входных объектов. Эти единицы можно изменить на любые другие. Однако это не скажется на единицах измерения NEAR_DIST, которые основываются на единицах измерения системы координат входных объектов. | Linear unit |
location (дополнительно) |
Определяет, будут ли координаты x и y ближайшего местоположения ближайшего объекта записаны в новые поля NEAR_X и NEAR_Y, соответственно.
| Boolean |
angle (дополнительно) |
Задает, будут ли вычислены значения углов до ближайших объектов в десятичных градусах и записаны в новое поле, NEAR_ANGLE. Угловое значение измеряется от оси x (горизонтальная ось) по направлению линии, соединяющей входной объект с ближайшим объектом в ближайшем местоположении; этот угол находится в пределах диапазона от 0 до 180 или от 0 до -180 десятичных градусов — 0 для востока, 90 для севера, 180 (-180°) для запада и -90 для юга.
| Boolean |
closest (дополнительно) |
Указывает, что будут находиться и возвращаться лишь ближайшие пространственные объекты, либо все пространственные объекты, попавшие в радиус поиска.
| Boolean |
closest_count (дополнительно) |
Находит только заданное количество ближайших объектов. Этот параметр не будет использоваться, если отмечена опция Найти только ближайшие объекты (Find only closest feature). | Long |
Пример кода
Пример использования функции Построить таблицу соседних объектов (GenerateNearTable) с запуском из окна Python в ArcGIS.
import arcpy
arcpy.env.workspace = "C:/data/input/gnt.gdb"
arcpy.GenerateNearTable_analysis("campsites", ["parks", "trails"], "better_sites")
Пример скрипта Python для использования функции Построить таблицу соседних объектов в автономном режиме.
# Name: GenerateNearTable.py
# Description: Finds 3 nearest in the near feature class from the input feature class.
# import system modules
import arcpy
# set workspace environment
arcpy.env.workspace = "C:/data/input/gnt.gdb"
# set required parameters
in_features = "campsites"
near_features = ["parks", "trails"]
out_table = "near_parks_trails"
# optional parameters
search_radius = '1500 Meters'
location = 'NO_LOCATION'
angle = 'NO_ANGLE'
closest = 'ALL'
closest_count = 3
try:
# find crime locations within the search radius
arcpy.GenerateNearTable_analysis(in_features, near_features, out_table, search_radius,
location, angle, closest, closest_count)
except:
print arcpy.GetMessages()