exponenta event banner

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

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