いちからはじめる GMT その67 - PLOT_DEGREE_FORMAT, D_FORMAT

2012年 7月 1日 掲載


今回は,地理座標系での目盛り数値についてである.

大縮尺の地図で,目盛りなどの間隔を「分」単位で指定したいときは, -Bオプションの数値に「m」をつける.

$ pscoast -Jm10 -R139.6/141.0/34.6/36.0 -Dh -Ggray -Ba20m > bousou.eps

房総半島

このケースでは,経緯度の目盛り数値が「度分」で描画された. 地理座標の目盛り数値のフォーマットは,PLOT_DEGREE_FORMAT で指定されている. gmtdefaultsコマンドでどうなっているか見てみよう.

$ gmtdefaults -L | grep "PLOT_DEGREE_FORMAT"
PLOT_DEGREE_FORMAT	= ddd:mm:ss

「ddd:mm:ss」は,度(ddd),分(mm),秒(ss)を区切って表示するという指定である. 描画するとき,mm,ss の値がそれぞれすべて 00 になる場合は省略されるようだ.

PLOT_DEGREE_FORMAT が ddd:mm:ss だと, 目盛り間隔を度の小数で指定した場合,わかりにくくなることがある.

$ pscoast -J -R -Dh -Ggray -Ba0.2 > bousou.eps

房総半島

このようなケースでは,目盛りを度分表示ではなく,度の小数表示にしたい. そういうときは,gmtset で PLOT_DEGREE_FORMAT に「D」と指定すればよい. 「D」と指定すると,目盛りの表示に小数表示のフォーマットが適用される.

$ gmtset PLOT_DEGREE_FORMAT D
$ pscoast -J -R -Dh -Ggray -Ba0.2 > bousou.eps

房総半島

小数表示がどのようなフォーマットかは,「D_FORMAT」で指定されている.

$ gmtdefaults -L | grep "D_FORMAT"
D_FORMAT		= %.12lg

デフォルトでは,「%.12lg」となっている. このフォーマットの書き方は,C言語の printf文の変換仕様の書き方で, C言語を使う人にはおなじみなのだが,知らない人もいると思うので, GMT で使う範囲で簡単に説明しよう.

ざっと,こんな感じだろうか.

デフォルトの「%.12lg」は,総桁数の指定なしで, 小数点以下 12桁までの書くように指定されているが, 「g」なので末尾の連続する 0 が省略される.

今回の例では,「.0」も書いてほしいので,D_FORMAT を「%.1lf」に変更してみよう.

$ gmtset D_FORMAT %.1lf
$ pscoast -J -R -Dh -Ggray -Ba0.2 > bousou.eps

房総半島

思い通りの図ができた.


[ KDOホームにもどる] [ いちからはじめる GMT インデックスにもどる ]


(C) 2012 KDO