Взаимная видимость (3D Analyst)

Сводка

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

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

  • Этот инструмент изменяет входные Линии взгляда, добавляя новое поле или обновляя существующее поле. Имя поля можно указать в параметре Имя поля видимости. Значением поля будет 1 для видимых линий взгляда и 0 для линий взгляда, у которых есть препятствие. Если у вас нет прав на запись во входные объекты или вы не хотите менять входные данные, для работы этого инструмента нужно сделать копию. Более подробно о стратегиях предотвращения нежелательных изменений данных см. в разделе Инструменты, не создающие выходных данных.

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

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

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

  • Можно использовать инструмент Линия взгляда, если вы хотите определить положение закрытых местоположений для не видимых линий взгляда.

Синтаксис

arcpy.3d.Intervisibility(sight_lines, obstructions, {visible_field})
ParameterОбъяснениеТип данных
sight_lines

3D линии взгляда, видимость которых будет оцениваться.

Feature Layer
obstructions
[obstructions,...]

3D объекты, слои интегрированной модели mesh и поверхности, которые представляют собой потенциальные препятствия для линий взгляда.

Feature Layer; TIN Layer; Raster Layer; Mosaic Layer; Scene Layer; File
visible_field
(Дополнительный)

Имя поля, которое будет хранить результаты видимости. Результирующее значение 0 указывает, что начальная и конечная точки линии взгляда не видимы друг другу. Значение 1 указывает, что начальная и конечная точки линии взгляда видимы друг другу. По умолчанию поле имеет имя VISIBLE. Если поле существует, его значения будут перезаписаны.

String

Производные выходные данные

NameОбъяснениеТип данных
out_feature_class

Обновленные 3D линии взгляда.

Векторный слой

Пример кода

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

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

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.Intervisibility_3d("sightlines.shp", ["3dbuildings.shp", "topo_tin"], "Visibility")
Intervisibility, пример 2 (автономный скрипт)

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

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

# Import system modules
import arcpy
# Set environments
arcpy.env.workspace = 'C:/data'
print("Constructing Sightlines")
arcpy.ddd.ConstructSightLines("Observers.shp", "Targets.shp", "sightlines.shp", 
                              observer_height_field='Shape.Z', target_height_field='Shape.Z')
print("Calculating Intervisibility")
arcpy.ddd.Intervisibility("Sightlines.shp", obstructions=["DTM_Tin", "data.gdb/buildings"],
                          visible_field="Visibility")

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

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

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