Как работает инструмент Отмывка

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

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

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

По умолчанию, тень и свет – это оттенки серого, связанные с целыми числами от 0 до 255 (возрастающие от черного к белому).

Параметры отмывки

Главным фактором при создании карты отмывки для конкретного местоположения является расположение солнца на небе.

Азимут

Азимут – это угловое направление на солнце, измеренное по часовой стрелке с севера в градусах от 0 до 360. Азимут 90 градусов – направление на восток. Азимут по умолчанию – 315 градусов (NW).

Азимут (направление) солнца для отмывки по умолчанию – 315º
Азимут (направление) солнца для отмывки по умолчанию – 315º

Высота

Высота - это подъем или угол источника света над горизонтом. Единицы – в градусах, от 0 (на горизонте) до 90 (над головой). Значение по умолчанию равно 45 градусам.

Высота солнца по умолчанию для отмывки – 45
Высота солнца для отмывки по умолчанию – 45º

Пример Отмывки

В примере отмывки ниже азимут равен 315 градусам, а высота – 45 градусам.

Пример выходных данных инструмента Отмывка
Пример выходных данных инструмента Отмывка

Использование отмывки для отображения

Помещая растр высот поверх растра отмывки и настраивая прозрачность с помощью бегунка Прозрачность слоя на вкладке Оформление растра высот, вы легко можете создать визуально привлекательную карту рельефа ландшафта.

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

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

Использование отмывки в анализе

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

Моделируя тень, вы можете определить каждую ячейку, которая будет в тени другой ячейки в определенное время дня. Ячейкам в тени другой ячейки дается код 0; всем другим ячейкам дается код целого числа от 1 до 255. Вы можете переклассифицировать все значения, которые больше 1, в 1, создавая бинарный выходной растр. В примере ниже черные области – в тени. Азимут одинаковый на каждом изображении, но высота солнца была изменена.

Тени при небольшой высоте солнца
Тени при небольшой высоте солнца
Тени при большой высоте солнца
Тени при большой высоте солнца

Как вычисляется отмывка

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

Алгоритм отмывки

Применяется следующий алгоритм вычисления значения отмывки:

(1)  Hillshade = 255.0 * ((cos(Zenith_rad) * cos(Slope_rad)) +
                 (sin(Zenith_rad) * sin(Slope_rad) * cos(Azimuth_rad - Aspect_rad)))

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

Вычисление положения источника света

Высота источника света задается в градусах над горизонтом. Однако для формулы вычисления значения отмывки необходимо, чтобы угол был выражен в радианах и было известно отклонение от вертикали. Направление непосредственно вверх от поверхности (прямо над головой) обозначается как 'Зенит'. Угол зенита измеряется от точки зенита до направления на источник света и в сумме с углом высоты образует 90 градусов. Чтобы вычислить угол положения источника света, в качестве первого шага необходимо преобразовать угол высоты в угол зенита. Второй шаг – это преобразование угла в радианы.

Замените угол высоты на угол зенита:

(2)  Zenith_deg = 90 - Altitude

Преобразуйте градусы в радианы:

(3)  Zenith_rad = Zenith_deg * pi / 180.0

Вычисление направления освещения

Направление положения источника света или азимут, задается в градусах. Формула вычисления отмывки предполагает, что угол выражен в радианах. Сначала угол азимута меняется с географических единиц измерения (компасного направления) на математические единицы (правый угол). Далее, угол азимута переводится из градусов в радианы.

Измените измерение угла азимута:

(4)  Azimuth_math = 360.0 - Azimuth + 90

Обратите внимание, что если Azimuth_math >= 360,0, то:

(5)  Azimuth_math = Azimuth_math - 360.0

Преобразуйте градусы в радианы:

(6)  Azimuth_rad = Azimuth_math * pi / 180.0

Вычисление уклона и экспозиции

Движущееся окно размером 3 x 3 ячейки проходит через каждую ячейку на входном растре и для каждой ячейки на входном растре в центре окна с использованием алгоритма, который учитывает значения восьми соседних ячеек, вычисляются значения уклонов и экспозиции. Ячейки обозначаются буквами от 'a' до 'i, при этом буква 'e' представляет ячейку, для которой вычисляется значение экспозиции.

Степень изменения по направлению x для ячейки 'e' вычисляется с помощью следующего алгоритма:

(7)  [dz/dx] = ((с + 2f + i) - (a + 2d + g)) / (8 * cellsize)

