GMTの長さの単位、その他の注意

紙の上の長さの単位

GMTは、紙の上にプリントすることを想定したPostScriptファイルを作る。 紙の上の長さの単位としては、cmとインチを選択できる。 特に指定しないとき使われる(defaultの)単位はコンパイル時に決まるが、 SFC CNSに増田が入れたものでは、cmにしてある。

GMTの3.0版までは、単位はインチに限られていた。 また、3.2版のころは、単位をcmにすると、結果の寸法が意図どおりにならない ことがあった。 したがって、GMTを使ったシェルスクリプトのうち、比較的古いものや、 だいぶ前にインストールしたところで作ったもの、アメリカで作られたものなどは、 長さの単位をインチにしているものが多い。 例文をそのまま実行すると図の寸法が各辺1/2.5くらいに小さく出る場合は、 次に述べる方法で長さの単位がインチであることを指定するか、 長さをcm単位に換算して指定しなおしてみてほしい。

今の版では、大部分のコマンドで、長さの値のあとにcまたはiをつけることに よって、cmとインチを選択することができる。 今の版のGMT自体が用意している例文 (/pub/sfc/earthobs/prog/gmt/examples/ex??/にある)はそのような方法を とっている。 また、ciをつけない場合に使われる単位は、 作図コマンド実行前に

  gmtset MEASURE_UNIT inch
  gmtset MEASURE_UNIT cm
で切りかえることができる。

なお、文字の大きさはポイントで指定することになっている。 これは長さの単位がインチでもcmでも変わらない。


ページの大きさとeps

GMTでは、2種類のPostScriptファイルを作ることができる。 ページの大きさを指定したものと、eps (encapsulated PostScript)である。 epsは、文書処理プログラム(TeXなど)の中に取りこむ図を作るときに 使われる。 GMTの最近の版では、そのままプリンタに出したり、gvで見たりする使い方を おもに想定して、ページの大きさを指定したPostScriptを標準にしている。 3.0くらいまでの古い版では、epsを作るほうが標準だった。 今の版でepsを作りたい場合は、

  gmtset PAPER_MEDIA A4+
のように、PAPER_MEDIAの指定を+で終わる形にしておけばよい。

SFC CNSにインストールした GMT 3.4 では、defaultのページの大きさをA4としている。 ページの大きさの指定は、出力されるPostScriptファイルの中では、 次の2つのところに現われる(例では、A4の寸法を指定している)。

%%BoundingBox: 0 0 595 842
<< /PageSize [595 842] /ImagingBBox null >> setpagedevice
このうち、setpagedeviceの行は、epsの場合は現われない。 setpagedeviceは、 PostScriptのコマンドの中で比較的新しい機能であるため、 プリンタやソフトウェアが対応していないことがある。 GMTで(PAPER_MEDIAを変更せずに) 作ったPostScript (仮にin.psとする)を このコマンドに対応していないgsで見るときは、
  grep -v setpagedevice in.ps > out.ps
として、out.psを見ればよい。 古い機種のプリンタに出す場合も同様である。

epsの場合、 BoundingBoxで指定される寸法は、紙の寸法ではなく、 実際にそのコマンドで作られる図形の寸法になる。 ところが、GMTではふつう複数のコマンドを続けて使って作図するのに、 BoundingBoxはそのうちひとつのコマンドで出力された図形だけの範囲の指定になり、 意図よりも狭い範囲になってしまうことが多い。

この問題の対策としては、 PostScriptファイル(次の例ではin.ps)を文書に取りこむ前に、 epstoolというプログラム (Russell Lang氏によるフリーソフトウェア)で加工し、 その結果(次の例ではout.ps)を使うとよい。

  epstool -b -c in.ps > out.ps
しかしこれも完全ではなく、 最初に作図した部分の原点よりも左や下に書こうとした文字や図形は 切れてしまうこともある。


地球上の位置の指定

地球上の位置を指定する場合、 x軸が経度、y軸が緯度で、単位は「度」である。 多くのコマンドで、度・分・秒で指定することもできるが、 コマンドによって、コロンを使う方式だったり、 分をm、秒をc (s は別の機能とぶつかることがあるので避けている)で表わす方式だったりするので、 「man コマンド名」などで確認すること。

大縮尺(狭い範囲)の地図向きの投影法では、地球の形を楕円体 (defaultはWGS-84、gmtset ELLIPSOIDで変更可能)とみなし、 小縮尺(広い範囲)の地図向きの投影法では、球とみなしている。 地球上の位置と地図上の位置の関係は、 まず楕円体または球上の位置から、投影法の公式に したがって、「縮尺1」の地図に投影し、 それに縮尺をかけて、紙の上の長さが得られるようになっている。


2000-08-16 ... 2002-01-26, 2006-09-07
増田 耕一 (MASUDA Kooiti)

[GMTを使う教材の目次へ]