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

Этот пример показывает несколько способов представления топографии Земли. Данные, используемые в этом примере, доступны в Национальном центре геофизических данных Министерства торговли США 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

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

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

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

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

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

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

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

s.FaceColor = 'texturemap';    % use texture mapping
s.CData = topo;                % set color data to topographic data
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