Линия горизонта (3D Analyst)

Краткая информация

Создает класс объектов линий или мультипатчей, содержащий результаты анализа очертаний линии горизонта.

Более подробно о том, как работает инструмент Линия горизонта

Иллюстрация

Иллюстрация работы инструмента Линия горизонта

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

  • Этот инструмент требует, чтобы все входные данные находились в системе координат проекции. Входной класс пространственных объектов, не находящийся в системе координат проекции, можно перепроецировать с помощью инструмента Проецировать, а входную растровую поверхность можно перепроецировать с помощью инструмента Проецировать растр.

  • Параметр Разделенная на сегменты линия горизонта можно использовать для того, чтобы определить, какая часть линии горизонта определяется определенными объектами-мультипатчами или окружающей поверхностью высот. Это может помочь понять, влияют ли определенные объекты интереса на линию горизонта, построенную из данной точки наблюдения.

  • Этот инструмент используется для создания объектов-силуэтов, которые могут быть вытянуты в объемы теней при помощи инструмента Граница видимости. Тени, созданные в ходе этого процесса, будут созданы с небольшим смещением от геометрии входных объектов. В качестве альтернативы можно использовать инструмент Объемный теневой объект, создающий значения тени, отходящие от геометрии объекта на расстояние ниже высоты объекта. Вы также можете найти, где тень от 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 для ответа «нет»).
  • Атмосферная рефракция и коррекция кривизны земли будут применяться только в том случае, если значение параметра Входная поверхность является набором растровых данных. Если поверхность определяется набором данных TIN, Terrain или LAS, используйте один из следующих инструментов для экспорта данных в растр:

Параметры

ПодписьОписаниеТип данных
Входные точечные объекты наблюдателей

3D точки, представляющие наблюдателей. По каждому объекту будут создаваться собственные выходные данные.

Feature Layer
Выходной класс пространственных объектов

3D объекты, которые могут быть линиями, представляющими линию горизонта, или объектами-мультипатч, которые представляют силуэты.

Feature Class
Входная поверхность
(Дополнительный)

Топографическая поверхность, используемая для задания горизонта. Если поверхность не задана, будет использована виртуальная поверхность, определенная с помощью параметров Радиус виртуальной поверхности и Высота виртуальной поверхности.

LAS Dataset Layer; Mosaic Layer; Raster Layer; TIN Layer; Terrain Layer
Радиус виртуальной поверхности
(Дополнительный)

Радиус виртуальной поверхности, используемой для задания горизонта, если не указана входная поверхность. По умолчанию используется значение 1,000 метров.

Linear Unit
Высота виртуальной поверхности
(Дополнительный)

Высота виртуальной поверхности, используемая для определения горизонта вместо действительной поверхности. Если действительная поверхность указана, этот параметр игнорируется. По умолчанию - 0.

Linear Unit
Входные объекты
(Дополнительный)

Объекты, которые будут использованы при определении линии горизонта. Если объекты не заданы, линия горизонта будет состоять только из горизонта, заданного топографической или виртуальной поверхностью.

Feature Layer
Уровень детальности объекта
(Дополнительный)

Указывает уровень прорисовки, на котором следует изучить каждый пространственный объект.

  • Полная детализацияКаждое ребро в пределах объекта будет рассматриваться в анализе линии горизонта (рассматриваются только ребра треугольников и внешних колец). Это длительная, но самая точная операция. Это значение по умолчанию
  • Контур оболочкиВ анализе линии горизонта используется верхний периметр замкнутой оболочки, получаемой из контура каждого объекта, вытянутого до самой высокой вершины этого объекта.
  • КонвертВ анализе линии горизонта используется периметр трехмерного конверта объекта. Это самый быстрый метод.
String
Азимут от
(Дополнительный)

Направление, от которого будет начинаться анализ линии горизонта.

Значение представляет собой геометрический угол в градусах в диапазоне от -360° до 360°. По умолчанию 0°, то есть строго на север. Угловые значения увеличиваются по часовой стрелке, так что 90° — строго на восток, 180° — строго на юг, а 270° — строго на запад. Аналогично, -90° - строго на запад, -180° - строго на юг и -270° - строго на восток. Числовое поле из значения параметра Входные точечные объекты наблюдателей также можно использовать для указания отдельного начального направления для каждого наблюдателя. Анализ продолжается до тех пор, пока не будет достигнуто значение параметра Азимут до.

Double; Field
Азимут до
(Дополнительный)

Направление, в котором будет завершен анализ линии горизонта.

