Этот пример показывает, как создать новую обычную сетку данных, которая покрывает область определенной геолокацию сетки данных, затем встройте цветные значения данных в новую матрицу. Новая матричная сила должна иметь несколько более низкое разрешение, чем оригинал, чтобы гарантировать, что каждая ячейка в новой карте получает значение. Пример комбинирует отличающиеся сетки данных путем создания новой обычной сетки данных, которая покрывает область определенных геолокацию 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