Вычисление градиента, уклона и аспекта из регулярной сетки данных

В этом примере показано, как вычислить градиент, уклон и аспект для регулярной сетки данных. Компоненты градиента являются изменением переменной сетки на метр расстояния в северном и восточном направлениях. Наклон определяется как разница в вертикальном положении на модуль расстояния вдоль пути наискорейшего подъёма или спуска от камеры сетки до одного из восьми ее ближайших соседей, выраженное как арктангенс. Если сетка содержит повышения в метрах, то аспектом и уклоном являются углы поверхности, нормальные по часовой стрелке с севера и вверх от горизонтали. The gradientm функция использует подход с конечной разностью для вычисления градиентов для регулярной или географической сетки данных. Функция возвращает компоненты градиента в северном и восточном направлениях (т.е. с севера на юг, с востока на запад), а также склон и аспект. По умолчанию углы указаны в единицах степеней.

Создайте сетку 100 на 100 с помощью peaks и создайте для него матрицу привязки.

datagrid = 500*peaks(100);
gridrv = [1000 0 0];

Сгенерировать сетки, содержащие аспект, уклон, градиенты к северу и градиенты к востоку.

[aspect,slope,gradN,gradE] = gradientm(datagrid,gridrv);

Отобразите данные поверхности в цилиндрической проекции равной площади. Начнем с исходных повышений.

axesm eqacyl
meshm(datagrid,gridrv)
colormap (jet(64))
colorbar('vert')
title('Peaks:  elevation')
axis square

Figure contains an axes. The axes with title Peaks: elevation contains an object of type surface.

Очистить систему координат и отобразить сетку уклона.

clma
meshm(slope,gridrv)
colorbar('vert');
title('Peaks: slope')

Figure contains an axes. The axes with title Peaks: slope contains an object of type surface.

Сопоставьте сетку аспектов.

clma
meshm(aspect,gridrv)
colorbar('vert');
title('Peaks: aspect')

Figure contains an axes. The axes with title Peaks: aspect contains an object of type surface.

Отобразите градиенты на севере.

clma
meshm(gradN,gridrv)
colorbar('vert');
title('Peaks: North gradient')

Figure contains an axes. The axes with title Peaks: North gradient contains an object of type surface.

Отобразите градиенты на востоке.

clma
meshm(gradE,gridrv)
colorbar('vert');
title('Peaks: East Gradient')

Figure contains an axes. The axes with title Peaks: East Gradient contains an object of type surface.