Это значение представляет собой геометрический угол в градусах в диапазоне от -360° до 360°. Анализ начинается с точки наблюдения и продолжается, от значения параметра Азимут от к значению параметра Азимут до. Это значение не может отклоняться более чем на 360° от значения параметра Азимут от. По умолчанию 360°, то есть строго на север.

Например, начальный азимут 0° с конечным азимутом 360° приведет к полному кругу линии горизонта вокруг наблюдателя, а начальный азимут 90° с конечным азимутом 270° покроет южную половину радиального диапазона вокруг наблюдателя.

Числовое поле из значения параметра Входные точечные объекты наблюдателей можно использовать для указания отдельного конечного направления для каждого наблюдателя.

Double; Field
Приращение азимута
(Дополнительный)

Угловой интервал в градусах, при котором будет вычислен горизонт при проведении анализа линии горизонта между значениями параметров Азимут от и Азимут до. Значение должно быть не больше разницы, которая получается, если из значения Азимут до вычесть значение Азимут от. Значение по умолчанию равно 1.

Double; Field
Максимальный радиус горизонта
(Дополнительный)

Максимальное расстояние от местоположения наблюдателя, на котором будет искаться горизонт. Значение 0 указывает на то, что ограничения не будут применяться. По умолчанию - 0.

Linear Unit
Горизонт сегмента
(Дополнительный)

Указывает, будет ли полученная линия горизонта иметь по одному объекту на каждого наблюдателя, или линия горизонта каждого наблюдателя будет сегментирована на уникальные отрезки, вместе составляющие линию горизонта. Этот параметр доступен только в том случае, если для параметра Входные объекты указаны один или несколько объектов-мультипатчей.

Если создаются силуэты, этот параметр покажет, должны ли использоваться дивергентные лучи. Для солнечных теней снимите отметку с этого параметра.

  • Не отмечено – каждый объект линии горизонта соответствует одному наблюдателю. Это значение по умолчанию
  • Отмечено – линия горизонта каждого наблюдателя будет сегментирована на уникальные отрезки.
Boolean
Масштаб к процентам
(Дополнительный)

Процент исходного вертикального угла (угла над горизонтом, или угла высоты) или высоты каждой вершины линии горизонта должен быть размещен. Если используется значение 0 или 100, масштабирование не произойдет. По умолчанию используется 100.

Double
Масштаб на основании
(Дополнительный)

Указывает, как будет выполняться масштабирование.

  • Вертикальный угол от наблюдателяМасштабирование будет выполняться с учетом вертикального угла каждой вершины относительно точки наблюдения. Это значение по умолчанию
  • ВысотыМасштабирование будет выполняться с учетом высоты каждой вершины относительно точки наблюдения.
String
Метод масштаба
(Дополнительный)

Указывает вершину, которая будет использоваться для вычисления масштаба.

  • Максимум линии горизонтаВершины будут масштабированы относительно вертикального угла (или высоты) вершины с наибольшим вертикальным углом (или высотой). Это значение по умолчанию
  • Каждая вершинаВершины будут масштабированы относительно исходного вертикального угла (или высоты) каждой вершины.
String
Использовать кривизну
(Дополнительный)

Указывает, будет ли кривизна земли использоваться при создании контура. Этот параметр доступен только в том случае, если для параметра Входная поверхность указана растровая поверхность.

  • Не отмечено — кривизна земли использоваться не будет. Это значение по умолчанию
  • Отмечено - кривизна земли будет использована.
Boolean
Использовать рефракцию
(Дополнительный)

Указывает, должна ли во время создания контура из входной поверхности применяться атмосферная рефракция. Эта опция доступна только в том случае, если для параметра Входная поверхность указана растровая поверхность.

  • Не отмечено – атмосферная рефракция не будет применяться. Это значение по умолчанию
  • Отмечено – атмосферная рефракция будет применяться.
Boolean
Коэффициент рефракции
(Дополнительный)

Если атмосферная рефракция учитывается, будет применен коэффициент рефракции. Значение по умолчанию равно 0.13.

Double
Разрешение уровня пирамидных слоев
(Дополнительный)

Z-допуск или разрешение размера окна для уровня пирамидных слоев Terrain, которое будет использоваться. Значением по умолчанию является 0, полное разрешение.

Double
Создать силуэты
(Дополнительный)

Указывает, будут ли выходные объекты представлять линии горизонта, определяющие барьер между входными данными и открытым небом, или силуэты, представляющие фасад наблюдаемых входных объектов. Эта опция доступна только в том случае, если для параметра Входные объекты указаны один или несколько объектов-мультипатчей.

  • Не отмечено – Выходные полилинейные объекты будут представлять линию горизонта. Это значение по умолчанию
  • Отмечено — выходные объекты мультипатч будут представлять силуэты.
