Краткая информация
Создает линейные объекты, представляющие линии взгляда с одной или более точек наблюдения к объектам целевого класса пространственных объектов.
Рисунок
Использование
Линии взгляда разбиваются из периметра целевых линий и полигонов на основе значения указанного в параметре Расстояние разбиения (Sampling Distance). Единицы Расстояние разбиения (Sampling Distance) должны задаваться в единицах x, y выходного класса объектов.
Присоединенное поле используется для определения одного или более целевых объектов для обозревателя. Если присоединенные поля не используются, все точки соединяются со всеми целями.
Если для обоих объектов обозревателя и целевого указан источник высоты, то создаются 3D выходные данные. Источник высоты обозревателя и целевых объектов использует по умолчанию первое имя поля, перечисленное в этом списке:
- Shape.Z (доступно только для объектов с Z-значениями)
- Spot
- Z
- Z_Value
- Height
- Elev
- Elevation
- Contour
Если нет подходящих полей высот, применяется ключевое слово <None> по умолчанию, чтобы известить об отсутствии z-значений.
Если желаемое поле высоты не имеет высокого приоритета в секции поля по умолчанию, его необходимо указать отдельно. По аналогии, если поле высот не является желаемым, но класс объектов содержит одно подходящее поле в секции списка по умолчанию, требуется указать ключевое слово <None>.
Следующие поля будут добавлены к выходному классу пространственных объектов, содержащему линии взгляда:
- OID_OBSERV – OID точки наблюдения.
- OID_TARGET – OID целевого объекта
- DIST_ALONG – Расстояние вдоль целевого объекта, если это линия или полигон.
Если включен параметр Выводить направления (Output The Directions), выходные линии взгляда будут иметь два дополнительных поля атрибутов:
- AZIMUTH – Величина угла в градусах от направления на север по часовой стрелке.
- VERT_ANGLE – вертикальный угол в градусах относительно горизонта, где 90° означает прямо над головой, а -90° – противоположное направление. Вертикальный угол будет значим, только когда указано поле высот.
Синтаксис
ConstructSightLines_3d (in_observer_points, in_target_features, out_line_feature_class, {observer_height_field}, {target_height_field}, {join_field}, {sample_distance}, {output_the_direction})
Параметр | Объяснение | Тип данных |
in_observer_points | Отдельные точечные объекты, представляющие точки наблюдателя. Мультиточечные объекты не поддерживаются. | Feature Layer |
in_target_features | Целевые объекты (точки, мультиточки, линии или полигоны). | Feature Layer |
out_line_feature_class | Выходной класс пространственных объектов, содержащий линии взгляда. | Feature Class |
observer_height_field (дополнительно) | Источник значений высоты для точек наблюдателя – его таблица атрибутов. Поле по умолчанию Поле высоты наблюдателя (Observer Height Field) выбирается из списка, составленного по приоритетам. В случае множества полей, или когда у желаемого поля не высший приоритет в секции поля по умолчанию, желаемое поля необходимо указать.
| String |
target_height_field (дополнительно) | Поле высоты цели Поле по умолчанию Поле высоты цели (Target Height Field) выбирается из списка, составленного по приоритетам. В случае множества полей, или когда у желаемого поля не высший приоритет в секции поля по умолчанию, желаемое поля необходимо указать.
| String |
join_field (дополнительно) | Присоединенное поле используется для сопоставления наблюдателей с определенными целевыми объектами. | String |
sample_distance (дополнительно) | Расстояние между разбиениями, если целевой объект линия или полигон. Единицы Расстояние разбиения (Sampling Distance) даются в единицах x,y выходного класса объектов. | Double |
output_the_direction (дополнительно) |
Добавляет атрибуты направления к выходным линиям взгляда. Два дополнительных поля будут добавляться и заполняться значениями, чтобы указывать направление AZIMUTH и VERT_ANGLE (вертикальный угол).
| Boolean |
Пример кода
ConstructSightLines пример 1 (окно Python)
В следующем примере показано использование этого инструмента в окне Python.
arcpy.CheckOutExtension('3D')
arcpy.env.workspace = 'C:/data'
arcpy.ConstructSightLines_3d('observer_pt.shp', 'target.shp', 'sightlines.shp',
'BASEHEIGHT', 'TOP_HEIGHT', 'NAME', 1)
ConstructSightLines, пример 2 (автономный скрипт)
В следующем примере показано использование этого инструмента в автономном скрипте Python.
'''*********************************************************************
Name: Sight Line Visibility of Parade Path
Description: This script demonstrates how to create a sight line feature class
from a pair of observer and target points.
*********************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env
try:
# Checking out 3D Analyst Extension:
arcpy.CheckOutExtension('3D')
# Set Local Variables:
env.workspace = 'C:/data'
# Setting up input and output variables:
obs = "observer_pts.shp"
tar = "parade_path.shp"
sightlines = "output_sightlines.shp"
height = "<None>"
join_field = "#"
sampling = 0.5
direction = "OUTPUT_THE_DIRECTION"
surface = 'elevation.tif'
bldgs = 'buildings.shp'
arcpy.AddMessage("Building sightlines...")
arcpy.ddd.ConstructSightLines(obs, tar, sightlines, height, height,
join_field, sampling, direction)
arcpy.ddd.LineOfSight(surface, sightlines, "Parade_LOS.shp",
"Obstructions.shp", in_features=bldgs)
arcpy.GetMessages(0)
arcpy.CheckInExtension("3D")
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)
Параметры среды
- Текущая рабочая область (Current Workspace)
- Экстент (Extent)
- Выходная система координат (Output Coordinate System)
- Географические преобразования (Geographic Transformations)
- Разрешение XY (XY Resolution)
- Допуск XY (XY Tolerance)
- Выходной XY домен (Output XY Domain)
- Разрешение Z (Z Resolution)
- Допуск Z (Z Tolerance)
- Выходной домен Z (Output Z Domain)
- Выходное ключевое слово CONFIG (Output CONFIG Keyword)
- Автоподтверждение (Auto Commit)
Информация о лицензировании
- ArcGIS for Desktop Basic: Требует 3D Analyst
- ArcGIS for Desktop Standard: Требует 3D Analyst
- ArcGIS for Desktop Advanced: Требует 3D Analyst