Сводка
Определяет видимость линий взгляда через потенциальные препятствия, задаваемые любыми сочетаниями 3D-объектов и поверхностей.
Использование
Этот инструмент изменяет входные Линии взгляда, добавляя новое поле или обновляя существующее поле. Имя поля можно указать в параметре Имя поля видимости. Для видимых линий взгляда значением поля будет 1, а для линий с препятствиями – 0. Если у вас нет прав на запись во входной класс объектов, или вы не хотите изменять входные данные, для работы с этим инструментом сделайте копию входных данных. Более подробно о стратегиях предотвращения неожиданных изменений данных см. в разделе Инструменты, не создающие выходных данных.
-
Для определения наблюдателя и цели используются только конечные точки входной линии. В идеале линии взгляда должны представлять собой прямые линии с двумя вершинами, представляющими точку наблюдения и местоположение цели, для которой определяется видимость.
-
Если местоположение наблюдателя определяется точечными объектами, а местоположения целей хранятся в другом классе пространственных объектов, воспользуйтесь инструментом Построить линии взгляда.
Инструмент будет работать быстрее, если все входные данные имеют единую пространственную привязку, так как данные не будут перепроецироваться (иногда несколько раз) для проверки наличия препятствий. Лучше всего будет, если все препятствия будут использовать одну пространственную привязку; пространственная привязка линий взгляда не так важна, так как их легче проецировать.
- Можно использовать инструмент Линия взгляда, если вы хотите определить положение закрытых местоположений для не видимых линий взгляда.
Синтаксис
arcpy.ddd.Intervisibility(sight_lines, obstructions, {visible_field})
Параметр | Объяснение | Тип данных |
sight_lines | 3D линии взгляда. | Feature Layer |
obstructions [obstructions,...] | Объекты-мультипатчи и поверхности, которые могут препятствовать линиям взгляда. Можно указать слой полигональных или линейных объектов, если у слоя заданы свойства базовой высоты и вытягивания. | Feature Layer; Mosaic Layer; Raster Layer; TIN Layer |
visible_field (Дополнительный) | Имя поля, которое будет хранить результаты видимости. Результирующее значение 0 указывает, что начальная и конечная точки линии взгляда не видимы друг другу. Значение 1 указывает, что начальная и конечная точки линии взгляда видимы друг другу. По умолчанию поле имеет имя VISIBLE. Если поле существует, его значения будут перезаписаны. | String |
Производные выходные данные
Имя | Объяснение | Тип данных |
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