Обоюдная видимость 2 (3D Analyst)

Доступно с лицензией Spatial Analyst.

Доступно с лицензией 3D Analyst.

Сводка

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

Более подробно о том, как работает инструмент Обоюдная видимость 2

Иллюстрация

Иллюстрация инструмента Обоюдная видимость 2 с включенной опцией Частота
Выходные данные инструмента Обоюдная видимость 2 с включенной опцией Частота, отображенные на высотной поверхности с отмывкой рельефа.
Иллюстрация инструмента Обоюдная видимость 2
Выходные данные инструмента Обоюдная видимость 2 с включенной опцией Наблюдатели, отображенные на высотной поверхности с отмывкой рельефа.

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

  • Этот инструмент выполняет два типа анализа видимости: Частота и Наблюдатели, которые можно задать при помощи параметра Тип анализа.

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

  • Для Обоюдной видимости 2 не нужен параметр z-коэффициент. Z-коэффициент будет вычислен внутренне при помощи вертикальных единиц измерения (Z) и единиц измерения карты (XY) из пространственной привязки входного растра.

  • Входные растры, которые содержат шум, обычно видимый в данных высокого разрешения, могут привести к некоторым неожидаемым результатам. Перед запуском инструмента можно скорректировать данные на этапе предварительной обработки. Если доступен дополнительный модуль ArcGIS Spatial Analyst, можно сгладить эффект от ошибки, применив инструмент Фокальная статистика или Фильтр до выполнения операции видимости.

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

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

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

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

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

  • Поле, указанное для параметра наблюдателя: Смещение поверхности или Смещение наблюдателя, может быть строкового типа и содержать числовые значения и единицы измерения. Например, если поле obs_height указано для Смещения наблюдателя, то оно может содержать значения типа '6 Feet'.

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

    Примеры входных строк для Смещения наблюдателяИспользуемые линейные единицы

    ' ' или '#'

    Использованы значение и единицы измерения по умолчанию, 1 метр.

    '6'

    Смещение наблюдателя равно 6, и так как единицы измерения не указаны, инструмент будет использовать единицы по умолчанию – метры.

    '6 Feet'

    Смещение наблюдателя равно 6 футам.

    '6 Unknown'

    Смещение наблюдателя равно 6, и так как единицы измерения не указаны, инструмент будет использовать единицы по умолчанию – метры.

    Примеры входных строк и линейных единиц измерения
  • Этот инструмент будет автоматически использовать преимущества GPU (Графического процессора) для улучшения производительности, если GPU есть в вашей системе, и он корректно настроен.

    Более подробно о том, как настроить устройство GPU, читайте в статье справки по дополнительному модулю Spatial Analyst Работа GPU с Spatial Analyst.

  • Если вы не хотите, чтобы инструмент использовал преимущества устройств GPU, установленных в вашей системе, создайте переменную системного окружения CUDA_VISIBLE_DEVICES, установите ее значение как -1 и перезапустите приложение. После этого инструмент будет выполняться только за счет CPU. Чтобы позволить инструменту снова использовать устройства GPU, удалите переменную системного окружения CUDA_VISIBLE_DEVICES или задайте для нее индексное значение (0 – для первого, 1 – для второго и т.д.) устройства GPU, которое хотите использовать, и перезапустите приложение.

Синтаксис

Viewshed2(in_raster, in_observer_features, out_raster, {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})
ParameterОбъяснениеТип данных
in_raster

Входной растр поверхности. Тип растра может быть целочисленным или с плавающей точкой.

Во время расчета видимости входной растр преобразуется в трёхмерную (3D) геоцентрическую систему координат. Ячейки входного растра со значением NoData не блокируют определение видимости.

Raster Layer
in_observer_features

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

Во время расчета видимости входной класс объектов трансформируется в трёхмерную (3D) геоцентрическую систему координат. Наблюдатели, находящиеся за пределами экстента растра поверхности или помещённые в ячейки со значением NoData, при расчете будут игнорироваться.

Feature Layer
out_raster

Выходной растр.

