gmt grdviewの使い方

grdview — GMT 6.2.0 documentation

gmt grdview鳥観図を作成するためのコマンドです。
DEMの鳥観図をはじめ、3次元のグリッドデータの鳥観図も作成できます。

DEMの鳥観図を作成する

gmt grdview <DEMファイル> -p[方位角/仰角/高さ] -Q[m/s/i][+m] [-S]
-Qm を指定すると表面はメッシュ状になる。
-Qs を指定すると表面は何も描かれない
-Qi を指定すると表面は画像が描画される。
+mを指定するとモノクロになる。
※ 色を付けたい場合は makecpt でカラーパレットを作成する必要があります。

たとえば、富士山近辺の地図を描いてみます。

#!/bin/bash
gmt begin fuji png
    gmt basemap -JM12 -R138.487240/138.954132/35.200372/35.552028 -Bafg -BWSNE
    gmt makecpt -Cgeo -T-8000/8000/200 -Z
    gmt grdcut @earth_relief_01s -R138.487240/138.954132/35.200372/35.552028 -Gdem.nc
    gmt grdgradient dem.nc -Ggrad.grd -A45 -Ne0.8
    gmt grdimage dem.nc -Igrad.grd -C
    gmt coast -Df -W0.25 -LJBR+c35.200372+w10+jBL+o-1/-1+f
gmt end

これの鳥観図を作成してみましょう。

DEMの鳥観図はグリッドを表示させなくていいので、-Qs で問題ありません。

#!/bin/bash
gmt begin fuji_3d png
    gmt basemap -JM12 -JZ4 -R138.487240/138.954132/35.200372/35.552028/0/5000 -Bxyafg -Bzafg -BWSNEZ -p220/20/0
    gmt makecpt -T-8000/8000/200 -Z -Cgeo
    gmt grdview @earth_relief_01s -Qs -p -C
gmt end

この結果が、

となります。-pの値を変えると様々な角度から富士山を眺めることができます。

グラフの鳥観図を描く

まず、グリッドデータの作成を行います。
今回は適当に作ります。

#!/bin/bash
for i in `seq 0 1 10`
do
    for j in `seq 10 -1 0`
    do
        k=$(($i*$j))
        echo "$i $j $k">> plot.txt
    done
done

これで、plot.txt が出力される。

さらに、xyz2grd を用いてグリッドデータに変換する。

#!/bin/bash
for i in `seq 0 1 10`
do
    for j in `seq 10 -1 0`
    do
        k=$(($i*$j))
        echo "$i $j $k">> plot.txt
    done
done
gmt xyz2grd plot.txt -Gdata.grd -I1 -R0/10/0/10

これで、data.grd が出力される。

あとは grdview するだけ。今回は方位角を120度、仰角は20度とした。

#!/bin/bash
for i in `seq 0 1 10`
do
    for j in `seq 10 -1 0`
    do
        k=$(($i*$j))
        echo "$i $j $k">> plot.txt
    done
done
gmt begin plot_3d png
    gmt basemap -JX10 -JZ10 -R0/10/0/10/0/100 -Bafg -Bzafg -BWSNEZ -p120/20/0
    gmt makecpt -Crainbow -T0/100/1 -Z
    gmt xyz2grd plot.txt -Gdata.grd -I1 -R0/10/0/10
    gmt grdview data.grd -Qs -p -C
gmt end

この結果が、

となる。

なお、-Qs-Qm に変えると、

とメッシュになる。色も付けてかつメッシュにする場合は -Qsm とすればよい。
その結果が、

となる。

コメント

タイトルとURLをコピーしました