Сводка
Создает линейные объекты, представляющие собой линии взгляда с одной или более точек наблюдения к объектам целевого класса пространственных объектов.
Иллюстрация
Использование
Линии взгляда разбиваются из периметра целевых линий и полигонов на основе значения указанного в параметре Расстояние разбиения. Единицы Расстояние разбиения должны задаваться в единицах 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 – расстояние вдоль целевого объекта, если это линия или полигон
Если включен параметр Выводить направления, выходные линии взгляда будут иметь два дополнительных поля атрибутов:
- AZIMUTH – величина угла в градусах от направления на север по часовой стрелке
- VERT_ANGLE – вертикальный угол в градусах относительно горизонта, где 90° означает прямо над головой, а -90° - противоположное направление. Вертикальный угол будет значим, только когда указано поле высот.
Синтаксис
arcpy.3d.ConstructSightLines(in_observer_points, in_target_features, out_line_feature_class, {observer_height_field}, {target_height_field}, {join_field}, {sample_distance}, {output_the_direction}, {sampling_method})
Parameter | Объяснение | Тип данных |
in_observer_points | Отдельные точечные объекты, представляющие точки наблюдателя. Мультиточечные объекты не поддерживаются. | Feature Layer |
in_target_features | Целевые объекты (точки, мультиточки, линии или полигоны). | Feature Layer |
out_line_feature_class | Выходной класс пространственных объектов, содержащий линии взгляда. | Feature Class |
observer_height_field (Дополнительный) | Источник значений высоты для точек наблюдателя – его таблица атрибутов. Поле по умолчанию Поле высот наблюдателя выбирается из списка, составленного по приоритетам. В случае множества полей, или когда у желаемого поля не высший приоритет в секции поля по умолчанию, желаемое поля необходимо указать.
| String |
target_height_field (Дополнительный) | Поле высот цели Поле по умолчанию Поле высот цели выбирается из списка, составленного по приоритетам. В случае множества полей, или когда у желаемого поля не высший приоритет в секции поля по умолчанию, желаемое поля необходимо указать.
| String |
join_field (Дополнительный) | Поле соединения используется для сопоставления наблюдателей с определенными целевыми объектами.
| String |
sample_distance (Дополнительный) | Расстояние между разбиениями, если целевой объект линия или полигон. Единицы Расстояния разбиения даются в единицах x,y выходного класса объектов. | Double |
output_the_direction (Дополнительный) | Добавляет атрибуты направления к выходным линиям взгляда. Два дополнительных поля, AZIMUTH и VERT_ANGLE, будут добавляться и заполняться значениями для указания направления (вертикального угла).
| Boolean |
sampling_method (Дополнительный) | Задает способ использования расстояния выборки для поиска линий взгляда вдоль целевого объекта.
| String |
Пример кода
В следующем примере показано использование этого инструмента в окне Python.
arcpy.env.workspace = 'C:/data'
arcpy.ConstructSightLines_3d('observer_pt.shp', 'target.shp', 'sightlines.shp', 'BASEHEIGHT', 'TOP_HEIGHT', 'NAME', "1", "OUTPUT_THE_DIRECTION")
В следующем примере показано использование этого инструмента в автономном скрипте 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
# Set Local Variables:
arcpy.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.ddd.ConstructSightLines(obs, tar, sightlines, height, height,
join_field, sampling, direction)
arcpy.ddd.LineOfSight(surface, sightlines, "Parade_LOS.shp",
"Obstructions.shp", in_features=bldgs)
Environments
Информация о лицензиях
- Basic: Требуется 3D Analyst
- Standard: Требуется 3D Analyst
- Advanced: Требуется 3D Analyst