Для типа анализа Частота, когда параметр вертикальной ошибки равен 0 или не указан, в выходной растр записывается число раз, которое каждое местоположение ячейки входного растра поверхности можно увидеть из входных точек наблюдения. Когда параметр вертикальной ошибки больше 0, в каждую ячейку выходного растра записывается сумма вероятностей того, что ячейка будет видимой для любого из наблюдателей. Для типа анализа Наблюдатели, в выходной растр записываются уникальные ID регионов для видимых областей, которые могут быть связаны обратно с объектами-наблюдателями через выходную таблицу отношений наблюдатель-регион.

Raster Dataset
out_agl_raster
(Дополнительный)

Выходной растр над уровнем поверхности (AGL).

AGL создает растр, в котором значение каждой ячейки является минимальной высотой, которая должна быть добавлена к невидимой ячейке, чтобы сделать ее видимой хотя бы для одного наблюдателя. Ячейки, которые уже были видны, в выходном растре будут иметь значение 0.

Когда параметр ошибка по вертикали равен нулю, выходной растр AGL является одноканальным. Когда ошибка по вертикали больше нуля, для учета случайных эффектов от входного растра выходной растр AGL создается как трехканальный. В первом канале представлены средние значения , во втором – минимальные значения AGL, а в третьем – максимальные значения AGL.

Raster Dataset
analysis_type
(Дополнительный)

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

  • FREQUENCYВ выходных данных будет записано число, соответствующее числу наблюдений каждого местоположения ячейки входного растра из входных местоположений объектов-наблюдателей (точек или вершин полилинейных объектов наблюдения). Используется по умолчанию.
  • OBSERVERSВыходные данные определяют, какие точки наблюдения видны из каждого положения на поверхности растра. Для данного типа анализа максимально допустимое число входных наблюдателей составляет 32.
String
vertical_error
(Дополнительный)

Значение неточности (Среднеквадратическая ошибка или RMSE) в значениях высоты поверхности. Это значение с плавающей точкой, представляющее ожидаемую ошибку входных значений высот. Если данному параметру присваивается значение больше 0, то выходной растр видимости будет представлен значениями с плавающей точкой. В данном случае значение каждой ячейки выходного растра видимости представляет сумму вероятностей того, что ячейка будет видимой для любого из наблюдателей.

Этот параметр отключается, когда используется тип анализа Наблюдатели или метод анализа Линии визирования по периметру.

Linear Unit
out_observer_region_relationship_table
(Дополнительный)

Выходная таблица для выявления регионов, которые видимы для каждого наблюдателя. Данная таблица может быть связана с входным классом объектов-наблюдателей и выходным растром видимости для выявления регионов, видимых для данных наблюдателей.

Выходные данные создаются только в том случае, когда типом анализа является Наблюдатели.

Table
refractivity_coefficient
(Дополнительный)

Коэффициент рефракции видимого диапазона света в воздухе.

Значение, предлагаемое по умолчанию, равно 0,13.

Double
surface_offset
(Дополнительный)

Это значение определяет вертикальное расстояние, которое должно быть добавлено к z-значению каждой ячейки, в том случае, если этот параметр учитывается в анализе видимости. Его значение должно быть положительным целым числом или числом с плавающей точкой.

Вы можете выбрать поле во входном наборе данных объектов - наблюдателей или указать числовое значение.

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

По умолчанию значение равно 0.

Linear Unit; Field
observer_elevation
(Дополнительный)

Это значение используется для определения высоты точек или вершин наблюдения на поверхности.

Вы можете выбрать поле во входном наборе данных объектов - наблюдателей или указать числовое значение.

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

Linear Unit; Field
observer_offset
(Дополнительный)

Это значение определяет вертикальное расстояние, которое должно быть добавлено к z-значению высоты наблюдателя. Его значение должно быть положительным целым числом или числом с плавающей точкой.

Вы можете выбрать поле во входном наборе данных объектов - наблюдателей или указать числовое значение.

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

Значение по умолчанию: 1 метр.

Linear Unit; Field
inner_radius
(Дополнительный)

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

Вы можете выбрать поле во входном наборе данных объектов - наблюдателей или указать числовое значение.

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

По умолчанию значение равно 0.

Linear Unit; Field
inner_radius_is_3d
(Дополнительный)

Тип расстояния для параметра внутреннего радиуса.

  • GROUNDВнутренний радиус интерпретируется как 2D-расстояние. Используется по умолчанию.
  • 3DВнутренний радиус интерпретируется как 3D-расстояние.
Boolean
outer_radius
(Дополнительный)

