研究ブログ

研究ブログ >> 記事詳細

2017/10/10

GMT 近況 (5.4.2)

Tweet ThisSend to Facebook | by kkatsumata
まだマニュアルが発展途上で、とくに 4.x 以来のユーザには戸惑う点がおおいのでメモ。

軸装飾

結局これでよさげ。

-BWeSn+t"title" -Bxa500g100+L"Temperature"+u"@~\260@~C" -By...

多少動作が不安定で制御文字 @ が多いと失敗するような。

multisegment file

例えば psxy でいくつかの「線分」を書きたいときデータを塊で書いて塊をスペースで区切ったりする。こういうのを上記のように呼ぶらしい。これを psxy で書くときにどうやって segment の区切りを示すか分からない。ぐぐるといろいろな代のマニュアルが混在していてたとえば -M 使えというのが引っかかったりするが、それぞれの segment の一行目に > から始まるヘッダを置くのが正解らしい。色を変えるときは  > -Z なるヘッダに -W,+cl -C$CPT で可能。

任意のcontour

pscontour(1) によればこれは動くはずなのだが、
#!/bin/sh
OUT=/tmp/$$.ps
cat <<EOF > /tmp/cnt
2 A
4 C
6 A
EOF
#cat << EOF | gmt pscontour -C1 -A2 -JX2c -R-1/10/0/5 -W -B2 >$OUT # good
cat << EOF | gmt pscontour -C/tmp/cnt -JX2c -R-1/10/0/5 -W -B2 >$OUT  # NG
0    2      5
1    4      5
2    0.5    5
3    3      9
4    4.5    5
4.2  1.2    5
6    3      1
8    1      5
9    4.5    5
EOF
echo $?
gv $OUT

何も出力しないでエラーコードは 47。コメントアウトした good の行は動く。本家に報告しようかとも思ったがアカウント作成(右上の register?)も面倒。-C+num は動くのでこんなので茶を濁す。

psbasemap -JX2c -R-1/10/0/5 -B2 -K >/tmp/out.ps
awk -v o=$OUT -v d=$DAT \
'!/^#/ && $2 == "A" {command = sprintf("pscontour %s -C+%s -A+%s -JX -R -W -O  -K >>%s", d, $1, $1, o);
                     system(command);}
 !/^#/ && $2 == "C" {command = sprintf("pscontour %s -C+%s -A- -JX -R -W -O -K >>%s", d, $1, o);
                     system(command)}'  $CNT

遅くて見苦しいが動く。
14:29 | 投票する | 投票数(0) | コメント(0) | テクノロジー