gmt inset の使い方

inset — GMT 6.3.0 documentation

gmt insetは地図の中に全体図を書くことができるモジュールです。
かなり使えると思います。

gmt inset begin -D<どこに>+j<どこを置くか>+w<大きさ>+o<オフセット> [ -F<テキストボックスの設定> ] [ -M<余白> ] [ -N ]
-N をつけると定めたキャンバスからはみ出た図は描画しない

この先を見る前に、下記の記事を読んだ方が理解しやすいです。

位置コードについて

位置コードについて
凡例やスケールの際に用いる位置コードについて説明しています。

震源分布図を描く

これを執筆している当時(2021年8月)は茨城県沖で地震が頻発していました。
今回は、その震源分布図と位置図を作成してみましょう。

地震データはこちらから。

震源分布図を描くだけであれば簡単です。
今回は茨城県沖を描きたいので、

#!/bin/bash
gmt begin hogehoge png
    gmt basemap -JM12 -R139/142.5/34.5/36.5 -Bafg -BWSNE
    gmt coast -Df -W0.25 -LjBR+jBR+o0/-1+c20+w100+f -Glightgray -Slightcyan
    gmt makecpt -Cseis -T0/100/1 -Z
    gmt plot "jishin.csv" -Sc -C -W0.25
    gmt colorbar -DJBR+jBL+o1.5/0+w-5/0.2 -Baf+l"depth"
gmt end

とすれば、

となります。

全体図を描く

今回は海岸線を見れば関東地方だと分かりますが、日本国のどこら辺かを示すともっと分かりやすくなります。
この時に、gmt inset を用いると便利です。

もちろん。gmt basemap で書いていっても可能です。位置合わせが面倒ですね。

全体図の場所を指定する。(-D)

まず、全体図を置く場所を指定します。-Dg, -Dx, -Dj, -DJの中から選びます。
位置コードを使うのが一番ですが、緯度経度や座標上でも指定できます。

今回は右下から0.1cmのところに、ヨコ2cm,タテ1.7cm全体図の右下を置きたいので、-DJBR+jBR+o1+w2/1.7とします。

ボックスの設定を行う(-F)

ボックス内の背景は白塗りつぶし、枠線は0.25cmとします。
これが、-F+gwhite+p0.25 です。

ボックス内に余白を作る(-M)

ボックス内に余白を0.01cmだけ付けます。 -M0.01
これは儀式として行った方がいいでしょう。


あとは、描きたい内容を記述するだけです。
以上を組み合わせると、

#!/bin/bash
gmt begin hogehoge png
    gmt basemap -JM12 -R139/142.5/34.5/36.5 -Bafg -BWSNE+t"20210801-20210812"
    gmt coast -Df -W0.25 -LjBR+jBR+o0/-1+c20+w100+f -Glightgray -Slightcyan
    gmt makecpt -Cseis -T0/100/1 -Z
    gmt plot "jishin.csv" -Sc -C -W0.25
    gmt colorbar -DJBR+jBL+o1.5/0+w-5/0.2 -Baf+l"depth"
    gmt inset begin -DjBR+w2/1.7+o0.1 -F+gwhite+p0.25 -M0.01
        gmt set MAP_FRAME_TYPE = "plain"
        gmt basemap -R127/150/30/46 -Bxy
        gmt coast -Df -W0.25 -Glightbrown
        gmt plot -W0.5 -Wblue -L << END
139 34.5
139 37
142.5 37
142.3 34.5
END
    gmt inset end
gmt end

となり、この結果は

となります。

コメント

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