В этом примере показано, как вычислить градиент, уклон и аспект для регулярной сетки данных. Компоненты градиента являются изменением переменной сетки на метр расстояния в северном и восточном направлениях. Наклон определяется как разница в вертикальном положении на модуль расстояния вдоль пути наискорейшего подъёма или спуска от камеры сетки до одного из восьми ее ближайших соседей, выраженное как арктангенс. Если сетка содержит повышения в метрах, то аспектом и уклоном являются углы поверхности, нормальные по часовой стрелке с севера и вверх от горизонтали. 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
Очистить систему координат и отобразить сетку уклона.
clma meshm(slope,gridrv) colorbar('vert'); title('Peaks: slope')
Сопоставьте сетку аспектов.
clma meshm(aspect,gridrv) colorbar('vert'); title('Peaks: aspect')
Отобразите градиенты на севере.
clma meshm(gradN,gridrv) colorbar('vert'); title('Peaks: North gradient')
Отобразите градиенты на востоке.
clma meshm(gradE,gridrv) colorbar('vert'); title('Peaks: East Gradient')