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