Видимость (Spatial Analyst)

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

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

Краткая информация

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

Инструмент Геодезическая видимость поддерживает улучшенную функциональность или производительность.

Иллюстрация

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

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

  • Инструмент поддерживает два типа анализа видимости, Частота и Наблюдатели, которые выбираются параметром Тип анализа. Для анализа первого типа инструмент определяет, какие местоположения растровой поверхности видимы для набора наблюдателей. Для другого параметра определяется, какие наблюдатели видны из каждого местоположения на поверхности растра.

  • Если входной растр содержит нежелательные шумы, вызванные погрешностями расчета, вы можете выполнить сглаживание растра с помощью фильтра нижних частот, например с использованием опции Среднее функции Фокальная статистика перед запуском инструмента.

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

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

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

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

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

Параметры

ПодписьОписаниеТип данных
Входной растр

Входной растр поверхности.

Raster Layer
Входные точечные или линейные объекты наблюдения

Класс пространственных объектов, который определяет местоположения наблюдения.

Входными данными могут быть точечные или полилинейные объекты.

Feature Layer
Выходные данные - растр выше уровня поверхности
(Дополнительный)

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

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

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

Raster Dataset
Тип анализа
(Дополнительный)

Тип анализа видимости.

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

Значение, присваиваемое невидимым ячейкам.

  • Не отмечено – невидимым ячейкам присваивается 0. Используется по умолчанию.
  • Отмечено – невидимым ячейкам присваивается NoData.
Boolean
Z Коэффициент
(Дополнительный)

Количество наземных единиц измерения координат x,y в одной единице измерения z-значения поверхности.

Коэффициент z (z-factor) приводит в соответствие единицы измерения z-значений в том случае, если они отличаются от единиц измерения координат x,y входной поверхности. При вычислении результирующей выходной поверхности z-значения входной поверхности умножаются на коэффициент по z.

Если координаты x,y и z-значения приведены в одной и той же системе координат, коэффициент z равен 1. Используется по умолчанию.

Если координаты x,y и z-значения приведены в отличающихся единицах измерения, для коэффициента по z должно быть задано соответствующее значение, или же результаты будут некорректными. Например, если единицы измерения для z-значений – футы, а координаты x,y приведены в метрах, для преобразования z-значений из футов в метры вы должны использовать коэффициент по z, равный 0,3048 (1 фут = 0,3048 метра).

Double
Использовать коррекцию кривизны земной поверхности
(Дополнительный)

Задает, следует ли использовать поправку на кривизну земной поверхности.

  • Не отмечено - поправки на кривизну земли учитываться не будут. Используется по умолчанию.
  • Отмечено – поправки на кривизну земли будут учитываться.
Boolean
Коэффициент рефракции
(Дополнительный)

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

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

Double
Смещение поверхности
(Дополнительный)

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

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

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

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

Double; Field
Высота наблюдателя
(Дополнительный)

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

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

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

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

Double; Field
Смещение наблюдателя
(Дополнительный)

Расстояние по вертикали, добавленное к высоте наблюдателя. Должно быть положительным целочисленным значением или значением с плавающей точкой.

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

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

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

Double; Field
Внутренний радиус
(Дополнительный)

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

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

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

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

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

Double; Field
Внешний радиус
(Дополнительный)

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

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

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

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

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

Double; Field
Горизонтальный начальный угол
(Дополнительный)

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

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

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

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

Double; Field
Горизонтальный конечный угол
(Дополнительный)

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

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

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

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

Double; Field
Вертикальный верхний угол
(Дополнительный)

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

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

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

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

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

Double; Field
Вертикальный нижний угол
(Дополнительный)

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

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

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

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

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

Double; Field

Возвращаемое значение

ПодписьОписаниеТип данных
Выходной растр

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

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

Raster

Visibility(in_raster, in_observer_features, {out_agl_raster}, {analysis_type}, {nonvisible_cell_value}, {z_factor}, {curvature_correction}, {refractivity_coefficient}, {surface_offset}, {observer_elevation}, {observer_offset}, {inner_radius}, {outer_radius}, {horizontal_start_angle}, {horizontal_end_angle}, {vertical_upper_angle}, {vertical_lower_angle})
ИмяОписаниеТип данных
in_raster

