はじめに
GMTのversion4、version5のプログラムの改修を余儀なくされた人に向けている。
新しく作成する場合は、GMT version6またはpygmtで作成したほうが当然によい。
GMTコマンドはほとんどの場合Shell Scriptで作成されていると思われるが、多くは可読性が悪い。コメントがない場合や変数が分散していたり、100行前の変数を使用していたりと、めちゃくちゃなことが多い。
以下はリファレンスである。
GMT5.4.5
GMT4.5.18
GMTコマンドの種類
2種類ある。
1つ目は、データの補間やデータの形式を変換するコマンド。
2つ目はそれら生データや変換を行ったデータをグラフやある地図座標系上にプロットするためのPostScriptのコマンドを出力するコマンドである。
用紙という考え方
GMTはPostScriptのコマンドを標準出力することで図示している。最終的にプリントアウトをすることを想定されて設計がなされている。PostScript自体には描画範囲という概念はないが、GMTには用紙の大きさという概念がある。用紙から外れた部分は描画がなされないという特徴がある。例えば、A4サイズで設定した場合はA4から外れた部分はコマンドを実行しても除かれる。また、PostScriptの中身を知る必要はないが、PostScriptの描画の設計が反映されているようなオプションの書き方なされていることが多い。
-K,-O,-Pオプションについて
GMTのオプションの中身は呪文のようなものがほとんどで意味がすぐに分かるものはほとんどない。まずはこのオプションたちを把握するとよい。
-Pオプション
GMTは出力した内容をPostScriptが扱える印刷機で印刷することを考えている。
-Pオプションはプリントする方向を決めるオプションである。
Landscape(風景、長辺が左右)、Portrait(肖像、長辺が上下)
デフォルトはLandscapeで、-PオプションをつけるとPortraitになる。Landscapeがデフォルトなのは、地図はたいてい横長であることが理由。
Landscapeの原点は右下でX方向は上下、Y方向は左右。
Portraitの原点は左下でX方向は左右、Y方向は上下。
印刷すればどちらでも問題はないかと思われるが、現代では画面上で見る、png等に変換しPC上で見ることが多く、Landscapeでは不都合なことが多い。基本的にはソースコードでは-Pオプションをつけていることが多い。
GMT6では当然Portraitのみになっている。
-K,-Oオプション
GMTコマンドは1回で終わることはなく複数回に分けておこなわれることが多い。
PostScriptファイルというかGMTの出力は、
- ヘッダー部分(初期化と定義)
- 本体
- ページ印刷
と構成されているので、最初のコマンドや中間のコマンドや最後のコマンドでつけくわてほしい部分が異なる。
-Kオプションではページ印刷部分を記載しない。-Oオプションではヘッダー部分を記載しない。
したがって以下のような使い方になる。
コマンド1回で終わる場合
~ > psfile
コマンド2回で終わる場合
~ -K > psfile
~ -O >> psfile
コマンド3回以上の場合
~ -K > psfile
~ -O -K >> psfile
~ -O -K >> psfile
~ -O >> psfile
原点位置
地図やグラフの枠線を用紙に描画する際の基準である。左下が基準である。
デフォルトは(2.5c,2.5c)である。(cはcmのこと。)
コマンドを解釈する際は今の原点はどこにあるか、枠線の縦と横の長さは何か等を考えながら実施する必要がある。
原点の位置を前のコマンドからずらすことも可能である。
-X,-Yオプションで原点を変えることができる。
Shell Scriptには今の原点はどこにあるかをコメントで記載することが望ましい。
Shell Scriptの解読方法
まず出力図があればそれを見て、コマンドがどの出力に対応するのか確認する。
-X,-Yオプションがあれば別の地図やグラフの作成に移ったことがわかる。
-J,-Rオプションの記入が-JMや-Rである場合は、その前のコマンドで地図座標や範囲の設定がなされているとこがわかる。
おわりに
まだ書きかけなので、適宜追記します。