Ближайший 3D (3D Analyst)
Резюме
Вычисляет трехмерное расстояние от каждого входного объекта до ближайших, находящихся в одном или нескольких классах объектов.
Использование
Поддерживаются все типы геометрии, все входные классы объектов должны иметь Z-значения.
Ближайшие объекты могут состоять из одного или нескольких классов пространственных объектов разных типов геометрии.
Ближайшие объекты и Входные объекты могут быть одним и тем же набором данных. Если Ближайший объект к входному – тот же самый объект (расстояние равно 0), этот объект игнорируется, и будет произведен поиск следующего ближайшего объекта.
Основное различие между инструментами Ближайший объект и Ближайший 3D состоит в том, что Ближайший 3D работает с 3D объектами вместо 2D. Кроме того, расстояния, сравниваемые инструментом Ближайший 3D являются 3D (по уклонам) расстояниями, а не горизонтальными. В выходных данных могут появляться дополнительные поля.
Поле угла будет создано и заполнено значениями, если включена опция Угол.
Следующие поля будут добавлены в таблицу атрибутов входных объектов:
- NEAR_FID – FID ближайшего объекта.
- NEAR_DIST – 2D расстояние (по горизонтали) между ближайшей точкой входного объекта и ближайшей точкой ближайшего найденного объекта.
- NEAR_DIST3 – 3D расстояние (по уклонам) между ближайшей точкой входного объекта и ближайшей точкой ближайшего найденного объекта.
- NEAR_DELTX – расстояние вдоль оси X между ближайшей точкой входного объекта и ближайшей точкой ближайшего найденного объекта.
- NEAR_DELTY – расстояние вдоль оси Y между ближайшей точкой входного объекта и ближайшей точкой ближайшего найденного объекта.
- NEAR_DELTZ – расстояние вдоль оси Z между ближайшей точкой входного объекта и ближайшей точкой ближайшего найденного объекта.
- NEAR_FROMX – X координата ближайшей точки входного объекта, расположенная ближе всего к ближайшей точке ближайшего найденного объекта.
- NEAR_FROMY – Y координата ближайшей точкой входного объекта, расположенного ближе всего к ближайшей точке ближайшего найденного объекта.
- NEAR_FROMZ – Z координата ближайшей точкой входного объекта, расположенного ближе всего к ближайшей точке ближайшего найденного объекта.
- NEAR_X – X координата ближайшей точки ближайшего найденного объекта, или ближайшая воображаемая точка вдоль ближайшего найденного объекта.
- NEAR_Y – Y координата ближайшей точки ближайшего найденного объекта, или ближайшая воображаемая точка вдоль ближайшего найденного объекта.
- NEAR_Z – Z координата ближайшей точки ближайшего найденного объекта, или ближайшая воображаемая точка вдоль ближайшего найденного объекта.
- NEAR_ANG_H – горизонтальный географический угол (азимут к северу), в градусах, между ближайшей точкой входного объекта и ближайшей точкой ближайшего найденного объекта. Это та же система, которая использовалась устаревшим инструментом Ближайший объект; это не азимут и не засечка. Восток соответствует 0, северо-восток – 90, север – 90, юг – -90, запад 180 или -180. Это значение не учитывает высоту.
- NEAR_ANG_V – вертикальный географический угол (угол высоты или угол подъема), в градусах, между ближайшей точкой входного объекта и ближайшей точкой ближайшего найденного объекта. Горизонтально равно 0, вертикально вверх – 90, вертикально вниз -90, 10 градусов над горизонтом – 10.
- NEAR_FC – путь к классу объектов, содержащему ближайший найденный объект. Это поле добавляется если выбрано несколько ближайших объектов.
Если эти поля уже существуют, их значения обновляются.
Значения для NEAR_FID, NEAR_DIST и NEAR_DIST3 будут равны -1, если в пределах радиуса поиска не найдено пространственного объекта.
Поля NEAR_DELTX, NEAR_DELTY и NEAR_DELTZ будут созданы и заполнены значениями, если включена опция Дельта.
Поля NEAR_FROMX, NEAR_FROMY, NEAR_FROMZ, NEAR_X, NEAR_Y и NEAR_Z будут созданы и заполнены значениями, если включена опция Положение.
Этот инструмент – это оператор, предоставляющий аналитические функции для 3D объектов. Дополнительные сведения об операциях пересечения 3D объектов и их использовании см. в разделе Работа с операциями пересечения 3D объектов.
Синтаксис
Параметр | Объяснение | Тип данных |
in_features |
Входной класс, к объектам которого будут присоединены атрибуты с информацией о ближайшем объекте. | Feature Layer |
near_features |
Один или несколько объектов, для которых будет вычисляться близость к входным объектам. Если задано несколько классов объектов, во входной класс объектов добавляется поле NEAR_FC для определения класса объектов, в котором находится ближайший объект. | Feature Layer |
search_radius (дополнительно) |
Максимальное расстояние между входными объектами и ближайшими объектами, для которых определяется расстояние и FID. Если Расстояние поиска не указано, используются все ближайшие объекты. | Linear Unit |
location (дополнительно) |
Определяет, будут ли добавлены 6 полей координат (два набора значений XYZ) к каждому входному объекту. Значения являются тремя координатами входного объекта (NEAR_FROMX, NEAR_FROMY, NEAR_FROMZ) и тремя координатами ближайшего объекта (NEAR_X, NEAR_Y, NEAR_Z). Поля NEAR_FID и NEAR_DIST добавляются всегда, независимо от опции Положение.
| Boolean |
angle (дополнительно) |
Определяет, будут ли углы между входными объектами и ближайшими найденными объектами вычисляться и сохраняться в полях NEAR_ANG_H и NEAR_ANG_V. Оба значения углов даются в градусах, где один градус представляет собой 1/360 дуги окружности, а доли градуса представляются десятичными значениями. Горизонтальные углы находятся в диапазоне от 180° до -180°; 0° – восток, 90° – север, 180° (-180°) – запад, а -90° – юг. Для вертикальных углов горизонталь равна 0, вертикально вверх – 90°, вертикально вниз -90°.
| Boolean |
delta (дополнительно) |
Определяет, будут ли расстояния вдоль первичных осей между входными объектами и ближайшими найденными объектами вычисляться и сохраняться в полях NEAR_DELTX, NEAR_DELTY и NEAR_DELTZ.
| Boolean |
Пример кода
В следующем примере показано использование этого инструмента в окне Python:
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.Near3D_3d("points_3D.shp", "buildings_multipatch.shp", "30", "LOCATION", "ANGLE", "DELTA")
В следующем примере показано использование этого инструмента в автономном скрипте Python:
'''****************************************************************************
Name: Near 3D Example
Description: This script demonstrates how to use
the Near 3D tool to identify the nearest z-aware features
that satisfy the results from a queried feature.
****************************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env
try:
# Obtain a license for the ArcGIS 3D Analyst extension
arcpy.CheckOutExtension('3D')
# Set environment settings
env.workspace = 'C:/data'
# Set Local Variables
inFC = 'homes.shp'
nearFC = 'radiotowers.shp'
# See the 'Building an SQL expression' topic for more information
# Query the field 'MATERIAL' for the string 'Reinforced Concrete'
SQL_Expression = "'"'MATERIAL'"' = 'Reinforced Concrete'"
#Execute Make Feature Layer
arcpy.MakeFeatureLayer_management(nearFC, 'Near Layer', SQL_Expression)
result = arcpy.GetCount_management('Near Layer')
if int(result.getOutput(0)) == 0:
arcpy.AddMessage('{0} has no features that satisfy the query: {1}'\
.format(nearFC, SQL_Expression))
else:
#Execute Near3D
arcpy.Near3D_3d(inFC, 'nearLayer', '', 'LOCATION', 'ANGLE')
except arcpy.ExecuteError:
print arcpy.GetMessages()
except:
# Get the traceback object
tb = sys.exc_info()[2]
tbinfo = traceback.format_tb(tb)[0]
# Concatenate error information into message string
pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
.format(tbinfo, str(sys.exc_info()[1]))
msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
# Return python error messages for script tool or Python Window
arcpy.AddError(pymsg)
arcpy.AddError(msgs)