Драпируйте Определенную геолокацию Сетку на Обычной Сетке Данных через Отображение текстур

В этом примере показано, как создать новую обычную сетку данных, которая покрывает область определенной геолокацию сетки данных, затем встройте цветные значения данных в новую матрицу. Новая матричная сила должна иметь несколько более низкое разрешение, чем оригинал, чтобы гарантировать, что каждая ячейка в новой карте получает значение. Пример комбинирует отличающиеся сетки данных путем создания новой обычной сетки данных, которая покрывает область определенных геолокацию z-данных сетки данных. Этот подход имеет преимущество, что больше вычислительных функций доступно для обычных сеток данных, чем для определенных геолокацию единиц. Цвет и сетки вертикального изменения не должны быть одного размера. Если разрешения двух сеток данных отличаются, можно создать поверхность как 3D карту вертикального изменения и позже применить цвета как текстурную карту. Вы делаете это путем установки поверхностного CData свойство содержать матрицу цветов и выбирание поверхностного цвета поверхности к 'texturemap'.

Загрузите topo MAT-файл и отдельные переменные, содержащие данные о ландшафте из mapmtx Matfile.

load topo topo
load mapmtx lt1 lg1 map1

Идентифицируйте географические пределы определенной геолокацию сетки, которая загрузилась от mapmtx.

latlim(1) = 2*floor(min(lt1(:))/2);
lonlim(1) = 2*floor(min(lg1(:))/2);
latlim(2) = 2*ceil(max(lt1(:))/2);
lonlim(2) = 2*ceil(max(lg1(:))/2);

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

topoR = georasterref('RasterSize',size(topo), ...
    'LatitudeLimits',[-90 90],'LongitudeLimits',[0 360]);
[topo1,topo1R] = maptrims(topo,topoR,latlim,lonlim);

Выделите обычную сетку, заполненную однородно -Inf, получить данные о структуре.

cellsPerDegree = .5;
[L1,L1R] = zerom(latlim,lonlim,cellsPerDegree);
L1 = L1 - Inf;

Перезапишите L1 использование imbedm, преобразование его от определенной геолокацию сетки до обычной сетки, в которой значения прибывают из дискретного Лапласиана сетки вертикального изменения map1.

L1 = imbedm(lt1,lg1,del2(map1),L1,L1R);

Настройте карту оси с проекцией Миллера и используйте meshm чертить topo1 извлечение topo DEM. Представьте фигуру как 3-D представление от 20 азимутов степени и 30 высот степени, и преувеличьте измерение по вертикали фактором 200. И поверхностное облегчение и окраска представляют топографическое вертикальное изменение.

figure 
axesm miller
h = meshm(topo1,topo1R,size(topo1),topo1);
view(20,30)
daspectm('m',200)

Примените L1 матрица как текстурная карта непосредственно на поверхность с помощью set функция. Область, не покрытая [lt1, lg1, map1] определенная геолокацию сетка данных кажется темно-синей, потому что соответствующие элементы L1 были установлены в-Inf.

h.CData = L1;
h.FaceColor = 'texturemap';
material shiny 
camlight
lighting gouraud
axis tight

Для просмотра документации необходимо авторизоваться на сайте