ホーム>資料>パソコン

パソコンのプチ情報

前の記事   次の記事

b15.GIF GMT講座 その7:海底地形図を描こう

さていよいよコンター図を描いてみましょう。コンター図の典型例は地形図です。
日本列島の周りの山の高さや海の深さを、色つきで表示した海底地形図を
ここでは描いてみましょう。

図1にGMTで描いた海底地形図の例を示しました。
このような図を描くにはさすがに1,2行のGMTコマンドでは無理ですので、
シェルスクリプトを利用します(ここではtcsh用を紹介します。bashでも可能です)。
シェルスクリプトに複数のコマンドを描いておけば、シェルスクリプト実行に
それらのコマンドは自動的に順次実行されますので便利です。
ここではシェルスクリプトでよく使う、3つの機能を紹介しておきます。

・リダイレクト:コマンドの出力結果を画面ではなくファイルへ保存する
  例: >! = ファイルへ新規上書  >> ファイルへ追記
・パイプ(|):コマンドの出力結果を別のコマンドへの入力とします。
  例: ls -lt | more  = ファイル一覧を表示 → 1画面ずつスクロール
・バックスラッシュ(\):1行の長いコマンドを2行にわける。
そのほかシェルスクリプト

それでは、図1を描いたシェルスクリプト「japan_sandwell.gmt」を下記に記します。
------------------------------------------------------------
#!/bin/tcsh -f
# GMT script for making bathymetry map (Japan)
# It will take about 5 minutes....!!

gmtdefaults -D >! .gmtdefaults
gmtset LABEL_FONT_SIZE 12 HEADER_FONT_SIZE 18

grdgradient topo_WP.grd -A270 -Nt1 -Gtopo_WP.grd.shade
makecpt -Cglobe -T-8000/8000/100 >! tmp.cpt

grdimage topo_WP.grd -Jm135/35/.3 -R125/150/28/49 -Ctmp.cpt \
-Itopo_WP.grd.shade\
-Ba5/a5WSne:."Bathymetry": -Xa1.0i -Ya2.0i -P -K >! tmp.ps

#grdcontour topo_WP.grd -Jm -R -L-8000/8000 -C500 -A500\
# -Xa1.0i -Ya2.0i -P -K -O >> tmp.ps

psscale -Ctmp.cpt -D3.5/1.3/3.0/0.2h \
-B4000/:"Depth(m)": -P -K -O >> tmp.ps

pscoast -Jm -R -Dh -W2 -Xa1.0i -Ya2.0i -P -O >> tmp.ps

#gv tmp.ps
mv tmp.ps japan_sandwell.ps
rm tmp*.dat tmp*.grd tmp*.cpt *grd.shade
rm .gmt*
------------------------------------------------------------

先ほどの地図では海岸線などの線描で簡単でしたが、コンター図の場合は
覚えるべきコマンドはいくつか増えます。簡単なものから順に解説しましょう。

・makecpt: コンター図を作り際の色の付け方(カラーパレット)を決めます。
 -Cglobeで「globe」というパレットを指定しています。これは「紫→青→白→緑→茶」
 というように色が変わっています。-T-8000/8000/100は、その色を「-8000m~
 8000mへ100mずつ段階的に色分けせよ」という指示です。パレットの設定は
 tmp.cptにとりあえず保存されています。
 
・psscale: 図の下に描かれた、色スケールを作るコマンドです。
 -Ctmp.cptは、パレット設定が保存されているtmp.cptを参照せよという意味です。
 -D3.5/1.3/3.0/0.2hのうち、最初の2つは表示位置(縦横)、次の2つはスケールサイズ
 (横縦)です。-B4000/:"Depth(m)":は、スケールに4000m毎に目盛をいれるという
 意味です。

・grdimage: これがコンター図を描くコマンド本体です。「topo_WP.grd」というファイル
 (この形式のファイルを「GRDファイル」と呼びます)には北西太平洋周辺の
 緯度・経度・標高データが入っています。これをデータとして利用します。
 -Ctmp.cptはpsscaleと同様、カラーパレットの指定です。-Iオプションでは、海底地形
 図に影をつける際のファイルを指定します(後述)。-Jm、-R、-Bオプションについては
 従来どおりです。

・grdcontour: topo_WP.grdに基づいて、等標高線を描いていきます。
 -L-8000/8000(-8000~8000mの範囲に対して)、-C500(500m間隔で線を引き)、
 -A500(500m間隔で等標高線に標高値も入れていく)、といった意味です。なお、
 上記例ではコメントアウト(無視)されていますが、#を取れば復活します。

・grdgradient: grdimageでコンター図を描く際の陰影用データファイルを作成します。
 ここではtopo_WP.grdに基づいて、-A270(270度方向から光があたる)という設定
 でtopo_WP.grd.shadeとしてファイルに出力します。 -Nt1は影の強さを示します。

つまるところコンター図とは、あるデータ(GRDファイル)に基づいて、ある場所
(緯度・経度)のある値(標高)を画面上に色つきで描いていくことに他なりません。

それでは次に、GRDファイルの違いによる地形図の違いを見ましょう。その次に
実際にGRDファイルを自分で作り、コンター図を描いてみます。
続く。

----
※なお上記スクリプトの先頭と末尾次のような行が含まれています。
gmtdefaults -D >! .gmtdefaults
gmtset LABEL_FONT_SIZE 12 HEADER_FONT_SIZE 18
  :
rm tmp*.dat tmp*.grd tmp*.cpt *grd.shade
rm .gmt*

GMTはフォルダ内の初期ファイル「.gmtdefaults」を参照して動作します。また動作中
には中間生成ファイル「.gmtcommands」も出力します。これらが残ったままだと、
GMTの動作がおかしい場合があるため、シェルスクリプトを利用して、毎回初期ファイル
を生成し、GMTでの描画終了後には削除することにしています。

[関連画像]


図1

前の記事

目次に戻る

次の記事