2011年 10月 1日 掲載
grdgradient の正規化オプション -N では, 「amp」「sigma」「offset」の 3つのパラメータを指定ですることができる.
まずは,-N のときのパラメータの作用である. -Namp/sigma/offset とすると,傾き g は次の式で gn に正規化される.
-N の場合,sigma の値は使われない. g = offset のとき,gn = 0 となり,最大幅は amp となる(下図).
パラメータを指定しない場合は,amp = 1,offset = がデフォルト値として使われる.
次は,-Ne の場合である. man grdgradient には,
とあるが,どうもこれはおかしい. 1 - exp(x) は,x > 0 で負,x < 0 で正になるので, この式の通りだと,g > offset で gn が負,g < offset で gn が正, と傾きが逆になってしまう. 前回紹介したラプラス分布の累積分布関数からは,
となるはずである. ここで √2 が出てくるのは,ラプラス分布の分散が σ2 = 2φ2 だからである.
パラメータが無指定の場合,amp と offset は,-N のときと同じく, amp = 1,offset = となる. sigma は,(g - offset) の L1ノルムから推定されると man grdgradient にあるが, 筆者が試した感じでは(正規化のプログラムを組んでみた),
か,これに近い値が使われるようである.
-Nt の場合の正規化の式は,
となる. パラメータ無指定の場合は,やはり amp = 1 で,offset = である. sigma は,(g - offset) の L2ノルムから推定されるとあるが, 標準偏差
か,これに近い値が使われるようだ.
さて,grdgradient の正規化には,-N,-Ne,-Nt の 3つのタイプがあり, amp,sigma,offset の 3つのパラメータを指定できるのだが, どのように使えばいいのだろうか.
man grdgradient の HINTS によると,地形図に陰影を付ける用途なら, まずは「-Ne0.6」を試すのがいいそうである.
$ grdgradient mountains.grd -Ggn.grd -A90 -M -Ne0.6 $ grdimage mountains.grd -Cg.cpt -Jm10 -Ign.grd -K > mountains.eps $ pscoast -J -R138.5/139.2/34.5/35.5 -Sblue -Df -O >> mountains.eps
(mountains.grd, g.cpt は 前回作成したものを使用)
複数の地域の地図を描く場合は,sigma,offset をそろえておいた方がよい. この場合,offset は 0,sigma は正規化前の傾斜ファイルの標準偏差を参考にして決めるのがよいそうだ. grdファイルの標準偏差は,grdinfo -L2 で取得できる.
$ grdgradient mountains.grd -Gg.grd -A90 -M $ grdinfo -L2 g.grd g.grd: Title: Directional derivative(s) g.grd: Command: grdgradient mountains.grd -Gg.grd -A90 -M g.grd: Remark: g.grd: Gridline node registration used g.grd: Grid file format: nf (# 18) GMT netCDF format (float) (COARDS-compliant) [DEFAULT] g.grd: x_min: 138.5 x_max: 139.2 x_inc: 0.002 name: x nx: 351 g.grd: y_min: 34.5 y_max: 35.5 y_inc: 0.002 name: y ny: 501 g.grd: z_min: -0.199882388115 z_max: 0.199882388115 name: z g.grd: scale_factor: 1 add_offset: 0 g.grd: 1002 nodes set to NaN g.grd: mean: 1.91751131035e-13 stdev: 0.0634233761637 rms: 0.0634231947973
[ KDOホームにもどる] [ いちからはじめる GMT インデックスにもどる ]
(C) 2011 KDO