Сводка
Создает линейные объекты, представляющие собой линии взгляда с одной или более точек наблюдения к объектам целевого класса пространственных объектов.
Иллюстрация
Использование
Линии взгляда разбиваются из периметра целевых линий и полигонов на основе значения указанного в параметре Расстояние разбиения. Единицы Расстояние разбиения должны задаваться в единицах 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.ddd.ConstructSightLines(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 (Дополнительный) | Источник значений высоты для точек наблюдателя – его таблица атрибутов. Поле по умолчанию Поле высот наблюдателя выбирается из списка, составленного по приоритетам. В случае множества полей, или когда у желаемого поля не высший приоритет в секции поля по умолчанию, желаемое поля необходимо указать.
| String |
target_height_field (Дополнительный) | Поле высот цели Поле по умолчанию Поле высот цели выбирается из списка, составленного по приоритетам. В случае множества полей, или когда у желаемого поля не высший приоритет в секции поля по умолчанию, желаемое поля необходимо указать.
| String |
join_field (Дополнительный) | Поле соединения используется для сопоставления наблюдателей с определенными целевыми объектами.
| String |
sample_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)
Параметры среды
Информация о лицензиях
- Basic: Требуется 3D Analyst
- Standard: Требуется 3D Analyst
- Advanced: Требуется 3D Analyst