Краткая информация
Вычисляет трехмерное расстояние от каждого входного объекта до ближайших, находящихся в одном или нескольких классах объектов.
Использование
У всех входных объектов должны быть Z-значения. Поддерживаются все типы геометрии.Входные объекты можно также задавать в качестве ближайших для определения ближайших объектов в пределах того же класса.
В таблицу атрибутов входных объектов можно добавить следующие поля:
- NEAR_FID – FID ближайшего объекта. Значение, равное -1, означает, что не было найдено соответствия в пределах указанного радиуса поиска
- 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 – Горизонтальный арифметический угол направления к ближайшей точке, выраженный в градусах.
- NEAR_ANG_V – Вертикальный угол направления к ближайшей точке, выраженный в градусах. Горизонтальному направлению соответствует 0, направлению вертикально вверх – 90, вертикально вниз – -90.
- NEAR_FC – Путь к классу объектов, содержащему ближайший найденный объект. Это поле добавляется если выбрано несколько ближайших объектов.
Синтаксис
Near3D_3d (in_features, near_features, {search_radius}, {location}, {angle}, {delta})
Параметр | Объяснение | Тип данных |
in_features | Входной класс, к объектам которого будут присоединены атрибуты с информацией о ближайшем объекте. | Feature Layer |
near_features | Один или несколько объектов, для которых будет вычисляться близость к входным объектам.Если задано несколько классов объектов, во входной класс объектов добавляется поле с названием NEAR_FC для определения того, в каком классе ближайших объектов находится самый ближний объект. | Feature Layer |
search_radius (Дополнительный) | Максимальное расстояние, в пределах которого определяются ближайшие к заданному объекты.Если ничего не указано, будет найден ближайший объект, независимо от расстояния, на котором он находится. | Linear Unit |
location (Дополнительный) | Определяет, будут ли добавлены во входную таблицу атрибутов координаты ближайшей точки входного и ближайшего объекта.
| Boolean |
angle (Дополнительный) | Определяет, будут ли добавлены во входную таблицу атрибутов значения горизонтального арифметического и вертикального углов направления на ближайший объект.
| Boolean |
delta (Дополнительный) | Определяет, будут ли добавлены во входную таблицу атрибутов значения расстояний от входного объекта до ближайшего вдоль осей X, Y и Z.
| Boolean |
Пример кода
Near3D, пример 1 (окно Python)
В следующем примере показано использование этого инструмента в окне 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")
Near3D, пример 2 (автономный скрипт)
В следующем примере показано использование этого инструмента в автономном скрипте 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)
Параметры среды
Информация о лицензиях
- ArcGIS Desktop Basic: Требует 3D Analyst
- ArcGIS Desktop Standard: Требует 3D Analyst
- ArcGIS Desktop Advanced: Требует 3D Analyst