Линия видимости (3D Analyst)

Сводка

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

Дополнительные сведения о том, как работает инструмент Линия видимости

Иллюстрация

Иллюстрация инструмента Линия видимости

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

  • Для определения наблюдателя и цели используются только конечные точки входной линии. Линии видимости должны представлять собой простые прямые линии с двумя вершинами, представляющими точку наблюдения и местоположение цели, для которой определяется видимость.

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

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

  • В таблице атрибутов выходного линейного объекта содержатся следующие поля:

    • SourceOID – уникальный ID линейного объекта, используемого при вычислении видимости.
    • VisCode – видимость вдоль линии. Значение 1 – видимый, значение 2 – невидимый. Это поле существует, только если полученная геометрия представляет собой линию.
    • TarIsVis – видимость цели вдоль линии. Значение 1 – видимый, значение 0 – невидимый. Это поле существует, только если полученная геометрия представляет собой линию.
    • OBSTR_MPID – уникальный ID мультипатча, являющегося помехой на линии видимости. Если мультипатч не препятствует линии видимости, это поле содержит значение -1 или -9999. Если цель скрыта поверхностью, используется значение -1. Если цель видима, используется значение -9999.

Синтаксис

arcpy.3d.LineOfSight(in_surface, in_line_feature_class, out_los_feature_class, {out_obstruction_feature_class}, {use_curvature}, {use_refraction}, {refraction_factor}, {pyramid_level_resolution}, {in_features})
ParameterОбъяснениеТип данных
in_surface

Слой сцены интегрированной модели mesh, набор данных LAS, растр, TIN или поверхности terrain, используемые для определения видимости.

TIN Layer; Raster Layer; Mosaic Layer; Terrain Layer; LAS Dataset Layer; Scene Layer; File
in_line_feature_class

Линейные объекты, первая которых вершина определяет точку наблюдения, а последняя – местоположение цели. Высота местоположений наблюдения и целевые местоположения получаются из z-значений 3D объектов и интерполируются с поверхности для 2D объектов.

Линии 2D также имеют смещение со значением по умолчанию 1, добавляемое к их высоте, чтобы поднять точки над поверхностью. Если объект имеет поле OffsetA, значение в этом поле будет добавлено к высоте точки наблюдения. Если имеется поле OffsetB, значение из этого поля будет добавлено к высоте местоположения цели.

Feature Layer
out_los_feature_class

Выходной класс линейных объектов, для которого определяется видимость. Создаются два поля атрибутов. Поле VisCode определяет видимость вдоль этой линии: 1 – видимость есть и 2 – видимость отсутствует. Поле TarIsVis определяет видимость цели: 0 – невидима и 1 – видима.

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

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

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

Определяет, будет ли учитываться кривизна поверхности Земли в анализе линии взгляда. Этот параметр работает, когда поверхность имеет определенную пространственную привязку в системе координат проекции с определенными z-единицами.

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

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

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

Значение, которое будет использоваться в коэффициенте преломления (рефракции). Значение, предлагаемое по умолчанию, равно 0,13.

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

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

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

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

Feature Layer

Пример кода

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

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

arcpy.env.workspace = "C:/data"
arcpy.LineOfSight_3d("tin", "line.shp", "los.shp", "buldings_multipatch.shp", 
                    "obstruction.shp")
LineOfSight, пример 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

# 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)

Информация о лицензиях

  • Basic: Требуется 3D Analyst
  • Standard: Требуется 3D Analyst
  • Advanced: Требуется 3D Analyst

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