Ближайший 3D (3D Analyst)

Уровень лицензии:BasicStandardAdvanced

Резюме

Вычисляет трехмерное расстояние от каждого входного объекта до ближайших, находящихся в одном или нескольких классах объектов.

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

Синтаксис

Near3D_3d (in_features, near_features, {search_radius}, {location}, {angle}, {delta})
ПараметрОбъяснениеТип данных
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 добавляются всегда, независимо от опции Положение.

  • NO_LOCATIONКоординаты X,Y и Z не сохраняются. Это значение используется по умолчанию.
  • LOCATIONКоординаты X,Y и Z сохраняются. К каждому входному полю добавляются шесть дополнительных атрибутивных полей.
Boolean
angle
(дополнительно)

Определяет, будут ли углы между входными объектами и ближайшими найденными объектами вычисляться и сохраняться в полях NEAR_ANG_H и NEAR_ANG_V. Оба значения углов даются в градусах, где один градус представляет собой 1/360 дуги окружности, а доли градуса представляются десятичными значениями. Горизонтальные углы находятся в диапазоне от 180° до -180°; 0° – восток, 90° – север, 180° (-180°) – запад, а -90° – юг. Для вертикальных углов горизонталь равна 0, вертикально вверх – 90°, вертикально вниз -90°.

  • NO_ANGLEУгол не сохраняется. Это значение используется по умолчанию.
  • ANGLEУглы добавляются, поля, в случае их отсутствия, создаются.
Boolean
delta
(дополнительно)

Определяет, будут ли расстояния вдоль первичных осей между входными объектами и ближайшими найденными объектами вычисляться и сохраняться в полях NEAR_DELTX, NEAR_DELTY и NEAR_DELTZ.

  • NO_DELTAДельта не вычисляется. Это значение используется по умолчанию.
  • DELTAДельта вычисляется. Три дополнительных поля (NEAR_DELTX, NEAR_DELTY и NEAR_DELTZ) будут добавлены к результатам.
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 for Desktop Basic: Требует 3D Analyst
ArcGIS for Desktop Standard: Требует 3D Analyst
ArcGIS for Desktop Advanced: Требует 3D Analyst
9/10/2013