地形データの表示
この例では、地球の地形図を表すいくつかの方法を示します。この例で使われているデータは、米国商務省 NOAA、国立地球物理データ センターの Data Announcement 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
等高線図の作成
地形データを可視化する方法の 1 つは、等高線図を作成することです。地球の大陸の輪郭を表示するには、標高が 0 の点をプロットします。contour
の最初の 3 つの入力引数は、等高線図の X、Y および Z の各値を指定します。4 番目の引数は、プロットする等高線のレベルを指定します。
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'
に設定します。このカラーマップでは、緑色の陰影は標高データを示し、青の陰影は海抜 0 以下の深さを表します。
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 次元のイメージが 3 次元の表面にマップされます。地形図を球面にマップするには、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