いちからはじめる GMT その60 - grdview

2012年 1月 2日 掲載


今回紹介する grdview は,ひさしぶりに 3次元描画を行うコマンドである. 以前取り上げた psxyz では「線」を描画したが, grdview は grdファイルを読んで「面」を描画する.

grdview を使用する際に必須となるオプションは,以下の 3つである.

指定の仕方は,方位の値に制限がない以外は psxyz と同じである. ではさっそく,awk と xyz2grdで grdファイルを作ってためしてみよう.

$ awk 'BEGIN{for(x=-4;x<=4;x+=0.25)for(y=-6;y<=6;y+=0.25) print x,y,exp(-(x^2+y^2)/4)*5}' > gauss.txt
$ xyz2grd gauss.txt -Ggauss.grd -I0.25 -R-4/4/-6/6
$ grdview gauss.grd -Jx1 -Jz1 -E45/30 > gauss.eps

ガウス分布

2次元のガウス分布の山が,メッシュで描画された.

描画方法は,-Qオプションで変更できる.

-Qm を指定すると,表面がメッシュで描画され,これがデフォルトである.

$ grdview gauss.grd -Jx1 -Jz1 -E45/30 -Qm > gauss.eps

-Qm

-Qm に「/」をつけて色を指定すると,表面がその色になる.

$ grdview gauss.grd -Jx1 -Jz1 -E45/30 -Qm/cyan > gauss.eps

-Qm/cyan

「/」だけで,色を指定しなければ,透明になる.

$ grdview gauss.grd -Jx1 -Jz1 -E45/30 -Qm/ > gauss.eps

-Q/

-Cオプションでカラーパレットを指定して -Qs とすると, 表面が z の値に対応したカラーパレットの色に色づけされる.

$ makecpt -Ccool -T0/5/5 -Z > cl.cpt
$ grdview gauss.grd -Jx1 -Jz1 -E45/30 -Qs -Ccl.cpt > gauss.eps

-Qs

-Qs に,さらに m を付すと,色の付いた表面にメッシュも描画される.

$ grdview gauss.grd -Jx1 -Jz1 -E45/30 -Qsm -Ccl.cpt > gauss.eps

-Qsm

-Qs と似た指定に -Qi がある. man grdview によると,-Qs は「surface plot」で, -Qi は「image plot」とのことだが,見た目はほとんど同じである.

$ grdview gauss.grd -Jx1 -Jz1 -E45/30 -Qi -Ccl.cpt > gauss.eps

-Qi

今回の例では,-Qiの方がちょっとなめらかかな? -Qi では,描画の解像度を指定することができる. m を付してのメッシュの描画はできない.

もう一つ -Qc というのがあって, z の値が NaN の場所が透明になるそうだが,今回はパス.

最後に,図のモノクロ化について. -Qオプションに g を付すと,図がグレースケールで描画される.

$ grdview gauss.grd -Jx1 -Jz1 -E45/30 -Qsmg -Ccl.cpt > gauss.eps

-Qsmg


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


(C) 2012 KDO