surfaceコマンドの使用に当たっては,あらかじめデータの前処理を行ってエイリアスの除去を行っておくことが必要です.つまりグリッディングの前にこの作業を行うように心がけなければなりません.GMTには3種の前処理(プリプロセシング)プログラムがあります.それらはそれぞれ blockmean, blockmedian, blockmode です.
blockmeanはグリッド間隔の「箱」の中の平均をとり,blockmedian, blockmodeはそれぞれメディアンとモードを計算します.
経験的に,私たちは大抵滑らかなデータ(ポテンシャル場など)には平均法を,ぎざぎざした,正規分布的でないデータ(地形など)にはメディアン法かモード法を使っています.これらの前処理コマンドは,-Rと-Iオプションの他に,次のオプションをとることが出来ます:
|
ではこれまでに出てきた船舶による海底地形探査データを用いて,前処理をためしてみます.ここではメディアン法を実行します:
% blockmedian -R245/255/20/30 -I5m -V ship.xyz >! ship_5m.xyz
こうして出来たファイルship_5m.xyzは,つづいてsurfaceコマンドによりグリッディングすることができます:
% surface ship_5m.xyz -R245/255/20/30 -I5m -Gship.grd -V
ここまできたらもうgrdcontourを使って等高線図を描くのは簡単でしょう(試してみましょう!).さて,出来た図を良く見てください.nearestneighborコマンドを使って描いた図とずいぶん違うと思いませんか?
これはsurfaceコマンドが大域法であること,つまり元データから得られる情報が少なすぎてデータ値の計算のしようがない点についてもデータ値を計算しようとするからです.ここで私たちにはたくさんの選択肢があります:
ここではすべての選択肢について触れている余裕はありませんので,最後の方法についてのみ述べておきます.psmaskコマンドは,前処理されたデータファイルを読み込み,コンターマスクをデータ点の分布に基づいて設定します.こうして画像のクリップパスを設定してしまえば心置きなくグリッディングが出来ます.そして最後にもういちどpsmaskを用いて画像のクリッピングを中止します.これらを実現するコマンドは次のようになります:
% psmask -R245/255/20/30 -I5m ship_5m.xyz -JM6i -B2 -P -K -V >! map.ps % grdcontour ship.grd -JM -O -K -C250 -A1000 >> map.ps % psmask -C -O >> map.ps