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