いちからはじめる GMT その32 - 時系列グラフ PLOT_CLOCK_FORMAT, PLOT_DATE_FORMAT, gmtdefaults, gmtset

2010年 7月 1日 掲載


2ヶ月空いてしまいましたが,時系列グラフのつづきです.


今回も擬似潮汐データをサンプルデータとして,時系列グラフの描画をしていくが, 間が2ヶ月も空いてしまったので,データを作りなおすことにしよう. tide4.awk を使った次のシェルスクリプトで,7月の擬似潮汐データ tide.txt を作成する.

#!/bin/sh

rm -f tide.txt

DAY=1

while [ ${DAY} -le 31 ]
do
  awk -v year=2010 -v month=7 -v day=${DAY} -f tide4.awk >> tide.txt
  DAY=`expr ${DAY} + 1`
done

さて,前回,間隔を「H」「D」「O」で指定したときの時系列グラフの目盛りの値は, PLOT_CLOCK_FORMAT,PLOT_DATE_FORMAT というパラメータにしたがって表記されると書いた. これらのパラメータがどういう値になっているかを知るためのコマンドが gmtdefaults である. まずは,例によって gmtdefaults を単独で実行してみよう.

$ gmtdefaults
gmtdefaults 4.2.1 - List GMT-SYSTEM default parameters to stdout

usage: gmtdefaults [-D[s|u] | -L]

	-D prints the default settings for the GMT system
	   Append s to see the SI version of defaults
	   Append u to see the US version of defaults
	-L prints the users current GMT default settings

簡単な usage が表示された. -Dオプションでデフォルト値が,-Lオプションで現在の値が出力される,とある. では,さっそく現在の値を見てみよう,

$ gmtdefaults -L
#
#	GMT-SYSTEM 4.2.1 Defaults file
#
#-------- Plot Media Parameters -------------
PAGE_COLOR		= 255/255/255
PAGE_ORIENTATION	= landscape
PAPER_MEDIA		= a4+
#-------- Basemap Annotation Parameters ------
ANNOT_MIN_ANGLE		= 20
ANNOT_MIN_SPACING	= 0
ANNOT_FONT_PRIMARY	= Helvetica
ANNOT_FONT_SIZE		= 14p
ANNOT_OFFSET_PRIMARY	= 0.2c
ANNOT_FONT_SECONDARY	= Helvetica
ANNOT_FONT_SIZE_SECONDARY	= 16p
ANNOT_OFFSET_SECONDARY	= 0.2c
DEGREE_SYMBOL		= ring
HEADER_FONT		= Helvetica
HEADER_FONT_SIZE	= 36p
HEADER_OFFSET		= 0.5c
:
:

おおっと,これは多いっ.パラメータが 100以上もある. grep で PLOT_.*_FORMAT を抽出してみよう.

$ gmtdefaults -L | grep "PLOT_.*_FORMAT"
PLOT_CLOCK_FORMAT	= hh:mm:ss
PLOT_DATE_FORMAT	= yyyy-mm-dd
PLOT_DEGREE_FORMAT	= +ddd:mm:ss

PLOT_.*_FORMAT は 3つあるようだ. 今回あつかう PLOT_CLOCK_FORMAT は「hh:mm:ss」, PLOT_DATE_FORMAT は「yyyy-mm-dd」となっている.

まずは PLOT_CLOCK_FORMAT を見てみよう. 「hh:mm:ss」は,見ての通り「時:分:秒」で, それぞれの数値を 2桁数字で表す,というフォーマットである. このフォーマットのままで 1日分の潮汐曲線を描いてみよう.

$ psxy tide.txt -Jx16T/0.04 -R2010-7-1T00:00:00/2010-7-2T00:00:00/0/250 -Ba6Hg6H/a50g50 > tide.eps

潮汐データ

この例では,秒まで記す必要はないので, 「hh:mm:ss」を「hhmm」に変更しよう. パラメータの変更には,gmtsetコマンドを使う.

$ gmtset PLOT_CLOCK_FORMAT hhmm

ちゃんと変更されたか確認しておこう.

$ gmtdefaults -L | grep "PLOT_CLOCK_FORMAT"
PLOT_CLOCK_FORMAT	= hhmm

