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 に「/」をつけて色を指定すると,表面がその色になる.
$ grdview gauss.grd -Jx1 -Jz1 -E45/30 -Qm/cyan > gauss.eps
「/」だけで,色を指定しなければ,透明になる.
$ grdview gauss.grd -Jx1 -Jz1 -E45/30 -Qm/ > gauss.eps
-Cオプションでカラーパレットを指定して -Qs とすると, 表面が z の値に対応したカラーパレットの色に色づけされる.
$ makecpt -Ccool -T0/5/5 -Z > cl.cpt $ grdview gauss.grd -Jx1 -Jz1 -E45/30 -Qs -Ccl.cpt > gauss.eps
-Qs に,さらに m を付すと,色の付いた表面にメッシュも描画される.
$ grdview gauss.grd -Jx1 -Jz1 -E45/30 -Qsm -Ccl.cpt > gauss.eps
-Qs と似た指定に -Qi がある. man grdview によると,-Qs は「surface plot」で, -Qi は「image plot」とのことだが,見た目はほとんど同じである.
$ grdview gauss.grd -Jx1 -Jz1 -E45/30 -Qi -Ccl.cpt > gauss.eps
今回の例では,-Qiの方がちょっとなめらかかな? -Qi では,描画の解像度を指定することができる. m を付してのメッシュの描画はできない.
もう一つ -Qc というのがあって, z の値が NaN の場所が透明になるそうだが,今回はパス.
最後に,図のモノクロ化について. -Qオプションに g を付すと,図がグレースケールで描画される.
$ grdview gauss.grd -Jx1 -Jz1 -E45/30 -Qsmg -Ccl.cpt > gauss.eps
[ KDOホームにもどる] [ いちからはじめる GMT インデックスにもどる ]
(C) 2012 KDO