Boolean
Применить к объектам максимальный радиус
(Дополнительный)

Указывает, будет ли значение параметра Максимальный радиус горизонта применяться к входным объектам.

  • Не отмечено — радиус не будет применяться к входным объектам. Это значение по умолчанию
  • Отмечено — радиус будет применяться к входным объектам.
Boolean

arcpy.ddd.Skyline(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}, {apply_max_radius_to_features})
ИмяОписаниеТип данных
in_observer_point_features

3D точки, представляющие наблюдателей. По каждому объекту будут создаваться собственные выходные данные.

Feature Layer
out_feature_class

3D объекты, которые могут быть линиями, представляющими линию горизонта, или объектами-мультипатч, которые представляют силуэты.

Feature Class
in_surface
(Дополнительный)

Топографическая поверхность, используемая для задания горизонта. Если поверхность не задана, будет использована виртуальная поверхность, определенная с помощью параметров virtual_surface_radius и virtual_surface_elevation.

LAS Dataset Layer; Mosaic Layer; Raster Layer; TIN Layer; Terrain Layer
virtual_surface_radius
(Дополнительный)

Радиус виртуальной поверхности, используемой для задания горизонта, если не указана входная поверхность. По умолчанию используется значение 1,000 метров.

Linear Unit
virtual_surface_elevation
(Дополнительный)

Высота виртуальной поверхности, используемая для определения горизонта вместо действительной поверхности. Если действительная поверхность указана, этот параметр игнорируется. По умолчанию - 0.

Linear Unit
in_features
[in_features,...]
(Дополнительный)

Объекты, которые будут использованы при определении линии горизонта. Если объекты не заданы, линия горизонта будет состоять только из горизонта, заданного топографической или виртуальной поверхностью.

Feature Layer
feature_lod
(Дополнительный)

Указывает уровень прорисовки, на котором следует изучить каждый пространственный объект.

  • FULL_DETAILКаждое ребро в пределах объекта будет рассматриваться в анализе линии горизонта (рассматриваются только ребра треугольников и внешних колец). Это длительная, но самая точная операция. Это значение по умолчанию
  • CONVEX_FOOTPRINTВ анализе линии горизонта используется верхний периметр замкнутой оболочки, получаемой из контура каждого объекта, вытянутого до самой высокой вершины этого объекта.
  • ENVELOPEВ анализе линии горизонта используется периметр трехмерного конверта объекта. Это самый быстрый метод.
String
from_azimuth_value_or_field
(Дополнительный)

Направление, от которого будет начинаться анализ линии горизонта.

Это значение представляет собой геометрический угол в градусах в диапазоне от -360° до 360°. По умолчанию 0°, то есть строго на север. Угловые значения увеличиваются по часовой стрелке, так что 90° — строго на восток, 180° — строго на юг, а 270° — строго на запад. Аналогично, -90° - строго на запад, -180° - строго на юг и -270° - строго на восток. Числовое поле из значения параметра in_observer_point_features также можно использовать для указания отдельного начального направления для каждого наблюдателя. Анализ продолжается до тех пор, пока не будет достигнуто значение параметра to_azimuth_value_or_field.

Double; Field
to_azimuth_value_or_field
(Дополнительный)

Направление, в котором будет завершен анализ линии горизонта.

Это значение представляет собой геометрический угол в градусах, который может быть указан как любое число в диапазоне от -360° до 360°. Анализ начинается с точки наблюдения и продолжается, от значения параметра from_azimuth_value_or_field к значению параметра to_azimuth_value_or_field. Это значение не может отклоняться более чем на 360° от значения параметра from_azimuth_value_or_field. По умолчанию 360°, то есть строго на север.

Например, начальный азимут 0° с конечным азимутом 360° приведет к полному кругу линии горизонта вокруг наблюдателя, а начальный азимут 90° с конечным азимутом 270° покроет южную половину радиального диапазона вокруг наблюдателя.

Числовое поле из значения параметра in_observer_point_features можно использовать для указания отдельного конечного направления для каждого наблюдателя.

Double; Field
azimuth_increment_value_or_field
(Дополнительный)

Угловой интервал в градусах, при котором будет вычисляться горизонт при проведении анализа линии горизонта между значениями параметров from_azimuth_value_or_field и to_azimuth_value_or_field. Значение должно быть не больше разницы, которая получается, если из значения to_azimuth_value_or_field вычесть from_azimuth_value_or_field. Значение по умолчанию равно 1.

Double; Field
max_horizon_radius
(Дополнительный)

