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