Построить таблицу соседних объектов (Generate Near Table) (Анализ)
Краткая информация
Вычисляет расстояние и другую информацию о близости объектов в одном или нескольких классах пространственных объектов или слоях. В отличие от инструмента Ближайший объект (Near), обновляющего входные данные, инструмент Построить таблицу соседних объектов (Generate Near Table) записывает результаты в новую автономную таблицу и позволяет находить несколько ближайших объектов.
Более подробно о вычислении близости с помощью инструментов геообработки
Рисунок
Использование
Выходная таблица будет иметь следующие поля:
Имя поля
Описание
IN_FID ObjectID входного объекта.
NEAR_FID ObjectID ближайшего объекта.
NEAR_DIST Расстояние от входного до ближайшего объекта. Если значением параметра Метод (Method) является GEODESIC, и входные объекты заданы в географической системе координат, значения в этом поле указываются в линейных единицах измерения системы координат входных объектов или метрах.
NEAR_FC Путь к классу объектов, содержащему ближайший объект. Это поле добавляется в выходную таблицу только в том случае, если указано несколько Ближайших объектов (Near Features).
NEAR_RANK Целочисленное значение, ранжирующее все ближайшие объекты по их близости к данному входному объекту. NEAR_RANK самого близкого объекта будет 1, NEAR_RANK следующего по близости объекта будет 2 и т.д.
Если отмечен параметр Местоположение (Location) (параметр location в скрипте имеет значение LOCATION), в выходную таблицу будут добавлены следующие поля,
Имя поля
Описание
FROM_X X-координата точки входного объекта, наиболее близкой к ближайшему объекту.
FROM_Y Y-координата точки входного объекта, наиболее близкой к ближайшему объекту.
NEAR_X X-координата точки ближайшего объекта, наиболее близкой к входному объекту.
NEAR_Y Y-координата точки ближайшего объекта, наиболее близкой к входному объекту.
Если отмечен параметр Угол (Angle) (параметр angle в скрипте имеет значение ANGLE), в выходную таблицу будет добавлено следующее поле.
Поле
Описание
NEAR_ANGLE Угол, под которым направлена в точке с координатами FROM_X и FROM_Y линия, соединяющая входные объекты с ближайшим объектом.
Если входной и ближайший объекты пересекаются, в выходную таблицу записываются следующие значения:
- NEAR_ANGLE и NEAR_DIST будут иметь значение 0.0.
- FROM_X и FROM_Y будут совпадать с NEAR_X и NEAR_Y и будут представлять точку в области пересечения двух объектов.
Значения в поле NEAR_DIST указываются в линейных единицах измерения системы координат входных объектов. Если входные объекты заданы в географической системе координат, и значением параметра Метод (Method) является GEODESIC, единицами NEAR_DIST будут метры.
Выходную таблицу можно присоединить обратно к входным объектам или к ближайшим объектам с помощью полей IN_FID и NEAR_FID, соответственно.
Если задан Радиус поиска (Search Radius), но ближайшие объекты не найдены, выходная таблица не имеет записей.
Если Радиус поиска (Search Radius) не задан, инструмент включает в вычисления все ближайшие объекты.
Если Радиус поиска (Search Radius) не задан, и при этом опция Найти только ближайшие объекты (Find only closest features) не отмечена (значением closest в скрипте является ALL), а параметр Максимальное число ближайших объектов (Maximum number of closest) имеет значение по умолчанию (0 или пустое), выходная таблица будет содержать расстояния между всеми входными объектами и всеми ближайшими объектами. Их вычисление может занять довольно много времени, и выходная таблица может быть весьма большой. Так, если у вас есть 1000 входных объектов и 1000 ближайших объектов, в выходной таблице будет миллион записей.
-
Входные и ближайшие объекты могут быть представлены одним и тем же классом объектов или слоем. В этом случае каждый входной объект исключается из ближайших к нему объектов, поскольку в противном случае все объекты оказались бы ближайшими к самим себе.
Когда значением параметра Метод (Method) является PLANAR, входные объекты должны находиться в проекции, позволяющей корректно измерять расстояния, такой как равнопромежуточные проекции.
Более подробно о географических системах координат и системах координат проекции
Для визуализации местоположений FROM_X, FROM_Y, NEAR_X и NEAR_Y выходную таблицу можно использовать в качестве входной для инструментов Создать слой событий XY (Make XY Event Layer) или XY в линию (XY To Line).
Синтаксис
Параметр | Объяснение | Тип данных |
in_features |
Входные объекты, которые могут быть точечного, полилинейного, полигонального или мультиточечного типа. | Feature Layer |
near_features [near_features,...] |
Один или несколько слоев или классов пространственных объектов, содержащих потенциальные ближайшие объекты. Ближайшие объекты могут быть точками, полилиниями, полигонами или мультиточками. Если задано несколько слоев или классов объектов, во входную таблицу добавляется поле NEAR_FC, в котором для каждого ближайшего объекта будет указан путь к его исходному классу объектов. Входные и ближайшие объекты могут быть представлены одним и тем же классом объектов или слоем. | Feature Layer |
out_table |
Выходная таблица, содержащая результаты анализа. | Table |
search_radius (дополнительно) |
Радиус поиска ближайших объектов. Если значение не указано, в вычисления включаются все ближайшие объекты. Если расстояние введено, но единица измерения не задана или неизвестна (Unknown), используются единицы системы координат входных объектов. Если значением параметра Метод (Method) является GEODESIC, должна использоваться линейная единица измерения, такая как километры или мили. | Linear unit |
location (дополнительно) |
Определяет, будут ли записаны в поля FROM_X, FROM_Y, NEAR_X и NEAR_Y координаты x и y точки входного объекта и ближайшей точки ближайшего объекта.
| Boolean |
angle (дополнительно) | Определяет, будут ли вычислены и записаны в поле NEAR_ANGLE выходной таблицы угловые направления к ближайшим объектам. Угловое направление к ближайшему объекту – это направление линии, соединяющей входной и ближайший объекты по кратчайшему расстоянию. Если значением параметра method является PLANAR, угловое направление может принимать значения в диапазоне от -180° до 180°, где 0° – восток, 90° – север, 180° (или -180°) – запад и -90° – юг. Если используется метод GEODESIC, угловое направление может принимать значения в диапазоне от -180° до 180°, где 0° – север, 90° – восток, 180° (или -180°) – юг и -90° – запад.
| Boolean |
closest (дополнительно) |
Определяет, будет ли инструмент возвращать только самые близкие объекты или несколько объектов.
| Boolean |
closest_count (дополнительно) |
Ограничивает число ближайших объектов, указываемых для каждого входного объекта. Этот параметр игнорируется, если значением параметра closest является CLOSEST. | Long |
method (дополнительно) | Определяет, будет ли инструмент использовать кратчайший путь на сфероиде (geodesic) или на плоской земной поверхности (planar). Настоятельно рекомендуется использовать метод GEODESIC, если данные хранятся в координатной системе, не подходящей для измерения расстояний (такой как Web Mercator и все географические системы координат), или если набор данных охватывает большую географическую область.
| String |
Пример кода
Пример использования функции Построить таблицу соседних объектов (GenerateNearTable) в окне Python.
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
# find crime locations within the search radius
arcpy.GenerateNearTable_analysis(in_features, near_features, out_table, search_radius,
location, angle, closest, closest_count)