見出し画像

PythonからGMT6.xを使って天気図を作成する環境を作る

はじめに

以前からGMTで天気図を自動生成するシステムを作っている。

10年以上前になるかと思うが、気象予報士会関西支部の京都部会でGMTで天気図を作成する方法を教わった。

その際には、Windows+Cygwin環境だったのだが、自分にとっては使い勝手が悪かったので、Bashのプログラムを参考にさせてもらいつつ、Linux上で動作するように自分でプログラムを書き直した。

ただ、あれから随分と月日が流れ、GMT4.xから最新版はGMT6.xとなった。そろそろGMT6へ移行するとともに、使い勝手の悪いBashから、Python APIを使い、Pythonプログラムへ移行することにした。

そこで今回は、GMT6.xをPythonで使うための環境構築をする。

Anacondaをインストールする

PythonからGMTを使うためのパッケージには、PyGMTと言うものがある。このサイトの情報を元にインストールしていくが、Anacondaの環境でのセットアップについて記載されているので、以下はそれに従う。

私の構築環境はLinux Mint 20だが、Windows、MacでもAnacondaを使えば同じことができるだろう。下記にはLinux環境のAnacondaのセットアップを示す。

AnacondaのHPからLinux用のインストール・シェルをダウンロードし、実行するのだが、AnacondaのGUIパッケージを使用する場合には事前に、下記を実行しておく。

$ apt-get install libgl1-mesa-glx libegl1-mesa libxrandr2 libxrandr2 libxss1 libxcursor1 libxcomposite1 libasound2 libxi6 libxtst6

次にAnacondaインストーラーをダウンロードして実行する。AnacondaのHPで最新版を確認して欲しい。

$ wget https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh
$ bash Anaconda3-2020.02-Linux-x86_64.sh

インストール先などを聞かれるので、使用環境に応じて入力する。

AnacondaにPyGMTが動く環境を作成する

まず、conda-forgeのパッケージを取得するための設定を行う。

$ conda config --prepend channels conda-forge

次に仮想環境を作成する。ここでは仮想環境名を"weather"としている。その他、必要なパッケージを指定しておく。

$ conda create --name weather python=3.8 pip numpy pandas xarray netcdf4 packaging gmt

作成した仮想環境をActivateする。

(base) username@Mint-Cinnamon:~$ conda activate weather
(weather) username@Mint-Cinnamon:~$ ​

そして、PyGMTをインストールする。

(weather) username@Mint-Cinnamon:~$ conda install pygmt

もう一つ、GSM/MSMのGPVデータをデコードするのに必要なwgirb2を使っていたのだが、このPython用のpygribというパッケージもインストールする。

(weather) username@Mint-Cinnamon:~$ conda install pygrib

PyGMTのHPに記載されているが、インストールしたPyGMTのテストする。その前に、下記の必要なパッケージをインストールしておく。

(weather) username@Mint-Cinnamon:~$ conda install pytest pytest-mpl ipython

そして、テストを実行する。

(weather) y-tanaka@Mint-Cinnamon:~$ python3
Python 3.8.4 | packaged by conda-forge | (default, Jul 17 2020, 15:16:46) 
[GCC 7.5.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pygmt
>>> pygmt.show_versions()
>>> pygmt.test()

実行結果は、、、一部failedが出るな。

===== 53 failed, 212 passed, 1 skipped, 353 warnings in 51.55s ======

よく分からないが、まあいいか。とりあえずこれで進める。

次回は、実際にPythonプログラムで天気図を作成する。

天気図の作図にあたっては、京都大学生存圏研究所の生存圏データベースのGPVデータを使用させて頂いています。


よろしければ、サポートをお願いします。 より多くの方に役立つnoteを書けるよう頑張ります!!