Входной растр поверхности.

Raster Layer
in_observer_features

Класс пространственных объектов, который определяет местоположения наблюдения.

Входными данными могут быть точечные или полилинейные объекты.

Feature Layer
out_agl_raster
(Дополнительный)

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

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

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

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

Тип анализа видимости.

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

Значение, присваиваемое невидимым ячейкам.

  • ZEROНевидимым ячейкам присваивается 0. Используется по умолчанию.
  • NODATAНевидимым ячейкам присваивается NoData.
Boolean
z_factor
(Дополнительный)

Количество наземных единиц измерения координат x,y в одной единице измерения z-значения поверхности.

Коэффициент z (z-factor) приводит в соответствие единицы измерения z-значений в том случае, если они отличаются от единиц измерения координат x,y входной поверхности. При вычислении результирующей выходной поверхности z-значения входной поверхности умножаются на коэффициент по z.

Если координаты x,y и z-значения приведены в одной и той же системе координат, коэффициент z равен 1. Используется по умолчанию.

Если координаты x,y и z-значения приведены в отличающихся единицах измерения, для коэффициента по z должно быть задано соответствующее значение, или же результаты будут некорректными. Например, если единицы измерения для z-значений – футы, а координаты x,y приведены в метрах, для преобразования z-значений из футов в метры вы должны использовать коэффициент по z, равный 0,3048 (1 фут = 0,3048 метра).

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

Задает, следует ли использовать поправку на кривизну земной поверхности.

  • FLAT_EARTHПоправки на кривизну земли учитываться не будут. Используется по умолчанию.
  • CURVED_EARTHПоправки на кривизну земли будут применяться.
Boolean
refractivity_coefficient
(Дополнительный)

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

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

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

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

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

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

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

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

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

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

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

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

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

Расстояние по вертикали, добавленное к высоте наблюдателя. Должно быть положительным целочисленным значением или значением с плавающей точкой.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Double; Field

Возвращаемое значение

ИмяОписаниеТип данных
out_raster

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

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

Raster

Пример кода

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

В этом примере определяются местоположения поверхности, видимые для набора наблюдателей, заданного с помощью шейп-файла.

import arcpy
from arcpy import env
from arcpy.sa import *

env.workspace = "c:/sapyexamples/data"

outvis = arcpy.sa.Visibility("elevation", "observers.shp", "c:/sapyexamples/output/aglout1",
                            "FREQUENCY", "NODATA", "1", "CURVED_EARTH", "0.13",
                            "OFFSETB", "SPOT", "OFFSETA", "RADIUS1", "RADIUS2",
                            "AZIMUTH1", "AZIMUTH2", "VERT1", "VERT2")

outvis.save("c:/sapyexamples/output/visiout1")
Visibility, пример 2 (автономный скрипт)

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

# Name: Visibility_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"

# set local variables
inRaster = "elevation"
inObserverFeatures = "observers.shp"
aglOutput = "c:/sapyexamples/output/aglout1"
analysisType = "OBSERVERS"
nonVisibleValue = "ZERO"
zFactor = 1
useEarthCurvature = "CURVED_EARTH"
refractivityCoefficient = 0.13
surfaceOffset = 500
observerElevation = 2000
observerOffset = 500
innerRadius = 20000
outerRadius = 100000
horizStartAngle = 45
horizEndAngle = 215
vertUpperAngle = 5
vertLowerAngle = -5

# Execute Visibility
outvis = arcpy.sa.Visibility(inRaster, inObserverFeatures, algOutput, analysisType,
                            nonVisibleValue, zFactor, useEarthCurvature,
                            refractivityCoefficient, surfaceOffset, observerElevation,
                            observerOffset, innerRadius, outerRadius, horizStartAngle,
                            horizEndAngle, vertUpperAngle, vertLowerAngle)

# Save the output
outvis.save("c:/sapyexamples/output/visiout1")