Максимальное расстояние от местоположения наблюдателя, на котором будет искаться горизонт. Значение 0 указывает на то, что ограничения не будут применяться. По умолчанию - 0.

Linear Unit
segment_skyline
(Дополнительный)

Указывает, будет ли полученная линия горизонта иметь по одному объекту на каждого наблюдателя, или линия горизонта каждого наблюдателя будет сегментирована на уникальные отрезки, вместе составляющие линию горизонта. Этот параметр доступен только в том случае, если для параметра in_features указаны объекты-мультипатчей.

Если создаются силуэты, этот параметр покажет, должны ли использоваться дивергентные лучи. Для солнечных теней используйте опцию NO_SEGMENT_SKYLINE.

  • NO_SEGMENT_SKYLINEКаждый объект линии горизонта соответствует одному наблюдателю. Это значение по умолчанию
  • SEGMENT_SKYLINEЛиния горизонта каждого наблюдателя будет сегментирована на уникальные отрезки.
Boolean
scale_to_percent
(Дополнительный)

Процент исходного вертикального угла (угла над горизонтом, или угла высоты) или высоты каждой вершины линии горизонта должен быть размещен. Если используется значение 0 или 100, масштабирование не произойдет. По умолчанию используется 100.

Double
scale_according_to
(Дополнительный)

Указывает, как будет выполняться масштабирование.

  • VERTICAL_ANGLEМасштабирование будет выполняться с учетом вертикального угла каждой вершины относительно точки наблюдения. Это значение по умолчанию
  • ELEVATIONМасштабирование будет выполняться с учетом высоты каждой вершины относительно точки наблюдения.
String
scale_method
(Дополнительный)

Указывает вершину, которая будет использоваться для вычисления масштаба.

  • SKYLINE_MAXIMUMВершины будут масштабированы относительно вертикального угла (или высоты) вершины с наибольшим вертикальным углом (или высотой). Это значение по умолчанию
  • EACH_VERTEXВершины будут масштабированы относительно исходного вертикального угла (или высоты) каждой вершины.
String
use_curvature
(Дополнительный)

Указывает, будет ли кривизна земли использоваться при создании контура из функциональной поверхности. Этот параметр доступен только в том случае, если для параметра in_surface указана растровая поверхность.

  • CURVATUREКривизна Земли будет использоваться.
  • NO_CURVATUREКривизна Земли не будет использоваться. Это значение по умолчанию
Boolean
use_refraction
(Дополнительный)

Указывает, должна ли во время создания контура из функциональной поверхности применяться атмосферная рефракция. Эта опция доступна только в том случае, если для параметра in_surface указана растровая поверхность.

  • NO_REFRACTIONАтмосферная рефракция не будет применяться. Это значение по умолчанию
  • REFRACTIONАтмосферная рефракция будет применяться.
Boolean
refraction_factor
(Дополнительный)

Если атмосферная рефракция учитывается, будет применен коэффициент рефракции. Значение по умолчанию равно 0.13.

Double
pyramid_level_resolution
(Дополнительный)

Z-допуск или разрешение размера окна для уровня пирамидных слоев Terrain, которое будет использоваться. Значением по умолчанию является 0, полное разрешение.

Double
create_silhouettes
(Дополнительный)

Указывает, будут ли выходные объекты представлять линии горизонта, определяющие барьер между входными данными и открытым небом, или силуэты, представляющие фасад наблюдаемых входных объектов. Эта опция доступна только в том случае, если для параметра in_features указаны один или несколько объектов-мультипатчей.

  • NO_CREATE_SILHOUETTESВыходные полилинейные объекты будут представлять линию горизонта. Это значение по умолчанию
  • CREATE_SILHOUETTESВыходные объекты мультипатча будут представлять силуэты.
Boolean
apply_max_radius_to_features
(Дополнительный)

Указывает, будет ли значение параметра max_horizon_radius применяться к входным объектам.

  • NO_APPLY_MAX_RADIUS_TO_FEATURESРадиус не будет применяться к входным объектам. Это значение по умолчанию
  • APPLY_MAX_RADIUS_TO_FEATURESРадиус будет применяться к входным объектам.
Boolean

Пример кода

Skyline, пример 1 (окно Python)

В следующем примере показано использование этого инструмента в окне Python.

arcpy.env.workspace = "C:/data"
arcpy.ddd.Skyline("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

# Set environment settings
arcpy.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.ddd.Skyline(inPts, outFC, inSurface, surfRad, surfElev, 
                  obstructionFCs, LOD, fromAzim, toAzim, incAzim, 
                  maxHorizRad, segSky, scale, scaleAcc, scaleMethod)

Связанные разделы