Степень изменения по направлению y для ячейки 'e' вычисляется с помощью следующего алгоритма:

(8)  [dz/dy] = ((g + 2h + i) - (a + 2b + с)) / (8 * cellsize)

Уклон – это самый крутой спуск из каждой ячейки на поверхности. Алгоритм вычисления уклона в радианах, учитывающий коэффициент по z, следующий:

(9)  Slope_rad = ATAN (z_factor * √ ([dz/dx]2 + [dz/dy]2)) 

Экспозиция – это направление самого крутого спуска по поверхности. Экспозиция в радианах определяется в диапазоне от 0 до 2pi, при этом значение 0 соответствует направлению на восток. Экспозиция определяется по правилам следующего алгоритма:

(10)  If [dz/dx] is non-zero:
    Aspect_rad = atan2 ([dz/dy], -[dz/dx])      if Aspect_rad < 0 then        Aspect_rad = 2 * pi + Aspect_rad  If [dz/dx] is zero:
    if [dz/dy] > 0 then      Aspect_rad = pi / 2    else if [dz/dy] < 0 then      Aspect_rad = 2 * pi - pi / 2    else      Aspect_rad = Aspect_rad

Пример вычисления отмывки рельефа

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

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

Размер ячейки равен 5 единицам измерения. По умолчанию используются значения Высоты, равной 45 градусам и Азимута, равного 315 градусам.

  • Угол положения источника света

    Угол Зенита будет вычислен с использованием уравнения 2:

    (2)  Zenith_deg = 90 - Altitude                = 90 - 45                = 45

    И преобразован из градусов в радианы с использованием уравнения 3:

    (3)  Zenith_rad = Zenith_deg * pi / 180.0                = 45 * 3.1428571429 / 180                = 0.7857142857

  • Направление положения источника света

    Угол азимута будет преобразован из географического в математический с помощью уравнения 4:

    (4)  Azimuth_math = 360.0 - Azimuth + 90                = 360.0 - 315 + 90                = 135                = 2.3571428571

    Преобразование угла азимута в радианы выполняется с использованием уравнения 6:

    (6)  Azimuth_rad = Azimuth_math * pi / 180.0                = 135 * 3.1438571429 / 180

  • Уклон и экспозиция

    Степень изменения в направлении x для центральной ячейки 'e' выполняется следующим образом:

    (7)  [dz/dx] = ((с + 2f + i) - (a + 2d + g)) / (8 * cellsize)             = ((2483 + 4966 + 2477) - (2450 + 4904 + 2447)) / (8 * 5)             = (9926 - 9801)/ 40             = 3.125

    Степень изменения в направлении y для центральной ячейки 'e' выполняется следующим образом:

    (8)  [dz/dy] = ((g + 2h + i) - (a + 2b + с)) / (8 * cellsize)             = (2447 + 4910 + 2477) - (2450 + 4922 + 2483) / (8 * 5)             = (9834 - 9855) / 40             = -0.525

    Вычисление угла уклона:

    (9)  Slope_rad = ATAN ( z_factor * √ ([dz/dx]2 + [dz/dy]2))               = atan(1 * sqrt(3.125 * 3.125 + -0.525 * -0.525))               = 1.26511

    Вычисление угла экспозиции в радианах Aspect_rad в соответствии с правилом 10 выполняется следующим образом: (т. к. dz/dx в этом примере не равно 0):

      Aspect_rad = atan2 ([dz/dy], -[dz/dx])             = atan2(-0.525, -3.125)             = -2.9751469600412

    Поскольку это значение меньше 0, эта часть правила применяется следующим образом:

      Aspect_rad = 2 * pi + Aspect_rad             = 2 * 3.1428571429 + -2.9751469600412             = 3.310567

  • Отмывка

    Окончательное вычисление отмывки выполняется следующим образом:

    HHillshade = 255.0 * ((cos(Zenith_rad) * cos(Slope_rad)) +              (sin(Zenith_rad) * sin(Slope_rad) * cos(Azimuth_rad - Aspect_rad)))
              = 255.0 * ((cos(0.7857142857) * cos(1.26511)) +
                 (sin(0.7857142857) * sin(1.26511) * cos(2.3571428571 - 3.310567)))
              = 153.82

Поскольку выходной растр имеет целочисленный тип, значение затенения для центральной ячейки e = 154.

Справочная информация

Burrough, P. A., and McDonell, R. A., 1998. Principles of Geographical Information Systems (Oxford University Press, New York), 190 pp.

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