Skip to main content

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

Доступно с лицензией 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, создавая бинарный выходной растр. В примере ниже черные области — в тени. Азимут одинаковый на каждом изображении, но угол (высота) солнца изменена.

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

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

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

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

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

\[ \begin{align*} Hillshade &= 255.0 * ((\mathrm{cos}(Zenith_{rad}) * \mathrm{cos}( Slope_{rad} )) + \ & \quad (\mathrm{sin}(Zenith_{rad}) * \mathrm{sin}(Slope_{rad}) * \mathrm{cos}(Azimuth_{rad} - Aspect_{rad}))) \end{align*} \]

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

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

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

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

\(Zenith_{deg} = 90.0 - Altitude \quad \quad (2)\)

Конвертировать в радианы:

\(Zenith_{rad} = Zenith_{deg} * \pi / 180.0 \quad \quad (3)\)

Вычислить направление источника света

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

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

\(Azimuth_{math} = 360.0 - Azimuth + 90.0 \quad \quad (4)\)

Обратите внимание, что если \(Azimuth_{math}\) >= 360.0, то истинно нижеследующее:

\(Azimuth_{math} = Azimuth_{math} - 360.0 \quad \quad (5)\)

Конвертировать в радианы:

\(Azimuth_{rad} = Azimuth_{math} * \pi / 180.0 \quad \quad (6)\)

Вычислить уклон и экспозицию

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

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

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

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

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

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

\(Slope_{rad} = \arctan (z_factor * √ ([dz/dx]^2 + [dz/dy]^2)) \quad \quad (9)\)

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

\[ \begin{align*} & \mathrm{If \space} [dz/dx] \mathrm{\space is \space non-zero:} \ & \quad Aspect_{rad} = \mathrm{atan2} ([dz/dy], -[dz/dx]) \ & \quad \quad \mathrm{If \space} Aspect_{rad} < 0 \mathrm{\space then:} \ & \quad \quad \quad Aspect_{rad} = 2 * \pi + Aspect_{rad} \ & \mathrm{If \space} [dz/dx] \mathrm{\space is \space zero:} \ & \quad \mathrm{If \space} [dz/dy] > 0 \mathrm{\space then:} \ & \quad \quad Aspect_{rad} = \pi / 2 \ & \quad \mathrm{Else \space If \space} [dz/dy] < 0 \mathrm{\space then:} \ & \quad \quad Aspect_{rad} = 2 * \pi - \pi / 2 \ & \quad \mathrm{Else:} \ & \quad \quad Aspect_{rad} = Aspect_{rad} \end{align*} \]

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

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

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

Размер ячейки равен 5 единицам измерения. По умолчанию используются значение \(Altitude\), равное 45 градусам, и значение \(Azimuth\), равное 315 градусам.

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

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

\[ \begin{align*} Zenith_{deg} &= 90.0 - Altitude \ &= 90.0 - 45.0 \ &= 45.0 \end{align*} \]

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

\[ \begin{align*} Zenith_{rad} &= Zenith_{deg} * \pi / 180.0 \ &= 45.0 * 3.1415926536 / 180.0 \ &= 0.7853981634 \end{align*} \]

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

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

\[ \begin{align*} {Azimuth_{math}} &= 360.0 - {Azimuth} + 90.0 \ &= 360.0 - 315.0 + 90.0 \ &= 135.0 \end{align*} \]

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

\[ \begin{align*} Azimuth_{rad} &= Azimuth_{math} * \pi / 180.0 \ &= 135.0 * 3.1415926536 / 180 \ &= 2.3561944902 \end{align*} \]

Уклон и угол

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

\[ \begin{align*} [dz/dx] &= (( {c} + 2 {f} + {i} ) - ( {a} + 2 {d} + {g} )) / (8 * {cellsize} ) \ &= ((2483 + 4966 + 2477) - (2450 + 4904 + 2447)) / (8 * 5) \ &= (9926 - 9801) / 40 \ &= 3.125 \end{align*} \]

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

\[ \begin{align*} [dz/dy] &= ( (g + 2h + i) - (a + 2b + c)) / (8 * cellsize) \ &= (2447 + 4910 + 2477) - (2450 + 4922 + 2483) / (8 * 5) \ &= (9834 - 9855) / 40 \ &= -0.525 \end{align*} \]

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

\[ \begin{align*} Slope_{rad} &= \arctan (z_factor * √ ([dz/dx]^2 + [dz/dy]^2)) \ &= \arctan(1 * sqrt((3.125 * 3.125) + (-0.525 * -0.525))) \ &= \arctan(1 * sqrt(10.04125 + 0.275625)) \ &= \arctan(1 * 3.1687931457) \ &= 1.2651101670 \end{align*} \]

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

\[ \begin{align*} Aspect_{rad} &= \arctan2 ([dz/dy], -[dz/dx]) \ &= \arctan2(-0.525, -3.125) \ &= -2.9751469600 \end{align*} \]

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

\[ \begin{align*} Aspect_{rad} &= 2 * \pi + Aspect_{rad} \ &= 2 * 3.1415926536 + -2.9751469600 \ &= 3.3080383471 \end{align*} \]

Отмывка

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

\[ \begin{align*} Hillshade &= 255.0 * ((\mathrm{cos}(Zenith_{rad}) * \mathrm{cos}(Slope_{rad})) + (\mathrm{sin}(Zenith_{rad}) * \mathrm{sin}(Slope_{rad}) * \mathrm{cos}(Azimuth_{rad} - Aspect_{rad}))) \ &= 255.0 * ((\mathrm{cos}(0.7857142857) * \mathrm{cos}(1.26511)) + (\mathrm{sin}(0.7857142857) * \mathrm{sin}(1.26511) * \mathrm{cos}(2.3571428571 - 3.310567))) \ &= 153.82 \end{align*} \]

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

Литература

Burrough, P. A., and R. A. McDonell. 1998. Principles of Geographical Information Systems. New York: Oxford University Press.