anacondaを利用すればWSLを使わずに簡単にGMTを使うことが出来ると聞き、実際に使用してみました。導入から簡単な使用法まで書いていこうと思います。
GMT(Generic Mapping Tools)
手軽に地図を描画できるツールとして有名なもの。
筆者は今までmacで利用していたがWindowsでも利用したいと導入した。
公式サイト
GMT6
環境構築
PyGMTより引用したコードを使用します。
はじめに
今回はpygmtというライブラリを使用しますが、anacondaであれこれやる前にGMT6をインストールする必要があります。
GMT6から最新版をインストールしておきましょう。
##GMTを扱う環境の準備
まずはanaconda、baseからターミナルを開き、以下のコードを実行します。
conda config --prepend channels conda-forge
次にanacondaの環境を新しく作成します。
ここでは公式に従い名前をpygmtにします。
conda create --name pygmt python=3.9 numpy pandas xarray netcdf4 packaging gmt
これでpygmtを扱うために必要なライブラリの入ったpygmtという環境が構築されるのでそのままそちらに切り替えましょう。
conda activate pygmt
切り替えたらPyGMTをインストール。
conda install pygmt
ついでにアップデート。
conda update pygmt
これで完了です。
正常に動作するかテストしてみましょう。
import pygmt
pygmt.show_versions()
fig = pygmt.Figure()
fig.coast(region="g", frame=True, shorelines=1)
fig.show()
使い方
簡単な使い方を自分が忘れないために書いていこうと思います。
fig = pygmt.Figure()
fig.coast(shorelines="1/0.5p", region=[30, 60, -30, -5], projection="M25c")
fig.show()
これで冒頭でお見せしたマダガスカルの画像が出来上がります。
shorelinesで海岸線の太さを指定、regionで経度、緯度、projectionではメルカトル図法を使用すると指定しています。
なんかmplと似ている…?
これに色々追加していく感じになります。
フレーム(外枠)とグリッドの追加、タイトルの追加
fig.basemap(frame=["ag", '+t"Madagascar Island"'])
海岸線を描く
fig.coast(land="black", water="skyblue")
プロットする
c0.5cの意味は"circles of 0.5 centimeter size"。
fig.plot(x=47.5166, y=-18.9333, style="c0.5c", color="white", pen="black")
テキストを表示する
表示する座標、入力するテキスト、テキストのフォント(太さ、書体、色)を設定しています。
他にも枠をつけたり、斜めに表示することもできます。
fig.text(x=47.5166, y=-18.9333,text="Madagascar", font="18p,Helvetica-Bold,red")
他にも色々とできるようなので興味のある方は調べてみてください。