making composit grid - 複数のデータを優先度をつけて重ねたグリッドをつくる
使うコマンド grdsample, grdmath 図化スクリプト付き(makecpt,grdimage,grdcontour,psbasemap)
bash スクリプト例
(図化まで)
# make composit grid file
# foreground: multibeam bathymetry
# background: altimetry
# parameter setting
region=137:40/137:55/16:40/17 # grid region east/west/south/north
interval=0.04m
# grid interval
tension=0.65
# tension factor
radius=1k
# search radius
xyzfile=area.xyz
# input xyz file
blkfile=area.blk
# block file
grdfile=area.grd
# output grid file
maskfile=area.mask.grd # mask file
maskedfile=area_masked.grd # final masked grid
backgrd=altibathy.grd # background grid file (low resolution)
backgrdsamp=altibathy_resamp.grd # resampled backgorund grid file
compgrdfile=area_composit.grd # composit grid file
#
gmt blockmedian $xyzfile -R$region -I$interval -V > $blkfile
gmt surface $blkfile -R$region -I$interval -T$tension -G$grdfile -fg -V
gmt grdmask $blkfile -R$region -I$interval -NNaN/1/1 -S$radius -G$maskfile -V
grdmath $grdfile $maskfile OR = $maskedfile
gmt grdsample $backgrd -I$interval -R$region -G$backgrdsamp -V
gmt grdmath $maskedfile $backgrdsamp AND = $compgrdfile
# plot
proj=M10
# map projection and scale
ticks=f1ma10m
# boundary tick info
frame=WSne+tsoundings_on_altimetry
# boundary frame info
climit=-6000/-3500/500
# color table min/max/interval
cint=200
# contour interval
cptfile=haxby_area.cpt
# color table
psfile=area_composit.ps
# output postscript file name
gmt makecpt -Chaxby -T$climit -Z > $cptfile
gmt grdimage $compgrdfile -R$region -J$proj -C$cptfile -K -V > $psfile
gmt grdcontour $maskedfile -R$region -J$proj -C$cint -A$aint -L$limit -Wthinner -K -V -O >> $psfile
gmt psbasemap -R$region -J$proj -B$ticks -B$frame -O -V >> $psfile
#
Tips
- 精度の異なる複数のデータセットを持っていた場合、すべてを混ぜてグリッド化するのではなく、データセットAのある場所ではAの値
を優先、という形で複数データを重ねたグリッドを作成するほうが良い場合がある。例えば、測深器で測定できなかった海域を空白データのままにするのではな
く、解像度は悪いが衛星高度計から得られた推定水深データを入れて置きたい、といった場合である。
- スクリプト例は、船で計ったデータがない場合には衛星高度計による推定水深を入れたい場合。船のデータのほうは、あらかじめマスク付き(マス
クはNaN)グリッドにしておく。推定水深のほうがもともと解像度が低いので、リサンプリングして同じ細かさのデータをつくる。最後にAND計算をして、
重ね合わせる。
- この例は2種類のデータの重ね合わせだが、推定水深+昔の測器のデータ+最近の計測データ、といったように3つ以上であっても原理は同じで順番に重ねていけばよい。
- 図化する際には、色も等深線も合成したグリッドを使って描いてもよいが、この例のように精度が著しく異なる2つをあわせている場合には、むしろ等深線は精度の良いデータでのみ描かせて、複数のデータが混在していることを明示するほうがよい。
- color+contourではなく陰影図で重ね合わせる時は,合成したグリッドからgrdgradientで陰影ファイルを作成すると見栄えがよくない.1)精度の良いグリッド(NaNあり)からgrdgradientで通常通りの陰影グリッドを作成する,2)精度の悪いグリッド(全域あり)からgrdgradientで1)と同様に陰影グリッドを作成する,3)2でつくった陰影グリッドファイルをgrdmathで0.2~0.3くらい値を上乗せする(ADD 0.3). こうすると精度の悪い部分は白っぽくなる.4)地形データも陰影データもそれぞれを上記スクリプトのようにgrdmathで演算して重ね合わせする.結果として,精度の悪いところは紗がかかったような感じになる.