🦔

GMTのサンプルスクリプトを試す5~plot~

2024/10/09に公開

GMT(Generic mapping tools)6.5の公式HPに記載されている例・サンプルスクリプトが示されているが、図が示されていないので描いてみる。

引用元
GMT6.5.0 Documentation basemap

GMTのplotモジュールは描けるものが非常に多いわりに例が少ない。とりあえず、ここに記載されている例から順に実行していってみよう。

-Sc 円を描く

gmt plot @DSDP.txt -R100/160/-20/30 -Jm0.3c -Sc0.2c -Gred -Bafg -pdf map


@のファイルはGMTのサーバからダウンロードできるサンプルファイルだ。
-Sc0.2cで0.2cmの円を描画する。
-Gredで円を赤色に塗りつぶしている。

-C カラーパレット

続いては地震のファイルから描画するようだ。

gmt plot quakes.xyzm -R0/1000/0/1000 -JX6i -Sc -Crgb -B200 -pdf map

しかし、quakes.xyzmというファイルは手元にないのでエラーが出てしまう。適当に作成しておこう。また、rgbというカラーパレットも存在しないので作ろう。seisというカラーパレットが存在するので、makecptモジュールでカラーパレットを作成した。深さを0~500kmの範囲で赤から青色のグラデーションとしたcolorbarで深さのスケールも付けておく。ちなみに、GMTで使えるカラーパレットはこちらを参照。
4カラム目に地震のマグニチュードとして円の大きさを指定することになるとのこと。ただし、M8.0をそのままプロットすると円が大きくなりすぎるので、-Hでスケールを指定できる。0.2倍程度がちょうどよいだろう。

     #X  Y  Dep(km) Mag.
echo 200 200 10  2.0 > quakes.xyzm
echo 400 400 50  4.0 >> quakes.xyzm
echo 600 600 100 6.0 >> quakes.xyzm
echo 800 800 500 8.0 >> quakes.xyzm
 
gmt begin map2 png
gmt makecpt -Cseis -T0/500/1 -Z -V
gmt plot quakes.xyzm -R0/1000/0/1000 -JX6i -Sc -C -B200 -H0.2
gmt colorbar -Baf -C -B+lDepth -By+lkm
gmt end

深さに応じて色が変わり、マグニチュードによって円の大きさが変わる図になった。

-Sf 境界線

次はこれ

gmt plot trench.txt -R150/200/20/50 -Jm0.15i -Sf0.8i/0.1i+l+t -Gwhite -W -B10 -pdf map

trench.txtがないので、プレート境界データをここから、boudaries.gmtというプレート境界を示したファイルをダウンロードして使用させていただいた。

gmt begin map3 png
gmt plot boundaries.gmt -R150/200/20/50 -Jm0.15i -Sf0.8i/0.1i+l+t -Gwhite -W -B10
gmt coast -R150/200/20/50 -Di -W
gmt end

ということで描いてみたらこうなった。

少しだけ千島海溝が描かれているようだ。(例とはいえ、範囲はホントにこれでよいのだろうか。。。)

-Sfでfrontを描ける。-Sfの説明を見る限りこれは非常に複雑でいろんな線を描けるオプションのようだ。
この例では-Sf0.8i/0.1i+l+tとなっている。
0.8iでシンボルの間隔、0.1iでシンボルのサイズを指定している。+lまたは+rを付けると、線の左か右にシンボルを書くかを指定できる。+lや+rを付けないデフォルトは線の上になるらしい。その後ろに付ける+tでシンボルの形を指定できる。指定できるのは以下のとおり。
+b:四角形
+c:円
+f:断層
+s:スリップ(矢印の角度を指定できる)
+t:三角形
+v:逆三角形

-Z Zの値

さて、次

echo 175 30 | gmt plot -R150/200/20/50 -JM15c -B -Sc0.5c -Z65 -Ct.cpt -G+z -pdf map

t.cptというものがないので、予めmakecptでカラーパレットを作っておく必要がありそう。先ほどの地震の深さと同じカラーパレットとして以下のように図を作ってみた。

gmt begin map4 png
gmt makecpt -Cseis -T0/500/1 -Z 
echo 175 30 | gmt plot -R150/200/20/50 -JM15c -B -Sc0.5c -Z65 -C -G+z
gmt colorbar -Baf -C -B+lDepth -By+lkm
gmt end

Echoコマンドで値をplotに直接渡せるようだ。Echoで渡した値にはX,Yしかないが、-ZでZの値(ここで言うと深さ)を指定できる。65なので赤色になる。-Zを使う場合は-G+zを追記しないといけない。

-S? シンボル

Misc.txtには最後のコラムにシンボルを記載しており、4コラム目に大きさ、3コラム目にカラーパレットでの色を指定しているとのこと。そして5カラム目にシンボルの形をアルファベット/記号で指定することもできる。アルファベットは-Sオプションに付属するアルファベットと同じとのこと。

例えばmisc.txtを以下のように指定するとこうなる。

echo  20  80  60 0.4 a >  misc.txt #★
echo  40  80 120 0.6 d >> misc.txt  #◆
echo  60  80 180 0.8 g >> misc.txt #八角形
echo  80  80 240 1.0 h >> misc.txt  #六角形
echo  20  40 300 1.2 i >> misc.txt  #▼
echo  40  40 360 1.6 n >> misc.txt  #五角形
echo  60  40 420 1.8 p >> misc.txt  #point
echo  80  40 480 2.0 s >> misc.txt #■
echo  20   0  20 1.8 t >> misc.txt #▲
echo  40   0  80 1.6 x >> misc.txt  #×
echo  60   0 120 1.4 y >> misc.txt  #|
echo  80   0 240 1.2 - >> misc.txt #-
echo  20 -40 360 1.0 + >> misc.txt  #+
gmt begin map5 png
gmt makecpt -Cseis -T0/500/1 -Z -V
gmt plot misc.txt -R0/100/-50/100 -JX6i -S -C -B20
gmt colorbar -Baf -C -B+lDepth -By+lkm


×と|と-と+は色の数値を指定しても黒線になるようだ。4カラム目の数値にしたがってシンボルの大きさが変わる。

まとめ

-Sfは境界などを描くことに使える。後々詳しく紹介する予定。
-Cを使うと図形の色を3カラム目の数値で指定できる。
-S?の?でシンボル図形を指定できる。
1カラム目:X
2カラム目:Y
3カラム目:カラーパレットの指標となる数値
4カラム目:図形サイズの指標となる数値
5カラム目:図形

Discussion