GMTで北海道海岸線+河川図を描いてみる
環境研究室 20080422修正
GMTをインストールして、短いスクリプトで絵が描けるようになったら、一連の命令をバッチファイルで次々に実行し、複雑な絵を作ることができるようになります。バッチファイル中のコマンドは、基本的にウィンドウズのコマンドプロンプトで用いる構文が基本となっていますので、詳しく知りたい方は、コマンドプロンプトのコマンドを勉強してみてください。とりあえず絵を描きたかった私は、試行錯誤の末、以下の手順で北海道の海岸線と河川が入ったポストスクリプトファイルを作ることができました。
- 作業フォルダ\gmtsvript、\topodataフォルダを作る。
c:\GMT\gmtscript\
c:\GMT\topodata\ - \gmtscriptフォルダにhakuzu.batを保存。(hakuzu.batはここからダウンロード可能)
- \topodataフォルダにhokkaido.rivを保存。(hokkaido.rivはここからダウンロード可能)
※hokkaido.rivの作り方はここをクリックしてください。
- 1のフォルダに戻り、 hakuzu.bat をダブルクリックして実行すると、hokkaido_haku_map.ps というポストスクリプト形式の北海道海岸線+河川図が出来上がっています。これを見るには、イラストレータかgsviewというビューワが必要です。右上の様な絵ができているはずです。(結果のポストスクリプトファイルはここからダウンロードできます)
- スクリプトの説明
・スクリプト中、REMはGMTのコマンドと関係ない注釈文です。
・set文 は、ある変数になにかの値を代入する命令。数字でも文字列でもいいようです。
・set文で定義された変数は、別のコマンド中で%記号に挟まれて使用されています。
・Set文で定義できる変数は文字列から数値までOKです。
・Gawkコマンドは、そもそもUNIX系のコマンドawkをwindowsで使えるようにしたコマンドです。ここではCSVファイルのデータ列の何番目から何番目を抽出する、といった機能しか使ってませんが、もっといろいろできるようです。
現段階ではこんないい加減な説明しかできず、申し訳ありません。 あとは変数をいろいろいじってみてどうなるか、各種サイトで公開されている用例を見ながら、実践あるのみです。
北海道海岸線+河川図用スクリプト
REM ----------------------------------------------
REM 北海道の白地図(主要河川図入り) \topodata\の前に点二つ「..」が付いていますが、 REM これは、自分のフォルダの隣のフォルダを参照するときに必要。
REM hokkaido.rivは北海道内の河川データ(緯度経度で記述されている)
set hokriv=..\topodata\hokkaido.riv
REM of::出力イメージ(ポストスクリプト)ファイル名。このファイルに逐次イメージが重ねられていく。
set of=hokkaido_haku_map.ps
REM waku=139/146/41.0/46.0:緯度経度で北海道エリアを含む枠の範囲を指定
set waku=139/146/41.0/46.0
REM wakuで指定した範囲を以下の変数で修飾
set bp=a2.0f1.0g0.0
REM a:軸目盛数字の間隔(度)、b:白黒帯の間隔(度)、g:線の間隔(度)。分のときは*.*m、秒のときは*.*c
set r=2
REM r:1度あたり何cmで書くかという意味。ここでは1度あたり2cmとしている。
REM ----------------------------------------------
psbasemap -Jm%r% -R%waku% -B%bp%/%bp% -P -K > %of%
REM −Oは追加のとき必須。>>は追加書き。
REM ----------------------------------------------
REM 全道河川(hokriv)を描く
REM gawk コマンドは、%hokriv%の1列目と2列目のデータを|(パイプ文)で psxyに流している。----
gawk "{print $1,$2}" %hokriv% | psxy -Jm%r% -W2/0/0/255 -M -R -P -V -O -K >> %of%
REM ----------------------------------------------
REM 海岸線の描画
pscoast -Jm%r% -R -B -W2 -Dh -P -V -S255 -O -K >> %of%
REM
以上、set文を除けばpsbasemap文、gawk文、psxy文、pscoast文の4つのコマンドだけで北海道の海岸線と河川図が書けるわけです。インストールはちょっと面倒ですが、ツボさえ押さえるとGMTは結構使えるような気がしませんか?
文責:水環境保全チーム 村上