exponenta event banner

Создание 3-D дисплеев с растровыми данными

В этом примере показано, как создавать 3-D дисплеи с растровыми данными путем настройки видов поверхности, для которых требуются явные горизонтальные координаты. Самый простой способ отображения растровых данных - назначить цвета элементам матрицы в соответствии со значениями их данных и просмотреть их в двух измерениях. Растровые карты данных также могут отображаться в виде 3-D поверхностей с использованием матричных значений в качестве z-данных. Разница между регулярными растровыми данными и геоориентированной сеткой данных заключается в том, что каждое пересечение сетки для геоцентрированной сетки явно определяется матрицами x-y или широты/долготы или интерполируется из гратикулы, в то время как регулярная матрица подразумевает только эти местоположения (именно поэтому ей нужен опорный вектор, матрица или объект).

Загрузить данные о высоте и географические ячейки опорного объекта для Корейского полуострова. Преобразование данных и ссылочного объекта в полностью геоориентированную сетку данных с помощью geographicGrid функция.

load korea5c
[lat,lon] = geographicGrid(korea5cR);

Далее используйте km2deg функция для преобразования единиц отметки из метров в градусы, так что они соизмеримы с матрицами координат широты и долготы.

korea5c = km2deg(korea5c/1000);

Наблюдайте за результатами, введя whos команда. lat и lon матрицы координат образуют сетку того же размера, что и korea5c. Это требование для построения 3-D поверхностей. В lon, все столбцы содержат один и тот же номер для данной строки и в lat, все строки содержат один и тот же номер для данного столбца.

whos
  Name               Size              Bytes  Class                                     Attributes

  description        2x64                256  char                                                
  korea5c          180x240            345600  double                                              
  korea5cR           1x1                 128  map.rasterref.GeographicCellsReference              
  lat              180x240            345600  double                                              
  lon              180x240            345600  double                                              
  source             2x76                304  char                                                

Теперь настройте объект оси карты с конической проекцией равной площади и вместо использования meshm для создания этой карты просмотрите геоориентированную сетку данных с помощью surfm функция. Установите соответствующую карту цветов. Это создает карту, которая действительно является видом 3-D, видимым из прямых накладных расходов (ракурс по умолчанию). Чтобы понять это, нужно лишь изменить точку зрения.

axesm('MapProjection','eqaconic','MapParallels',[],...
     'MapLatLimit',[30 45],'MapLonLimit',[115 135])
surfm(lat,lon,korea5c,korea5c)
demcmap(korea5c)
tightmap

Figure contains an axes. The axes contains an object of type surface.

Задайте азимут обзора 60 градусов (с востока на юго-восток) и отметку обзора 30 градусов над горизонтом, используя view функция.

view(60,30)

Figure contains an axes. The axes contains an object of type surface.