Отображение топографических данных

Этот пример показывает несколько способов представлять топографию Земли. Данные, используемые в этом примере, доступны из Национального центра геофизических данных, NOAA Министерство торговли США в соответствии с объявлением 88-MGG-02 данных.

О данных топографии

Файл данных, topo.mat, содержит топографические данные. topo является высотными данными, и topomap1 является палитрой для высоты.

load topo topo topomap1    % load data 
whos('topo','topomap1')
  Name            Size              Bytes  Class     Attributes

  topo          180x360            518400  double              
  topomap1       64x3                1536  double              

Создание контурного графика

Один способ визуализировать топографические данные состоит в том, чтобы создать контурный график. Чтобы показать схему континентов Земли, постройте график точек, которые имеют нулевую высоту. Первые три входных параметра к contour задают эти X, Y, и значения Z на контурном графике. Четвертый аргумент задает уровни контура, чтобы построить график.

x = 0:359;                                % longitude
y = -89:90;                               % latitude

figure
contour(x,y,topo,[0 0])

axis equal                                % set axis units to be the same size
box on                                    % display bounding box

ax = gca;                                 % get current axis               
ax.XLim = [0 360];                        % set x limits
ax.YLim = [-90 90];                       % set y limits
ax.XTick = [0 60 120 180 240 300 360];    % define x ticks
ax.YTick = [-90 -60 -30 0 30 60 90];      % define y ticks

Просмотр данных как изображение

Можно создать изображение топографии с помощью данных повышения и пользовательской палитры. Данные топографии обработаны как индекс в пользовательскую палитру. Установите CDataMapping изображения к 'scaled' линейно масштабировать значения данных к области значений палитры. В этой палитре оттенки зеленого цвета показывают высотные данные, и оттенки синего цвета представляют глубину ниже уровня моря.

image([0 360],[-90 90], flip(topo), 'CDataMapping', 'scaled')
colormap(topomap1)

axis equal                                % set axis units to be the same size

ax = gca;                                 % get current axis               
ax.XLim = [0 360];                        % set x limits
ax.YLim = [-90 90];                       % set y limits
ax.XTick = [0 60 120 180 240 300 360];    % define x ticks
ax.YTick = [-90 -60 -30 0 30 60 90];      % define y ticks

Использование отображения текстур

Отображение текстур сопоставляет 2D изображение на 3-D поверхность. Чтобы сопоставить топографию со сферической поверхностью, выберите цвет поверхности, заданной свойством CData, к топографическим данным, и установите свойство FaceColor на 'texturemap'.

clf
[x,y,z] = sphere(50);          % create a sphere 
s = surface(x,y,z);            % plot spherical surface

s.CData = topo;                % set color data to topographic data
s.FaceColor = 'texturemap';    % use texture mapping
s.EdgeColor = 'none';          % remove edges
s.FaceLighting = 'gouraud';    % preferred lighting for curved surfaces
s.SpecularStrength = 0.4;      % change the strength of the reflected light

light('Position',[-1 0 1])     % add a light

axis square off                % set axis to square and remove axis
view([-30,30])                 % set the viewing angle

Была ли эта тема полезной?