いちからはじめる GMT その55 - grdgradient -N

2011年 10月 1日 掲載


grdgradient の正規化オプション -N のつづきである. grdgradient の正規化には,-N,-Ne,-Nt の 3つのタイプがある. 今回はそれぞれの特性を見ていく.

サンプルデータは,前回同様 AWKスクリプト mountains.awk で作る.

$ awk -f mountains.awk > mountains.txt
$ xyz2grd mountains.txt -Gmountains.grd -R138.5/139.2/34.5/35.5 -I0.002

grdgradient で -N をつけない場合は,陰影付きの地形図は以下のようになる.

$ grdgradient mountains.grd -Gg.grd -A90 -M
$ makecpt -Cglobe > g.cpt
$ grdimage mountains.grd -Cg.cpt -Jm10 -Ig.grd -K > mountains.eps
$ pscoast -J -R -Sblue -Df -O >> mountains.eps

地形図

まずは -Nオプションで,傾斜を正規化する. あとで正規化しない場合と比較するため,傾斜のファイルは gn.grd と変えておこう.

$ grdgradient mountains.grd -Ggn.grd -A90 -M -N
$ grdimage mountains.grd -Cg.cpt -Jm10 -Ign.grd -K > mountains.eps
$ pscoast -J -R -Sblue -Df -O >> mountains.eps

地形図

正規化前よりも,明暗が濃くなっているのがわかる.

-Nオプションでどのように正規化されたかは, 元の傾斜ファイル g.grd と正規化後の傾斜ファイル gn.grd を比較して確かめることができる.

$ grd2xyz g.grd | awk '{print $3}' > g.txt
$ grd2xyz gn.grd | awk '{print $3}' > gn.txt
$ paste g.txt gn.txt | sort -u | psxy -Jx15/3 -R-0.2/0.2/-1/1 -Sc0.1 -Bg0.1a0.2 > g_gn.eps

正規化

x軸の値が正規化前の傾き g,y軸の値が正規化後の傾き gn である. 正規化前の g と正規化後の gn は比例関係にあることが,この図からわかる.

さて,次は -Ne による正規化である. man grdgradient によると,ラプラス分布の累積分布関数に従うとのことである.

$ grdgradient mountains.grd -Ggn.grd -A90 -M -Ne
$ 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

ここで,pscoast の -Rオプションのパラメータを省略すると, 上で psxyを実行したときの -R-0.2/0.2/-1/1 が使われてしまうので, めんどうでも描画範囲を打ちこまなくてはならない.

できあがった地形図は以下のようになる.

地形図

-N で正規化したときより,明暗の境目がはっきりしている. 正規化前の g と正規化後の gn の関係は,以下のようになっている.

$ grd2xyz gn.grd | awk '{print $3}' > gn.txt
$ paste g.txt gn.txt | sort -u | psxy -Jx15/3 -R-0.2/0.2/-1/1 -Sc0.1 -Bg0.1a0.2 > g_gn.eps

正規化

g=0 付近の傾きが急で,正の値の半分が 1,負の値の半分が -1 に変換されている.

最後は,-Nt である. man grdgradient によると,コーシー分布の累積分布関数に従うとのこと.

$ grdgradient mountains.grd -Ggn.grd -A90 -M -Nt
$ 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

地形図

なんか,まったりとした図になった. g と gn の関係は以下のようになっている.

$ grd2xyz gn.grd | awk '{print $3}' > gn.txt
$ paste g.txt gn.txt | sort -u | psxy -Jx15/3 -R-0.2/0.2/-1/1 -Sc0.1 -Bg0.1a0.2 > g_gn.eps

正規化

カーブはゆるやかで,最大値が 1 に達していない.

ここで,ラプラス分布とコーシー分布の累積分布関数がどういうものか,簡単に紹介しておこう.

ラプラス分布の累積分布関数は,

ラプラス分布の累積分布関数

である. μはこの分布の平均値で,分散σ2 は 2φ2 になる. ラプラス分布の累積分布関数のグラフを描いてみる (μ=0,φ=0.2/√2(σ=0.2)の場合.使用スクリプト:laplace.awk).

$ cat laplace.awk
BEGIN{
  for(x = -2; x <= 2; x += 0.125){
    if(x < 0){
      print x, 0.5 * exp(sqrt(2) * x / 0.2)
    }else{
      print x, 1 - 0.5 * exp(- sqrt(2) * x / 0.2)
    }
  }
}
$ awk -f laplace.awk | psxy -Jx3 -R-2/2/0/1 -Ba1g0.5 -W4 > laplace.eps

ラプラス分布の累積分布関数

コーシー分布の累積分布関数は,

コーシー分布の累積分布関数

である. この分布には,平均値,分散というものがなくて, μは最頻値をあたえる位置母数,φは半値半幅をあたえる尺度母数である. コーシー分布の累積分布関数は以下のような形をしている (μ=0,φ=0.2 の場合.使用スクリプト cauchy.awk).

$ cat cauchy.awk
BEGIN{
  for(x = -2; x <= 2; x += 0.125){
    print x, 0.5 + 1 / 3.1415 * atan2(x, 0.2)
  }
}
$ awk -f cauchy.awk | psxy -Jx3 -R-2/2/0/1 -Ba1g0.5 -W4 > cauchy.eps

コーシー分布の累積分布関数

要するに,

にしたがうように変換しているのである.


さて,-Nオプションには,3つのパラメータをあたえることができるのだが, 長くなるので次回に説明することとしたい.


参考文献


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


(C) 2011 KDO