Создайте 3-D отображения с растровыми данными

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

Загрузите MAT-файл и преобразуйте это представление полностью определенной геолокацию сетке данных путем вычисления mesh через функцию meshgrat. Пример использует растровые данные о повышении в MAT-файле korea, который также включает данные о батиметрии для области вокруг корейского полуострова, наряду с переменной вектора ссылки, которая указывает, что набор данных является обычной сеткой данных и определяет местоположение ее на Земле.

load korea
[lat,lon] = meshgrat(map,refvec);

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

map = km2deg(map/1000);

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

whos
  Name               Size              Bytes  Class     Attributes

  description        2x64                256  char                
  lat              180x240            345600  double              
  lon              180x240            345600  double              
  map              180x240            345600  double              
  maplegend          1x3                  24  double              
  refvec             1x3                  24  double              
  source             2x76                304  char                

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

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

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

view(60,30)