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

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

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

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 DEM topo. Представьте фигуру как 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