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ヶ月(1O,O はゼロではなく大文字のオー)とした.
$ 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