この状態で潮汐曲線を描画しなおしてみる.

$ psxy tide.txt -Jx16T/0.04 -R2010-7-1T00:00:00/2010-7-2T00:00:00/0/250 -Ba6Hg6H/a50g50 > tide.eps

潮汐データ

次に PLOT_DATE_FORMAT を見てみる. 「yyyy-mm-dd」は,「年-月-日」で, 年は 4桁,月日は 2桁の数字で表す,というフォーマットである. このフォーマットのままで 1ヶ月分の潮汐曲線を描いてみよう. 時間軸(x軸)の目盛り・グリッド間隔は 1ヶ月(1OO はゼロではなく大文字のオー)とした.

$ psxy tide.txt -Jx0.6T/0.04 -R2010-7-1T00:00:00/2010-8-1T00:00:00/0/250 -Ba1Og1O/a50g50 > tide.eps

潮汐データ

この例では,「日」の表示は余計である. 「yyyy-mm-dd」を「yyyy-mm」に変更する.

$ gmtset PLOT_DATE_FORMAT yyyy-mm
$ gmtdefaults -L | grep "PLOT_DATE_FORMAT"
PLOT_DATE_FORMAT	= yyyy-mm
$ psxy tide.txt -Jx0.6T/0.04 -R2010-7-1T00:00:00/2010-8-1T00:00:00/0/250 -Ba1Og1O/a50g50 > tide.eps

潮汐データ

月のフォーマットを「mm」のかわりに「o」と書くと,月名で表示されるようになる.

$ gmtset PLOT_DATE_FORMAT "o yyyy"
$ gmtdefaults -L | grep "PLOT_DATE_FORMAT"
PLOT_DATE_FORMAT	= o yyyy
$ psxy tide.txt -Jx0.6T/0.04 -R2010-7-1T00:00:00/2010-8-1T00:00:00/0/250 -Ba1Og1O/a50g50 > tide.eps

潮汐データ

PLOT_CLOCK_FORMAT,PLOT_DATE_FORMAT の記述方法は, man gmtdefaults の OUTPUT_CLOCK_FORMAT,OUTPUT_DATE_FORMAT の項に書いてある. これを読むと,PLOT_DATE_FORMAT には,週単位で日付を表示する「Www-d」や,通日を表示する「jjj」などがあることがわかる.

さて,表示フォーマットを gmtsetコマンドでいろいろ変えてみたが, 最後に,これをデフォルト値に戻す方法を解説する.

いろいろ変更した GMT のパラメータは, 作業ディレクトリの .gmtdefaults4 というファイルに保存されている. これの中身を見てみよう.

$ cat .gmtdefaults4
#
#	GMT-SYSTEM 4.2.1 Defaults file
#
#-------- Plot Media Parameters -------------
PAGE_COLOR		= 255/255/255
PAGE_ORIENTATION	= landscape
PAPER_MEDIA		= a4+
#-------- Basemap Annotation Parameters ------
ANNOT_MIN_ANGLE		= 20
ANNOT_MIN_SPACING	= 0
ANNOT_FONT_PRIMARY	= Helvetica
ANNOT_FONT_SIZE		= 14p
ANNOT_OFFSET_PRIMARY	= 0.2c
ANNOT_FONT_SECONDARY	= Helvetica
ANNOT_FONT_SIZE_SECONDARY	= 16p
ANNOT_OFFSET_SECONDARY	= 0.2c
DEGREE_SYMBOL		= ring
HEADER_FONT		= Helvetica
HEADER_FONT_SIZE	= 36p
HEADER_OFFSET		= 0.5c
:
:

これは,gmtdefaults -L の出力と同じものである. これをデフォルト値にもどすには, gmtdefaults -D の出力で上書きしてしまえばいい.

$ gmtdefaults -D > .gmtdefaults4

ちゃんと,元にもどったか確かめておこう.

$ gmtdefaults -L | grep "PLOT_.*_FORMAT"
PLOT_CLOCK_FORMAT	= hh:mm:ss
PLOT_DATE_FORMAT	= yyyy-mm-dd
PLOT_DEGREE_FORMAT	= +ddd:mm:ss

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


(C) 2010 KDO