PyGMTの使い方(その3)

PyGMT
PyGMTの使い方(その2)
PyGMTの使い方のサンプルを例示しています

前回の続きです。

今回はアラカルトで図とコードを掲載していきます。
GMT6で普段用いているJR等はAliasとして登録されているので、そこまで難しくないと思います。

なお、下記は地図の描き方を扱っていますが、グラフもほとんど同じです。

地図の枠を描く

gmt begin basemap01 png
    gmt basemap -JM12 -R120/150/20/50 -Bagf -BWSNE+t"japan"
gmt end

import pygmt
fig = pygmt.Figure()
fig.basemap(region=[120, 150, 20, 50], projection="M12", frame=["agf", "WSNE+tjapan"])
fig.show()
fig.savefig("basemap01.png")

もしくは、

import pygmt
fig = pygmt.Figure()
fig.basemap(R=[120, 150, 20, 50], J="M12", B=["agf", "WSNE+tjapan"])
fig.show()
fig.savefig("basemap01.png")

となります。
この結果が、

となります。

海岸線を描く

gmt begin basemap01 png
    gmt basemap -JM12 -R120/150/20/50 -Bagf -BWSNE+t"japan"
    gmt coast -W0.25 -Df
gmt end

import pygmt
fig = pygmt.Figure()
fig.basemap(region=[120, 150, 20, 50], projection="M12", frame=["agf", "WSNE+tjapan"])
fig.coast(shorelines="0.25", resolution="f")
fig.show()
fig.savefig("basemap03.png")

もしくは、

import pygmt
fig = pygmt.Figure()
fig.basemap(R=[120, 150, 20, 50], J="M12", B=["agf", "WSNE+tjapan"])
fig.coast(W="0.25", D="f")
fig.show()
fig.savefig("basemap03.png")

となり、この結果が

となります。

地図の海岸線を描き、陸と海を任意の色で塗りつぶす

gmt begin basemap01 png
    gmt basemap -JM12 -R120/150/20/50 -Bagf -BWSNE+t"japan"
    gmt coast -W0.25 -Df -Glightgray -Slightcyan
gmt end

import pygmt
fig = pygmt.Figure()
fig.basemap(region=[120, 150, 20, 50], projection="M12", frame=["agf", "WSNE+tjapan"])
fig.coast(shorelines="0.25", resolution="f", land="lightgray", water="lightcyan")
fig.show()
fig.savefig("basemap03-2.png")

もしくは、

import pygmt
fig = pygmt.Figure()
fig.basemap(R=[120, 150, 20, 50], J="M12", B=["agf", "WSNE+tjapan"])
fig.coast(W="0.25", D="f", G="lightgray", S="lightcyan")
fig.show()
fig.savefig("basemap03-2.png")

となり、この結果が

となります。

地図にスケールを付ける

gmt begin basemap01 png
    gmt basemap -JM12 -R120/150/20/50 -Bagf -BWSNE+t"japan"
    gmt coast -W0.25 -Df -Glightgray -Slightcyan -LJBR+jTL+o-1.5/1.5+c20+w500+f
gmt end

import pygmt
fig = pygmt.Figure()
fig.basemap(region=[120, 150, 20, 50], projection="M12", frame=["agf", "WSNE+tjapan"])
fig.coast(shorelines="0.25", resolution="f", land="lightgray", water="lightcyan", map_scale="JBR+jTL+o-1.5/1.5+c20+w500+f")
fig.show()
fig.savefig("basemap04.png")

もしくは、

import pygmt
fig = pygmt.Figure()
fig.basemap(R=[120, 150, 20, 50], J="M12", B=["agf", "WSNE+tjapan"])
fig.coast(W="0.25", D="f", G="lightgray", S="lightcyan", L="JBR+jTL+o-1.5/1.5+c20+w500+f")
fig.show()
fig.savefig("basemap04.png")

となり、この結果が

となります。

記号を地図にプロットする

longitude_deg,latitude_deg,depth,magntiude
135.5075,33.7995,13.41,0.2
136.6225,35.2432,8.08,0.3
141.1818,37.0187,19.66,1.1
140.6025,36.7002,11.21,0.9
130.631,31.3643,11.5,0.7
129.0928,31.1478,6.35,3.5
142.6607,39.5867,29.71,2.2
140.4073,34.4523,58.63,1.3
143.8627,38.188,47.0,2.4
131.5128,32.299,52.67,0.6
140.5852,36.7907,7.82,1.0
133.9953,33.3358,14.82,0.6
141.6155,44.5963,0.0,0.7
129.2125,28.0767,13.4,0.9
139.9077,37.2092,7.18,1.7
140.8788,36.3245,42.93,1.1
136.7715,37.079,10.19,1.0

というCSVがあったとします。これを地図にプロットしよう。

#!/bin/bash
gmt begin basemap05 png
    gmt basemap -JM12 -R120/150/20/50 -Bafg -BWSNE+t"Japan"
    gmt coast -W0.25 -Df -Glightgray -Slightcyan -LJBR+jTL+o-1.5/1.5+c20+w500+f
    gmt makecpt -Cseis -T0/100/1 -Z
    awk -F"," '{print $1,$2,$3,$4*0.1}' "sample.csv" | gmt plot -Sc -W0.25 -C
    gmt colorbar -DJBR+jBL+o1.5/0+w-5/0.2 -Baf -C
gmt end

は、

import pygmt
import pandas as pd
df = pd.read_csv("sample.csv")
fig = pygmt.Figure()
fig.basemap(region=[120, 150, 20, 50], projection="M12", frame=["agf", "WSNE+tjapan"])
fig.coast(shorelines="0.25", resolution="f", land="lightgray", water="lightcyan", map_scale="JBR+jTL+o-1.5/1.5+c20+w500+f")
pygmt.makecpt(cmap="seis", series="0/200/1", continuous=True)
fig.plot(
    x=df.longitude,
    y=df.latitude,
    sizes = df.magnitude * 0.1,
    color = df.depth,
    style="c",
    cmap = True,
    pen = "0.25",
)
fig.colorbar(position="JBR+jBL+o1.5/0+w-5/0.2", cmap=True, frame="af")
fig.show()
fig.savefig("basemap04.png")

となります。Aliasを用いた書き方は省略します。

この結果が、

となります。

コメント

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