Как работает инструмент Уклон (Slope)
Для каждой ячейки инструмент Уклон (Slope) вычисляет максимальную степень изменения в значении z между конкретной ячейкой и соседними с ней ячейками. По сути, максимальная степень изменения в значениях высоты на единицу расстояния между ячейкой и восемью соседними с ней ячейками определяет самый крутой спуск вниз по склону из ячейки.
Концептуально, инструмент подбирает плоскость для z-значений из окрестности размером 3 x 3 ячейки вокруг обрабатываемой или центральной ячейки. Значение уклона этой плоскости вычисляется с использованием методики усредненного максимума (см. Литература). Направление плоских граней является экспозицией обрабатываемой ячейки. Чем ниже значение уклона, тем более плоской является земная поверхность; чем выше значение уклона, тем более крутые склоны расположены на поверхности.
Если в окрестности есть ячейка с z-значением, равным NoData, этому местоположению будет присвоено z-значение центральной ячейки. На краю растра, по крайней мере три ячейки (за пределами экстента растра) в качестве z-значения будут иметь значение NoData. Этим ячейкам будет присвоено z-значение центральной ячейки. Результатом этой операции будет уплощение плоскости размером 3 x 3 ячейки, подобранной для этих краевых ячеек, что обычно приводит к уменьшению уклонов.
Выходной растр уклонов может быть вычислен в двух различных единицах измерения, в градусах или в процентах ('процент подъема'). Процент подъема можно лучше понять, если вы рассматриваете его как подъем, деленный на пробег (спуск), умноженный на 100. Рассмотрим треугольник B на рисунке внизу. Когда угол равен 45 градусам, подъем равен пробегу (спуску), а процент подъема равен 100 процентам. По мере того, как угол наклона приближается к вертикальному (90 градусов), как в треугольнике C, процент подъема стремится к бесконечности.
Инструмент Уклон (Slope) чаще всего работает с набором данных высот, как показано на следующей диаграмме. Более крутые уклоны заштрихованы красным на выходном растре уклона.
Инструмент также может использоваться с другими типами непрерывных данных, например, численность населения, для выявления резких изменений значения.
Алгоритм инструмента Уклон
Уклон определяет степень изменения (дельту) поверхности в горизонтальном (dz/dx) и вертикальном (dz/dy) направлениях из центральной ячейки. Базовый алгоритм, используемый для вычисления уклона:
slope_radians = ATAN ( √ ([dz/dx]2 + [dz/dy]2) )
Уклон обычно измеряется в градусах, используя алгоритм:
slope_degrees = ATAN ( √ ([dz/dx]2 + [dz/dy]2) ) * 57.29578
Показанное здесь значение 57,29578 — это обрезанная версия результата операции 180/pi.
Алгоритм уклона может быть проинтерпретирован также следующим образом:
slope_degrees = ATAN (rise_run) * 57.29578
- где:
rise_run = √ ([dz/dx]2 + [dz/dy]2]
Горизонтальную и вертикальную дельты определяют значения центральной ячейки и восьми соседних с ней ячеек. Соседние ячейки обозначаются буквами от 'a' до 'i', при этом буква 'e' обозначает ячейку, для которой вычисляется уклон.
Степень изменения по направлению x для ячейки 'e' вычисляется с помощью следующего алгоритма:
[dz/dx] = ((c + 2f + i) - (a + 2d + g) / (8 * x_cellsize)
Степень изменения по направлению y для ячейки 'e' вычисляется с помощью следующего алгоритма:
[dz/dy] = ((g + 2h + i) - (a + 2b + c)) / (8 * y_cellsize)
Пример вычисления уклона
В качестве примера будет вычислено значение уклона центральной ячейки скользящего окна.
Размер ячейки равен 5 единицам измерения. Будет использовано применяемое по умолчанию измерение уклона в градусах.
Степень изменения для центральной ячейки 'e' по направлению x:
[dz/dx] = ((c + 2f + i) - (a + 2d + g) / (8 * x_cellsize) = ((50 + 60 + 10) - (50 + 60 + 8)) / (8 * 5) = (120 - 118) / 40 = 0.05
Степень изменения для центральной ячейки 'e' по направлению y:
[dz/dy] = ((g + 2h + i) - (a + 2b + c)) / (8 * y_cellsize) = ((8 + 20 + 10) - (50 + 90 + 50)) / (8 * 5) = (38 - 190 ) / 40 = -3.8
Учитывая степень изменения в направлении x и y, уклон для центральной ячейки 'e' вычисляется с использованием следующего алгоритма
rise_run = √ ([dz/dx]2 + [dz/dy]2) = √ ((0.05)2 + (-3.8)2) = √ (0.0025 + 14.44) = 3.80032
slope_degrees = ATAN (rise_run) * 57.29578 = ATAN (3.80032) * 57.29578 = 1.31349 * 57.29578 = 75.25762
Целочисленное значение уклона для ячейки 'e' составляет 75 градусов.
Литература
Burrough, P. A., and McDonell, R. A., 1998. Principles of Geographical Information Systems (Oxford University Press, New York), 190 pp.