Это значение определяет максимальное расстояние, от которого определяется видимость. Ячейки за пределами этого радиуса исключаются из анализа.

Вы можете выбрать поле во входном наборе данных объектов - наблюдателей или указать числовое значение.

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

Linear Unit; Field
outer_radius_is_3d
(Дополнительный)

Тип расстояния для параметра внешнего радиуса.

  • GROUNDВнешний радиус интерпретируется как 2D-расстояние. Используется по умолчанию.
  • 3DВнешний радиус интерпретируется как 3D-расстояние.
Boolean
horizontal_start_angle
(Дополнительный)

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

Вы можете выбрать поле во входном наборе данных объектов - наблюдателей или указать числовое значение.

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

Double; Field
horizontal_end_angle
(Дополнительный)

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

Вы можете выбрать поле во входном наборе данных объектов - наблюдателей или указать числовое значение.

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

Double; Field
vertical_upper_angle
(Дополнительный)

Это значение определяет верхнюю границу вертикального угла сканирования относительно горизонтальной плоскости. Это значение задается в градусах, целочисленными или с плавающей точкой. Допустимый диапазон от -90 и до 90 (крайнее значение включено).

Значение этого параметра должно быть больше, чем значение параметра Вертикальный нижний угол.

Вы можете выбрать поле во входном наборе данных объектов - наблюдателей или указать числовое значение.

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

Значение по умолчанию - 90 (прямо вверх).

Double; Field
vertical_lower_angle
(Дополнительный)

Это значение определяет нижнюю границу вертикального угла сканирования относительно горизонтальной плоскости. Это значение задается в градусах, целочисленными или с плавающей точкой. Допустимый диапазон от -90 и до 90 (крайнее значение исключено).

Значение этого параметра должно быть меньше, чем значение параметра Вертикальный верхний угол.

Вы можете выбрать поле во входном наборе данных объектов - наблюдателей или указать числовое значение.

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

Значение по умолчанию: -90 (прямо вниз)

Double; Field
analysis_method
(Дополнительный)

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

  • ALL_SIGHTLINESДля определения видимых областей линия визирования применяется ко всем ячейкам растра. Этот метод используется по умолчанию.
  • PERIMETER_SIGHTLINESДля того, чтобы установить области видимости, линии визирования применяются только к ячейкам по периметру видимых областей. Этот метод считается более эффективным по сравнению с методом Все линии визирования, поскольку в расчете используется меньшее число линий визирования.
String

Пример кода

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

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

import arcpy
from arcpy import env
env.workspace = "C:/data"
result = arcpy.Viewshed2_3d("elevation", "obser1.shp", "C:/output/outvwshd01",
                            "", "OBSERVERS", "", "C:/output/obstable01.dbf")
Viewshed2, пример 2 (автономный скрипт)

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

# Name: Viewshed_3d_Ex_02.py
# Description: Determines the raster surface locations visible to a set of
#              observer features.
# Requirements: 3D Analyst Extension

# Import system modules
import arcpy
from arcpy import env

# Set environment settings
env.workspace = "C:/data"


parmSurface = "elevation"
parmObservers = "obser2.shp"
parmOutput = "c:/output/outvshd02"
parmAGL = ""
parmAnalysisType="OBSERVERS"
parmVerticalError = ""
parmAnalysisRelationTable = "C:/output/obser_region2.dbf"
parmRefractCoeff = ""
parmSurfaceOffset = "offsetb"
parmObserverElevation="spot"
parm_ObserverOffset="offseta"
parmInnerRadius = "radius1"
parmInnerIs3D="False"
parmOuterRadius = "radius2"
parmOuterIs3D="True"
parmAz1 = "azimuth1"
parmAz2 = "azimuth2"
parmVert1 = "vert1"
parmVert2 = "vert2"

# Execute Viewshed2
result = arcpy.Viewshed2_3d(parmSurface, parmObservers, parmOutput, parmAGL,
parmAnalysisType, parmVerticalError, parmAnalysisRelationTable,
parmRefractCoeff, parmSurfaceOffset, parmObserverElevation,
parm_ObserverOffset,parmInnerRadius, parmInnerIs3D, parmOuterRadius,
parmOuterIs3D, parmAz1, parmAz2, parmVert1, parmVert2)

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

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

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