Краткая информация
Создает класс объектов линий или мультипатчей, содержащий результаты анализа очертаний линии горизонта.
Более подробно о том, как работает инструмент Линия горизонта
Рисунок
Использование
Инструмент Линия горизонта часто используется совместно с инструментом Граница видимости и иногда с инструментом Схема горизонта. Другое применение этого инструмента описано в разделе Анализ угроз на маршруте полета в 3D.
Инструмент Линия горизонта используется для создания объектов-силуэтов, которые могут быть вытянуты в объемы теней при помощи инструмента Граница видимости. См. дополнительную информацию в разделе Как работает инструмент Линия горизонта.
Следующие поля будут добавлены к выходному классу пространственных объектов, содержащему линии горизонта:
- OBSV_PT_ID – FID точки наблюдения, используемой для создания этой линии горизонта.
- ORIGFTR_ID – FID пространственного объекта, например, здания.
Следующие поля будут добавлены к выходному классу пространственных объектов, содержащему очертания:
- OBSV_PT_ID – FID точки наблюдения, используемой для создания этого силуэта.
- ORIGFTR_ID – FID исходного пространственного объекта, например здания, представляемого этим силуэтом.
- DIR_VECT_X – компонент X единичного вектора, представляющего направление световых лучей от наблюдателя.
- DIR_VECT_Y – компонент Y единичного вектора, представляющего направление световых лучей от наблюдателя.
- DIR_VECT_Z – компонент Z единичного вектора, представляющего направление световых лучей от наблюдателя.
- FEAT_CTR_X – компонент X центра внешней границы исходного пространственного объекта (например, здания).
- FEAT_CTR_Y – компонент Y центра внешней границы пространственного объекта.
- FEAT_CTR_Z – компонент Z центра внешней границы пространственного объекта.
- BHND_CTR_X – компонент X центра внешней границы пространственного объекта, перемещенной за этот объект.
- BHND_CTR_Y – компонент Y центра внешней границы пространственного объекта, перемещенной за этот объект.
- BHND_CTR_Z – компонент Z центра внешней границы пространственного объекта, перемещенной за этот объект.
- USED_PARLL – было ли создано очертание при помощи параллельных световых лучей (1 для ответа «да» и 0 для ответа «нет»).
- MADE_VERT – было ли очертание сделано вертикальным, а не перпендикулярным световым лучам (1 для ответа «да» и 0 для ответа «нет»).
- MOVED_BHND – было ли очертание перемещено за пространственный объект, а не оставлено в его центре (1 для ответа «да» и 0 для ответа «нет»).
Синтаксис
Skyline_3d (in_observer_point_features, out_feature_class, {in_surface}, {virtual_surface_radius}, {virtual_surface_elevation}, {in_features}, {feature_lod}, {from_azimuth_value_or_field}, {to_azimuth_value_or_field}, {azimuth_increment_value_or_field}, {max_horizon_radius}, {segment_skyline}, {scale_to_percent}, {scale_according_to}, {scale_method}, {use_curvature}, {use_refraction}, {refraction_factor}, {pyramid_level_resolution}, {create_silhouettes})
Параметр | Объяснение | Тип данных |
in_observer_point_features | 3D точки, представляющие наблюдателей. По каждому объекту будут создаваться собственные выходные данные. | Feature Layer |
out_feature_class | 3D объекты, которые могут быть линиями, представляющими линию горизонта, или объектами-мультипатч, которые представляют силуэты. | Feature Class |
in_surface (дополнительно) | Топографическая поверхность, используемая для задания горизонта. Если поверхность не задана, будет использована виртуальная поверхность, созданная с помощью параметров virtual_surface_radius и virtual_surface_elevation. | LAS Dataset Layer; Raster Layer; TIN Layer; Terrain Layer |
virtual_surface_radius (дополнительно) | Радиус виртуальной поверхности, используемой для задания горизонта при отсутствии топографической поверхности. По умолчанию используется значение 1,000 метров. Поддерживаются следующие единицы измерения:
| Linear Unit |
virtual_surface_elevation (дополнительно) | Высота виртуальной поверхности для определения горизонта вместо действительной поверхности. Если действительная поверхность указана, игнорируется. Значение по умолчанию равно 0. Поддерживаются следующие единицы измерения:
| Linear Unit |
in_features (дополнительно) | Объекты, используемые при определении линии горизонта. Если объекты не заданы, линия горизонта будет состоять только из горизонта, заданного топографической или виртуальной поверхностью. | Feature Layer |
feature_lod (дополнительно) | Уровень прорисовки, на котором следует изучить каждый пространственный объект при анализе линии горизонта.
| String |
from_azimuth_value_or_field (дополнительно) | Double; Field | |
to_azimuth_value_or_field (дополнительно) | Направление в градусах, в котором должен быть завершен анализ линии горизонта. Анализ начинается с точки наблюдения и идет направо, от Азимут от к Азимут до. Не должен превышать Азимут от более, чем в 360 раз. Значение по умолчанию равно 360. | Double; Field |
azimuth_increment_value_or_field (дополнительно) | Угловой интервал в градусах, при котором должен быть вычислен горизонт при проведении анализа линии горизонта между Азимут от и Азимут до. Должно быть не больше, чем Азимут до, минус Азимут от. Значение по умолчанию равно 1. | Double; Field |
max_horizon_radius (дополнительно) | Максимальная дистанция, для которой должен быть найден горизонт из местоположения наблюдателя. Значение 0 указывает на то, что ограничения не должны применяться. Значение по умолчанию равно 0. Поддерживаются следующие единицы измерения:
| Double |
segment_skyline (дополнительно) | Определяет, будет ли полученная линия горизонта иметь по одному объекту на каждого наблюдателя, или линия горизонта каждого наблюдателя будет сегментирована на уникальные отрезки, вместе составляющую линию горизонта. Если создаются силуэты, этот параметр покажет, должны ли использоваться дивергентные лучи; для солнечных теней обычно применяется параметр NO_SEGMENT_SKYLINE
| Boolean |
scale_to_percent (дополнительно) | Указывает, какой процент исходного вертикального угла (угла над горизонтом, или угла высоты) или высоты каждой вершины линии горизонта должен быть размещен. При вводе значения 0 или 100 масштабирование не будет выполнено. По умолчанию используется 100. | Double |
scale_according_to (дополнительно) | Значения, согласно которым должно определяться масштабирование.
| String |
scale_method (дополнительно) | Вершина, относительно которой будет выполнен расчет.
| String |
use_curvature (дополнительно) | Указывает, должна ли учитываться кривизна Земли во время создания хребта из функциональной поверхности.
| Boolean |
use_refraction (дополнительно) | Указывает, должна ли во время создания хребта из функциональной поверхности применяться атмосферная рефракция.
| Boolean |
refraction_factor (дополнительно) | Если атмосферная рефракция учитывается, будет применен коэффициент рефракции. Значение по умолчанию равно 0.13. | Double |
pyramid_level_resolution (дополнительно) | z-допуск или разрешение размера окна для уровня пирамидных слоев Terrain, которое будет использоваться этим инструментом. Значением по умолчанию является 0, полное разрешение. | Double |
create_silhouettes (дополнительно) | Задает, будут ли выходные объекты представлять линии горизонта или силуэты.
| Boolean |
Пример кода
Skyline Пример 1 (окно Python)
В следующем примере показано использование этого инструмента в окне Python.
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.Skyline_3d("observers.shp", "skyline_output.shp", "sample.gdb/featuredataset/terrain")
Skyline Пример 2 (автономный скрипт)
В следующем примере показано использование этого инструмента в автономном скрипте Python.
'''****************************************************************************
Name: Skyline Example
Description: This script demonstrates how to use the
Skyline tool.
****************************************************************************'''
# 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
inPts = "observers.shp"
# Make sure output has a unique name
outFC = arcpy.CreateUniqueName("skyline_output.shp")
inSurface = "sample.gdb/featuredataset/terrain"
obstructionFCs = "buildings.shp; billboards.shp"
surfRad = "1000 meters"
surfElev = "100 meters"
LOD = "FULL_DETAIL"
fromAzim = 0
toAzim = 360
incAzim = 1
maxHorizRad = 0
segSky = "SEGMENT_SKYLINE"
scale = 100
scaleAcc = "ELEVATION"
scaleMethod = "SKYLINE_MAXIMUM"
# Execute Skyline
arcpy.Skyline_3d(inPts, outFC, inSurface, surfRad, surfElev,
obstructionFCs, LOD, fromAzim, toAzim, incAzim,
maxHorizRad, segSky, scale, scaleAcc, scaleMethod)
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)
- Выходная система координат (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)
- Выходная пространственная сетка 1
- Выходная пространственная сетка 2
- Выходная пространственная сетка 3
- Использование памяти Terrain (Terrain Memory Usage)
Информация о лицензировании
- ArcGIS for Desktop Basic: Требует 3D Analyst
- ArcGIS for Desktop Standard: Требует 3D Analyst
- ArcGIS for Desktop Advanced: Требует 3D Analyst