В этом примере показано, как создать новую обычную сетку данных, которая покрывает область определенной геолокацию сетки данных, затем встройте цветные значения данных в новую матрицу. Новая матричная сила должна иметь несколько более низкое разрешение, чем оригинал, чтобы гарантировать, что каждая ячейка в новой карте получает значение. Пример комбинирует отличающиеся сетки данных путем создания новой обычной сетки данных, которая покрывает область определенных геолокацию z-данных сетки данных. Этот подход имеет преимущество, что больше вычислительных функций доступно для обычных сеток данных, чем для определенных геолокацию единиц. Цвет и сетки вертикального изменения не должны быть одного размера. Если разрешения двух сеток данных отличаются, можно создать поверхность как 3D карту вертикального изменения и позже применить цвета как текстурную карту. Вы делаете это путем установки поверхностного CData
свойство содержать матрицу цветов и выбирание поверхностного цвета поверхности к 'texturemap'
.
Загрузите растровые данные о вертикальном изменении и географический объект ссылки ячеек от topo60c.mat
. Получите отдельные переменные, содержащие данные о ландшафте из mapmtx.mat
.
load topo60c 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);
Обрежьте глобальные данные о вертикальном изменении в прямоугольную область, заключающую меньшую сетку.
[topo1,topo1R] = geocrop(topo60c,topo60cR,latlim,lonlim);
Выделите обычную сетку, заполненную однородно -Inf
, получить данные о структуре.
L1R = georefcells(latlim,lonlim,2,2); L1 = zeros(L1R.RasterSize); L1 = L1 - Inf;
Перезапишите L1
использование imbedm
, преобразование его от определенной геолокацию сетки до обычной сетки, в которой значения прибывают из дискретного Лапласиана сетки вертикального изменения map1
.
L1 = imbedm(lt1,lg1,del2(map1),L1,L1R);
Настройте карту оси с проекцией Миллера и используйте meshm
отобразить обрезанные данные. Представьте фигуру как 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