Сводка
Определяет видимость линий взгляда с учетом потенциальных препятствий, заданных любыми сочетаниями 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 линии взгляда. | Векторный слой |
Пример кода
В следующем примере показано использование этого инструмента в окне Python.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.Intervisibility_3d("sightlines.shp", ["3dbuildings.shp", "topo_tin"], "Visibility")
В следующем примере показано использование этого инструмента в автономном скрипте 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")
Environments
Информация о лицензиях
- Basic: Требуется 3D Analyst
- Standard: Требуется 3D Analyst
- Advanced: Требуется 3D Analyst