更新日2013年7月9日
以下では包括的な説明をするつもりはなく、GrADSの代わりにGMTを使うとどんなことができるか、を紹介するのが目的ですので、本当に勉強したいなら
homepage1.nifty.com/~kdo/gmt00_index.html(いちからはじめるGMT)
をみて勉強するほうが得策です。
中級者向けとして、これは、GMTのコマンドをmanすると出てくる文章をただ日本語訳したまとめサイトですが、
http://gmt.shin-gen.jp/GMT4.1.4/gmt_man.html(GMT Online Man Page)
も紹介しておきます。
$ sudo apt-get install gmtでインストールはできてしまうので。各自調べてみてください。
export PATH=$PATH:/usr/local/bin(←もし最初からあるなら書き加える必要ない) export GMTHOME=/usr/lib/gmt export PATH=$GMTHOME/bin:$PATH export MANPATH=$GMTHOME/man:$MANPATHとします。
0 13.7 1 12.9 2 12.5 3 12.0 4 11.4 5 11.0 6 9.9これを、psxyをつかって、
psxy 1.dat -Jx1 -R-0.5/6.5/6/14 -K -Sc0.5 -Gblue>tmp.ps psxy 1.dat -Jx1 -R-0.5/6.5/6/14 -K -W5,blue -O>>tmp.psと、丸と線を重ね書きします。
echo 0 9 8 0 0 "MC" aaa | psxy -J -R -K -O -N>>tmp.ps (左から、緯度、経度、文字の大きさ、0、0、位置、文字列)と、上のグラフの[0,9]の点に、文字さイズ8で"aaa"と文字がかかれます。なお日本語はこのやり方ではできない。
#経度 #緯度 #地点名 #観測値 140.77 36.84 北茨城 0 140.65 36.60 日立 2 140.35 36.78 大子 69 140.33 36.61 常陸大宮 17 140.47 36.38 水戸 17 …スクリプト
#!/bin/sh basecpt='basemap.cpt' file='moushobi.dat' out='o.eps' region='138/141/34.5/37.5' proj='M16' grid='0.01' awk '{print $1,$2,$4}' $file>tmp awk '{print $1,$2,14,0,0,"MC",$4}' $file>tmp2 awk '{print $1,$2,12,0,0,"MC",$3}' $file>tmp3 surface tmp -Gtest.grd -I$grid -R$region -T0.25 grdimage japan.grd -J$proj -R$region -C$basecpt -K > $out grdcontour test.grd -J$proj -C20 -A20 -K -O>> $out pscoast -R$region -J$proj -W -Df -S -Bg0.5a0.5 -K -O>> $out psxy -R$region -J$proj tmp -Sc0.7 -G255/255/128 -K -O >>$out pstext tmp2 -R$region -J$proj -K -O >> $outで描画しています。こういうときにawkが大変便利です。
pscoast -Jm1:200000000 -R0/360/-80/80 -K -W -Bg15a15/g15a15> test.epsもっとも馴染みのある図法だと思います。
pscoast -Jq150/1:150000000 -R0/360/-90/90 -K -W -Bg30a30/g15a15> test.epsGrADSのlatlonに相当。
pscoast -Jq240/-83/1:29000000などとすれば縦に引き伸ばせます。
pscoast -Jkf150/1:150000000 -R0/360/-90/90 -K -W -Bg30a60/g15a15> test.epsエケルト第4図法。全球の分布図をかくのに適している(だろう)
pscoast -JS0/-90/6.5i -R0/360/-90/-60 -K -W -Bg15a15/g5a10> test.eps極投影polar projection。GrADSのnps,spsに相当。北極周辺、南極周辺図に適しています。
pscoast -JS135/35/16 -R0/360/45/90 -K -W -Bg15a15/g5a10> test.eps極以外を中心にとることもできなくもない。
pscoast -Jj150/1:150000000 -R0/360/-90/90 -K -W -Bg30a30/g15a15> test.epsミラー図法。latlonとメルカトルの中間?
pscoast -Jc135/35/1:40000000 -R90/15/210/50r -K -W -Bg5a10/g5a10> test.eps-Rの最後に-rを入れることで正方形に切り取れます。-R左下隅の点の経度/左下隅の点の緯度/右上隅の点の経度/右上隅の点の緯度rです。
pscoast -Ju53/1:4000000 -R132/32/139/38r -K -G192/192/192 -X2 -Bg1a2/g1a2 -Df>$out echo 135.518 34.682 16 0 0 "MC" Osaka | pstext -J -R -K -O >>$out echo 133.917 34.660 16 0 0 "MC" Okayama | pstext -J -R -K -O >>$out echo 136.965 35.167 16 0 0 "MC" Nagoya | pstext -J -R -K -O >>$out1:25000地形図で使われる投影方法です。近畿はu53、関東はu54、九州はu52を使います。
135 35 45 1なら135E 35Nで北東からの風(南西へ向かう風)の矢印がかかれます。
grdvector u.grd v.grdJMやJQなど、角が正しい図法以外の地図でgrdvectorをする場合、-Tをつけないとベクトルの向きが正しくならない。
#!/bin/sh out=test.eps region=225/-45/45/-45r line=g30/g15 cpt=cpt/ai.cpt proj=S0/-90/16 i=10 while [ $i -lt 71 ] do rm -rf $out nt=`expr $nt + 253941 ` echo $nt head -n $nt tmp | tail -n 253941 > tmp2 echo 0 -90 16 16 | psxy -J$proj -R$region -Sr -Ggray -K >$out psxy -J$proj -R$region tmp2 -Sc0.06 -C$cpt -K -O -B$line>> $out grdcontour -J -R shelf.grd -C0.5 -L0.3/0.7 -K -O -W2,black >>$out psscale -D8/-0.5/16/0.5h -C$cpt -K -O -N -E -L>>$out j=`expr $i - 9` echo 0 -90 24 0 0 "MC" $j | pstext -J$proj -R$region -Gblack -K -O >>$out i=`expr $i + 1` convert $out img$i.gif convert -rotate 90 img$i.gif img$i.gif done253941というのは1時刻の行数です。最後にconvert -delay 100 -loop 10 img*.gif anime.gifなどとします。
pshistogram tmp -W100 -L -BSWne -Ggray -A -Jx1/-0.008 -Z1>test.epsデータは
48 60 40 160 300 60のように1列に値がならんでいるものとします。