はじめに言っておきますが、
今回のやり方は完全に自己流です。
もう少し効率のいいやりかたがあれば、教えてください…。
今回は点在した調査データを(下図)、
10分間隔に整理し(下図)、
格子内のデータの平均値を色で表示してみます。
GMT的には格子の中心に、格子と同じ大きさの長方形を書いて、
それにデータに応じた色を塗るという操作をしています。
この様な図は、プログラムでデータセット作るのが常套手段ですが、
その方法は他で紹介されていると思いますので、
今回はExcelとGMTを使って描いてみます。
今回の手順ですが、
のような感じで進めていきます。
データに整理するために調査点のデータに
10分間隔のラベルを付けます。
こういった場合、ExcelのFLOOR関数を使うと簡単です。
Floor関数は四捨五入に似たようなものなのですが、
任意の間隔で切り捨てしてくれる関数です(うまく説明できてない気が…)。
=floor(緯度or経度, 間隔)
で使用します。
例えば、
北緯36.6度、東経140.6度の位置データに、
10分間隔(10/60)のラベルをつけると、
北緯36.6は
=floor(36.6, 10/60)
=36.5
東経140.6度は
=floor(140.6, 10/60)
=140.5
となります。
詳しくはこちらのシートをどうぞ。
以下の図ようなイメージ
(格子内に点在するデータラベルをつけて、集約する)
さらに上記のラベルだと、格子上にデータが乗ってしまいます。
そこで5分ずらしてラベルを付けてあげます。
北緯36.6は
=floor(36.4, 10/60)+5/60
=36.5833…
東経140.6度は
=floor(140.2, 10/60)+5/60
=140.5833…
つまりこういうこと
floorで作成したデータラベルをもとにピボットテーブルで
データを集約し、格子毎の平均値を算出します。
こちらのファイルのタブ「格子毎の平均値算出」
これで
緯度ラベル、経度ラベル、格子内の平均測定値の
データが得られます。
作成中
----------------------------------------------------------
#パラメータ
lat=140/148/38/44.5
col=GMT_grid_col2.cpt
data=grid_color.txt
output=grid_data.eps
#カラーパレット作成
#makecpt -CGMT_grid_col.cpt -T0.01/1.5/0.01> GMT_grid_col2.cptmakecpt
#データファイルから経度、緯度、観測データ平均値を抽出
#データの中心に長方形を描く
awk '{print $1,$2,$3,0.24,0.32}' $data | \psxy -Jm -Sr -C$col -P -R$lat -K
> $output
#陸地を描く
pscoast -R -Jm -Df -W1 -G200 -A500 -Ba2g0.166666666:."grid_data": -P -O -K
>> $output
#凡例
psscale -D6/-1/8/0.3h -O -K -C$col -I -B0.2 >> $output
#データが無い地点に×をかく
awk '($3==0 ){print $1,$2}' $data | \
psxy -Jm -Sx0.2 -G0 -W5/0 -R -O >> $output
----------------------------------------------------------