Доступно с лицензией Spatial Analyst.
Краткая информация
С помощью геодезических методов определяет положения на поверхности растра, которые видимы для набора объектов наблюдателей.
Более подробно о том, как работает инструмент Обоюдная видимость 2
Иллюстрация
Использование
Этот инструмент может выполнять два типа анализа видимости в зависимости от значения параметра Тип анализа. При первом типе анализа, который называется FREQUENCY, этот инструмент определяет, какие местоположения на поверхности растра являются видимыми для набора наблюдателей. При типе анализа – OBSERVERS этот инструмент определяет, какие наблюдатели видны из каждого местоположения на поверхности растра.
Этот инструмент может быть ускорен GPU, что означает то, что если графический процессор (GPU) доступен в вашей системе, то он будет использоваться для повышения производительности инструмента.
В настоящее время этот инструмент поддерживает только видеокарту NVIDIA с вычислительными возможностями CUDA 2.0 или OpenCL 1.2 и зависит от того, установлена ли соответствующая видеокарта в вашей системе. Для проверки соответствия вашей системы требованиям этого инструмента, убедитесь, что используете актуальную версию драйвера, посетив страницу обновлений драйвера NVIDIA.
Возможно возникновение ошибки GPU и несрабатывание инструмента, если значение ключа реестра Windows TdrDelay (задержка механизм обнаружения и исправления зависания во время ожидания) будет слишком мало. По умолчанию для TdrDelay установлено значение, равное 2 секундам, но вам может потребоваться увеличить это значение до 60 секунд. На большинстве систем с Windows путь к ключу TdrDelay в Реестре следующий: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers. Если ключ TdrDelay не существует, то его необходимо создать в указанном выше расположении и задать для него большое значение. Вы должны перезагрузить компьютер, чтобы внесенные изменения вступили в силу. Более подробная информация о том, как определить ключ реестра TdrDelay, доступна в разделе Microsoft TDR Registry Keys .
В отличие от других аналогичных инструментов Обоюдная видимость 2 не имеет параметра Коэффициент Z. Для обеспечения правильности выходного растра видимости, присвойте входному растру сфероидальную вертикальную систему координат, если у него ещё её нет.
Видимость для каждого центра ячейки определяется тестом линии взгляда между целью и каждым наблюдателем. Если наблюдатель может видеть цель в центре ячейки, то ячейка считается видимой. Этот инструмент всегда учитывает кривизну Земли при определении видимости.
В выходном растре видимости невидимым ячейкам будет присвоено значение NoData.
Для типа анализа OBSERVERS разрешенное максимальное число входных точек наблюдателей составляет 32.
Если входной растр содержит нежелательные шумы, вызванные погрешностями определений в опорных точках, вы можете выполнить до запуска этого инструмента сглаживание растра с помощью фильтра нижних частот, например с использованием опции Среднее (Mean) функции Фокальная статистика.
Когда возникает необходимость пересчитать входной растр, используется метод Билинейной интерполяции. Пример, когда входной растр может быть пересчитан, – когда выходные система координат, экстент или размер ячеек отличаются от входных.
По умолчанию видимость будет вычисляться по максимальному экстенту входного набора данных. Для повышения производительности рекомендуется явно задать для параметра Внешний радиус максимальное расстояние интереса для анализа. Этот параметр позволит инструменту проводить вычисления только по тем ячейкам, которые находятся в пределах указанного расстояния от наблюдателя.
Можно использовать параметр Метод анализа для управления качеством результата и временем, затраченным на его получение. Метод PERIMETER_SIGHTLINES предназначен для оценочного анализа, т.к. он имеет наивысшую производительность за счет снижения качества выходных данных. Чтобы выходные данные имели высокую точность, используйте метод ALL_SIGHTLINES.
Для более подробной информации о технических аспектах реализации данного инструмента, см. следующий ресурс.
http://support.esri.com/en/knowledgebase/techarticles/detail/42804
См. раздел Параметры среды анализа и Spatial Analyst для получения дополнительной информации о среде геообработки данного инструмента.
Синтаксис
Viewshed2 (in_raster, in_observer_features, {out_agl_raster}, {analysis_type}, {vertical_error}, {out_observer_region_relationship_table}, {refractivity_coefficient}, {surface_offset}, {observer_elevation}, {observer_offset}, {inner_radius}, {inner_radius_is_3d}, {outer_radius}, {outer_radius_is_3d}, {horizontal_start_angle}, {horizontal_end_angle}, {vertical_upper_angle}, {vertical_lower_angle}, {analysis_method})
Параметр | Объяснение | Тип данных |
in_raster | Входной растр поверхности. Тип растра может быть целочисленным или с плавающей точкой. Во время расчета видимости входной растр преобразуется в трёхмерную (3D) геоцентрическую систему координат. Ячейки входного растра со значением NoData не блокируют определение видимости. | Raster Layer |
in_observer_features | Входной класс объектов, который идентифицирует местоположения наблюдателей. Это могут быть точечные, мультиточечные или полилинейные объекты. Во время расчета видимости входной класс объектов трансформируется в трёхмерную (3D) геоцентрическую систему координат. Наблюдатели, находящиеся за пределами экстента растра поверхности или помещённые в ячейки со значением NoData, при расчете будут игнорироваться. | Feature Layer |
out_agl_raster (Дополнительный) | Выходной растр над уровнем поверхности (AGL). AGL создает растр, в котором значение каждой ячейки является минимальной высотой, которая должна быть добавлена к невидимой ячейке, чтобы сделать ее видимой хотя бы для одного наблюдателя. Ячейки, которые уже были видны, в выходном растре будут иметь значение 0. Когда параметр ошибка по вертикали равен нулю, выходной растр AGL является одноканальным. Когда ошибка по вертикали больше нуля, для учета случайных эффектов от входного растра выходной растр AGL создается как трехканальный. В первом канале представлены средние значения, во втором – минимальные значения AGL, а в третьем – максимальные значения AGL. | Raster |
analysis_type (Дополнительный) | Выберите тип анализа видимости, который вы хотите выполнить, определив либо то, как будет видна наблюдателям каждая из ячеек, либо определив наблюдателей, видимых для каждого из местоположений поверхности.
| String |
vertical_error (Дополнительный) | Значение неточности (Среднеквадратическая ошибка или RMSE) в значениях высоты поверхности. Это значение с плавающей точкой, представляющее ожидаемую ошибку входных значений высот. Если данному параметру присваивается значение больше 0, то выходной растр видимости будет представлен значениями с плавающей точкой. В данном случае значение каждой ячейки выходного растра видимости представляет сумму вероятностей того, что ячейка будет видимой для любого из наблюдателей. Этот параметр отключается, когда используется тип анализа OBSERVERS или метод анализа PERIMETER_SIGHTLINES. | Linear unit |
out_observer_region_relationship_table (Дополнительный) | Выходная таблица для выявления регионов, которые видимы для каждого наблюдателя. Данная таблица может быть связана с входным классом объектов-наблюдателей и выходным растром видимости для выявления регионов, видимых для данных наблюдателей. Выходные данные создаются только в том случае, когда типом анализа является OBSERVERS. | Table |
refractivity_coefficient (Дополнительный) | Коэффициент рефракции видимого диапазона света в воздухе. Значение, предлагаемое по умолчанию, равно 0,13. | Double |
surface_offset (Дополнительный) | Это значение определяет вертикальное расстояние (в единицах поверхности), которое должно быть добавлено к z-значению каждой целевой ячейки, в том случае, если этот параметр учитывается в анализе видимости. Его значение должно быть положительным целым числом или числом с плавающей точкой. Это может быть поле во входном наборе данных объектов-наблюдателей или числовое значение. Если для этого параметра задано какое-то значение, то это значение будет применяться для всех наблюдателей. Чтобы задать различные значения для каждого наблюдателя, установите этот параметр на поле во входном наборе данных объектов-наблюдателей. | Linear unit | Field |
observer_elevation (Дополнительный) | Это значение используется для определения высоты точек или вершин наблюдения на поверхности. Это может быть поле во входном наборе данных объектов-наблюдателей или числовое значение. Если этот параметр не будет указан, то высота наблюдателя будет определена по растру поверхности с использованием билинейной интерполяции. Если для этого параметра задано какое-то значение, то это значение будет применяться для всех наблюдателей. Чтобы задать различные значения для каждого наблюдателя, установите этот параметр на поле во входном наборе данных объектов-наблюдателей. | Linear unit | Field |
observer_offset (Дополнительный) | Это значение определяет вертикальное расстояние (в единицах поверхности), которое должно быть добавлено к z-значению высоты наблюдателя. Его значение должно быть положительным целым числом или числом с плавающей точкой. Это может быть поле во входном наборе данных объектов-наблюдателей или числовое значение. Если для этого параметра задано какое-то значение, то это значение будет применяться для всех наблюдателей. Чтобы задать различные значения для каждого наблюдателя, установите этот параметр на поле во входном наборе данных объектов-наблюдателей. | Linear unit | Field |
inner_radius (Дополнительный) | Это значение определяет начальное (минимальное) расстояние, с которого будет определяться видимость. Ячейки на расстоянии ближе указанного считаются невидимыми в выходных данных, но они все еще могут перекрывать видимость ячеек между внутренним радиусом и внешним радиусом. По умолчанию значение равно 0. Это может быть поле во входном наборе данных объектов-наблюдателей или числовое значение. Если для этого параметра установлено некоторое значение, то данное значение будет применяться ко всем наблюдателям. Чтобы задать различные значения для каждого наблюдателя, установите этот параметр на поле во входном наборе данных объектов-наблюдателей. | Linear unit | Field |
inner_radius_is_3d (Дополнительный) | Тип расстояния для параметра внутреннего радиуса.
| Boolean |
outer_radius (Дополнительный) | Это значение определяет максимальное расстояние, от которого определяется видимость. Ячейки за пределами этого радиуса исключаются из анализа. Это может быть поле во входном наборе данных объектов-наблюдателей или числовое значение. Если для этого параметра установлено некоторое значение, то данное значение будет применяться ко всем наблюдателям. Чтобы задать различные значения для каждого наблюдателя, установите этот параметр на поле во входном наборе данных объектов-наблюдателей. | Linear unit | Field |
outer_radius_is_3d (Дополнительный) | Тип расстояния для параметра внешнего радиуса.
| Boolean |
horizontal_start_angle (Дополнительный) | Это значение определяет начальный угол диапазона горизонтального сканирования. Это значение задается в градусах от 0 до 360.0; 0 соответствует направлению на север. По умолчанию значение равно 0. Это может быть поле во входном наборе данных объектов-наблюдателей или числовое значение. Если для этого параметра установлено некоторое значение, то данное значение будет применяться ко всем наблюдателям. Чтобы задать различные значения для каждого наблюдателя, установите этот параметр на поле во входном наборе данных объектов-наблюдателей. | Constant | Field |
horizontal_end_angle (Дополнительный) | Это значение определяет конечный угол диапазона горизонтального сканирования. Это значение задается в градусах от 0 до 360.0; 0 соответствует направлению на север. Значение, предлагаемое по умолчанию, равно 360.0. Это может быть поле во входном наборе данных объектов-наблюдателей или числовое значение. Если для этого параметра установлено некоторое значение, то данное значение будет применяться ко всем наблюдателям. Чтобы задать различные значения для каждого наблюдателя, установите этот параметр на поле во входном наборе данных объектов-наблюдателей. | Constant | Field |
vertical_upper_angle (Дополнительный) | Это значение определяет верхнюю границу вертикального угла сканирования над горизонтальной плоскостью. Это значение задается в градусах от 0 до 90.0, как целочисленное или с плавающей точкой. Значение, предлагаемое по умолчанию, равно 90.0. Это может быть поле во входном наборе данных объектов-наблюдателей или числовое значение. Если для этого параметра установлено некоторое значение, то данное значение будет применяться ко всем наблюдателям. Чтобы задать различные значения для каждого наблюдателя, установите этот параметр на поле во входном наборе данных объектов-наблюдателей. | Constant | Field |
vertical_lower_angle (Дополнительный) | Это значение определяет нижнюю границу вертикального угла сканирования под горизонтальной плоскостью. Это значение задается в градусах от -90.0 до 0 (целочисленными или с плавающей точкой). По умолчанию значение равно -90.0. Это может быть поле во входном наборе данных объектов-наблюдателей или числовое значение. Если для этого параметра установлено некоторое значение, то данное значение будет применяться ко всем наблюдателям. Чтобы задать различные значения для каждого наблюдателя, установите этот параметр на поле во входном наборе данных объектов-наблюдателей. | Constant | Field |
analysis_method (Дополнительный) | Выберите метод, который будет использоваться для расчета видимости. Эта опция позволит вам увеличить производительность в обмен на некоторое снижение точности.
| String |
Возвращаемое значение
Название | Объяснение | Тип данных |
out_raster | Выходной растр. Для типа анализа FREQUENCY, когда параметр вертикальной ошибки равен 0 или не указан, в выходной растр записывается число раз, которое каждое местоположение ячейки входного растра поверхности можно увидеть из входных точек наблюдения. Когда параметр вертикальной ошибки больше 0, в каждую ячейку выходного растра записывается сумма вероятностей того, что ячейка будет видимой для любого из наблюдателей. Для типа анализа OBSERVERS, в выходной растр записываются уникальные ID регионов для видимых областей, которые могут быть связаны обратно с объектами-наблюдателями через выходную таблицу отношений наблюдатель-регион. | Raster |
Пример кода
Viewshed2, пример 1 (окно Python)
Этот пример определяет видимые для ряда наблюдателей местоположения поверхности, не используя никаких параметров наблюдателей.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outViewshed2 = Viewshed2("elevation", "obser1.shp", "", "OBSERVERS", "",
"C:/sapyexamples/output/obstable01.dbf",
analysis_method="ALL_SIGHTLINES")
outViewshed2.save("C:/sapyexamples/output/outvwshd2_01")
Viewshed2, пример 2 (автономный скрипт)
Этот пример определяет видимые для ряда наблюдателей местоположения поверхности, используя атрибуты входного класса объектов в качестве параметров наблюдателей.
# Name: Viewshed2_Ex_02.py
# Description: Determines the raster surface locations visible to a set of
# observer features.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Set environment settings
env.workspace = "C:/sapyexamples/data"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.checkOutExtension("Spatial")
inRaster = "elevation"
inObservers = "obser2.shp"
outAGL = ""
analysisType = "OBSERVERS"
verticalError = ""
outAnalysisRelationTable = "C:/sapyexamples/output/obser_region2.dbf"
refractCoeff = ""
surfaceOffset = "offsetb"
observerElevation = "spot"
observerOffset = "offseta"
innerRadius = "radius1"
innerIs3D = "False"
outerRadius = "radius2"
outerIs3D = "True"
horizStartAngle = "azimuth1"
horizEndAngle = "azimuth2"
vertUpperAngle = "vert1"
vertLowerAngle = "vert2"
analysisMethod = "ALL_SIGHTLINES"
# Execute Viewshed2
outViewshed2 = Viewshed2(inRaster, inObservers, outAGL, analysisType,
verticalError, outAnalysisRelationTable, refractCoeff,
surfaceOffset, observerElevation, observerOffset,
innerRadius, innerIs3D, outerRadius, outerIs3D,
horizStartAngle, horizEndAngle, vertUpperAngle,
vertLowerAngle, analysisMethod)
# Save the output
outViewshed2.save("C:/sapyexamples/output/outvwshd2_02")
Параметры среды
- Автоподтверждение (Auto Commit)
- Размер ячейки (Cell size)
- Сжатие (Compression)
- Текущая рабочая область (Current Workspace)
- Экстент (Extent)
- Географические преобразования (Geographic Transformations)
- Маска (Mask)
- Выходное ключевое слово CONFIG (Output CONFIG Keyword)
- Выходная система координат (Output Coordinate System)
- Коэффициент параллельной обработки (Parallel Processing Factor)
- Статистика растра (Raster Statistics)
- Временная рабочая область (Scratch Workspace)
- Растр привязки (Snap Raster)
- Размер листа (Tile Size)
Информация о лицензиях
- ArcGIS Desktop Basic: Требует Spatial Analyst или 3D Analyst
- ArcGIS Desktop Standard: Требует Spatial Analyst или 3D Analyst
- ArcGIS Desktop Advanced: Требует Spatial Analyst или 3D Analyst