Доступно с лицензией 3D Analyst.
Краткая информация
Определяет видимость линий взгляда через потенциальные препятствия. Потенциальными препятствиями могут быть любые комбинации растров, наборов данных TIN, мультипатчей и вытянутых полигонов и линий.
Использование
-
Для определения наблюдателя и цели используются только конечные точки входной линии. В идеале линии взгляда должны представлять собой прямые линии с двумя вершинами, представляющими точку наблюдения и местоположение цели, для которой определяется видимость.
-
Если местоположение наблюдателя определяется точечными объектами, а местоположения целей хранятся в другом классе пространственных объектов, воспользуйтесь инструментом Построить линии взгляда.
Этот инструмент не создает новые выходные данные, он добавляет новый атрибут в класс пространственных объектов входные линии взгляда. Если вы не хотите трогать входные данные, сделайте копию их и используйте её как входные данные.
Тип геометрии входных Линий взгляда (Sight Lines) должен быть PolylineZ (3D линии со значениями Z), чтобы можно было проводить значимый анализ.
Входными препятствиями могут выступать любые комбинации поверхностей и/или объектов. Поверхности должны быть либо растрами, либо TIN. Тип геометрии каждого слоя объектов препятствий должен быть мультипатч, линия или полигон. Каждый слой линейных или полигональных объектов должен иметь базовую высоту и информацию о вытянутости, иначе его содержание будет игнорироваться.
Каждая входная линия взгляда может включать более двух вершин, но используется только первая и последняя. Поэтому каждая линия взгляда будет всегда прямой.
Значения Z в первой и последней вершинах каждой линии взгляда являются единственными источниками используемых Z – значений.
Результаты анализа сохраняются в таблице входного объекта Линии взгляда (Sight Line) в поле типа integer. Имя по умолчанию этого поля - VISIBLE, но его можно изменить в параметре Имя поля видимости (Visible Field Name).
Результатом может быть значение 1 или 0. Значение 1 указывает, что линия взгляда не встречается с препятствиями, определенными в параметре Препятствия (Obstructions), это означает, что начальная и конечная точки видимы друг другу. Значение 0 указывает, что линия взгляда пересекается как минимум одной поверхностью или объектом.
Если в поле результата (например, VISIBLE) уже есть класс пространственных объектов Линия взгляда (Sight Line), то содержание поля будет переписано. Если этот инструмент запускается из диалогового окна, появляется предупреждение, если инструмент обнаруживает, что это поле уже есть. Независимо от того, как запускается инструмент (например, из диалогового окна или окна Python), если результаты записываются в существующее поле, то предупреждающее сообщение будет добавлено к сообщениям о результатах, указывая, что данные были переписаны.
Инструмент будет работать быстрее, если все входные данные имеют единую пространственную привязку, данные не будут перепроецироваться(иногда несколько раз) для проверки встречи с препятствиями. Лучше всего будет, если все препятствия будут использовать одну пространственную привязку; пространственная привязка линий взгляда не так важна, так как их легче проецировать.
- В отличие от инструмента Линия видимости (Line of Sight), этот инструмент определяет, встречается ли линия взгляда с препятствиями, а не где она встречает препятствие первый раз. Не делается записи о том, какое препятствие встречается с данной линией взгляда.
Если вы желаете отобразить данные о направлении (азимуте и вертикальном угле) каждой линии взгляда, то используйте инструмент Построить линии взгляда (Construct Sight Lines), чтобы создать линии взгляда до запуска этого инструмента.
Синтаксис
Intervisibility_3d (sight_lines, obstructions, {visible_field})
Параметр | Объяснение | Тип данных |
sight_lines | 3D линии взгляда. | Feature Layer |
obstructions [obstructions,...] | Один или более классов пространственных объектов и/или поверхностей, которые могут пересекать линии взгляда. | Feature Layer, Raster Layer, TIN Layer |
visible_field (дополнительно) | Имя поля, которое будет хранить результаты видимости. Результирующее значение 0 указывает, что начальная и конечная точки линии взгляда не видимы друг другу. Значение 1 указывает, что начальная и конечная точки линии взгляда видимы друг другу. По умолчанию поле имеет имя VISIBLE. | String |
Пример кода
Intervisibility пример 1 (окно Python)
В следующем примере показано использование этого инструмента в окне Python.
arcpy.CheckOutExtension("3D")
arcpy.env.workspace = "C:/data"
arcpy.Intervisibility_3d("sightlines.shp", "3dbuildings.shp;topo_tin", "Visibility")
Intervisibility Пример 2 (автономное окно)
В следующем примере показано использование этого инструмента в автономном скрипте Python.Этот скрипт демонстрирует, как просчитывать взаимную видимость для линий взгляда через препятствия, представленные поверхностью и/или зданиями из мультипатчей.
# Import system modules
import arcpy
try:
# Checking out 3D Analyst Extension
arcpy.CheckOutExtension("3D")
# Set environments
arcpy.env.workspace = 'C:/data'
# Setting up input and output variables
sightlines = "My_Sightlines.shp"
surface = "DTM_Tin"
buildings = "My_3D_Buildings.shp"
viz_field_name = "Visibility"
print("Calculating Intervisibility...")
arcpy.Intervisibility_ddd(
sightlines, surface + ';' + buildings, viz_field_name)
except arcpy.ExecuteError:
print(arcpy.GetMessages(2))
finally:
arcpy.CheckInExtension("3D")
Параметры среды
Информация о лицензировании
- ArcGIS for Desktop Basic: Требует 3D Analyst
- ArcGIS for Desktop Standard: Требует 3D Analyst
- ArcGIS for Desktop Advanced: Требует 3D Analyst