PyGMTの環境構築#

Warning

本セクションの記述はmacOS VenturaおよびLinuxディストリビューションの一種であるUbuntu 22.04LTSで動作確認しています.Windows OSへの直接インストールは,筆者がWindowsの使い方を知らないため記載していません.ただし,WindowsにおいてもWSL2を用いることでUbuntuをはじめとしたLinuxディストリビューションを容易に利用可能なはずです.

PyGMTを使うための環境構築には,Pythonのパッケージ管理システムである

のどちらかを使います.原理的には自分でソースコードから構築することもできるはずですが,PyGMTはそれを動作させるための依存ライブラリが非常に多いため,パッケージ管理システムを使うことを勧めます.

pipはPythonに付属したツールで,Python上で用いるライブラリの管理を行うものである一方,AnacondaはPythonの処理系自体を含むパッケージで,Pythonのみならずそれに(広い意味で)関連した様々なツールのインストールができます.

どちらを使うかは好みの問題だと思いますが,Anaconda(Miniconda)のほうが容易に環境が構築できるようです.一方,Anacondaはライセンスの扱いにやや注意が必要です.

Anaconda (Miniconda)によるインストール#

Anacondaは科学技術計算に必要なライブラリが多く含まれたPython実行環境とそのパッケージ管理システムからなるソフトウェアです.Anacondaをインストールするだけで一通りの計算環境が揃うため便利なものだったのですが,2020年4月より利用規約が改定となり,大規模な商用利用は有償になりました.ただし,FAQによると大学関係者や非商用利用に関してはこの条件が適用されないと明記されています.さらに,有償になるのはパッケージ管理のdefaultのリポジトリであり,コミュニティで作成されているリポジトリであるconda-forgeの利用については制限がなことが明言されているようです.

そこで,ここではPythonおよびパッケージ管理コマンドのcondaを含む最小限のパッケージであるMinicondaを導入し,そこからconda-forgeのリポジトリを使って環境の構築をする方法を紹介します.Minicondaは有償ではないため,この方法ならどなたでも自由に使えるはずです(と,筆者は理解しています).

Minicondaのインストール#

公式ページで配布されているインストーラを使います.OSとCPUアーキテクチャごとにインストーラが異なります.また,macOSではダブルクリックでGUIインストールができる(と思われる;未確認)pkg形式と,Linuxと同じシェルスクリプトによるインストーラが提供されています.ここではシェルスクリプトを用います.アーキテクチャが色々あって迷うかもしれませんが,macOSのCPUは,Appleメニュー(デスクトップ左上のリンゴマーク)の『このMacについて』を選ぶと,『プロセッサ』の欄に記載されていますので,そこにIntelとあるかどうかで判断できるでしょう.Linuxの場合は(ARM製のCPUを用いたスパコンなど以外では)まず間違いなくLinux 64-bitでしょう.

スクリプトをダウンロードしたら,端末(macOSならターミナル.appなど,Linuxならgnome-terminalなど)からそのスクリプトを

bash $(スクリプト名)

として実行し,対話的にy/nを選んでいくことでインストールできます.その際,インストール先も指定できます.デフォルトは~/miniconda3のはずです.ただし~は自分のホームディレクトリを意味します.インストール時にnoと答えていなければ,自分のシェル設定ファイル(.bashrcあるいは.zshrc)にcondaコマンドを実行するための初期設定が書き込まれます.これにより,次回端末(あるいはシェル)起動時より,ターミナルのプロンプトに (base) と記載されるはずです.これはAnacondaの提供する仮想環境のうち,デフォルトの環境であることを意味します.

これでインストール作業は終わりですが,conda自体を最新版にアップデートしておきましょう.

conda update conda

仮想環境の作成とPyGMTのインストール#

このままデフォルトの環境にパッケージを追加していってもよいのですが,ここではPyGMT用の仮想環境を作成します.このようにすると,パッケージ間のバージョン不整合などのトラブルがあったときに,仮想環境ごと切り替えるということが可能になります.ここでは,本Webサイトで利用するパッケージをまるごと導入する仮想環境pygmtを作ってみましょう.ここでは,2023年6月時点で最新となるPyGMT v0.9.0と,GMT v6.4.0 を導入します.

conda create --name pygmt-howto-v0.9 --channel conda-forge \
pygmt==0.9.0 gmt==6.4.0 numpy==1.24.3 scipy==1.10.1 \
obspy==1.4.0 notebook==6.5.4 matplotlib==3.7.1 ffmpeg==4.4.2

Note

コマンドが長いため \で適宜改行しています.仮想環境の名前 pygmt-howto はお好みで適宜変更するとよいでしょう.

上記のコマンドでは,まず --name オプションで仮想環境の名前を,--channel オプションでパッケージのリポジトリとして conda-forge の利用をそれぞれ宣言し,そのあとでインストールする各種パッケージとそのバージョンを == でつないで表現しています.PyGMTのほか,科学技術計算に必要なNumPyやSciPy,地震学データ解析に用いるObsPy,実行環境としてJupyter Notebook(notebookがそれにあたります)などをインストールしています.

Note

なお,まだ本Webで扱われていないパッケージも一部含まれていますが,今後記事を拡張予定です.

上記コマンドからわかるように,condaではPythonのライブラリだけではなく,GMTそのものもインストールされます.ですから,GMTを別途インストールしておく必要はありません.また,Python本体も指定したバージョンのものがインストールされます.ライブラリやPythonのバージョン番号は指定しなければ最新版が入ります.

Tip

これらのライブラリや実行バイナリは,miniconda のインストールディレクトリ下の envs ディレクトリに格納されますminicondaをデフォルトでホームディレクトリにインストールしている場合,容量の増大にはご注意ください.

インストールが完了したら

conda activate pygmt-howto-v0.9

により仮想環境を有効化します.すると,プロンプトの左側の (base) が仮想環境の名前 (pygmt-howto) に変わります.もしいつでもこの環境を使いたいならば,シェルの初期設定ファイル(.bashrc あるいは .zshrc など)に上記の activate コマンドを記載しておくとよいでしょう.

一方,仮想環境から抜けるには

conda deactivate

です.もしこの仮想環境が不要になって削除したいときは,仮想環境からconda deactivate した状態で

conda remove -n pygmt-howto-v0.9 --all

とします.

過去のバージョンのインストールスクリプト#

PyGMTはかなり活発に開発が続いており,頻繁なバージョンアップがあります.参考のため,このPyGMT-HowToページた以前紹介していた過去バージョンのインストール法もアーカイブとして残しておきます.これから新たにインストールするのであれば,前節のインストールスクリプトを参考にしてください.

PyGMT v0.5.0 と GMT 6.2.0#

conda create --name pygmt-howto --channel conda-forge \
python==3.10.5 pygmt==0.5.0 gmt==6.2.0 numpy==1.22.4 scipy==1.8.1 \
obspy==1.3.0 notebook==6.4.11 netcdf4==1.5.8 matplotlib==3.5.1

Warning

GMTの6.3.0の利用には注意が必要で,PyGMTの過去バージョンとの組み合わせにおいて,時間軸を横軸とするプロットがうまく生成できない,というトラブルが発生していました. さらにPyGMTは0.6.0以降ではGMTの最低限のバージョンとして6.3.0の最新版を要求しているため,最新版のPyGMTを用いるなら,2022年6月にリリースされたばかりのGMT6.4.0の利用が必要です.

上記の例ではどちらも最新版は使わず,PyGMT 0.5.0とGMT 6.2.0を利用していますが,もし最新版を使いたいなら以下のconda createで作成するのが良いでしょう.

conda create --name pygmt-howto2 --channel conda-forge \
python==3.10.5 pygmt==0.6.1 gmt==6.4.0 numpy==1.22.4 scipy==1.8.1 \
obspy==1.3.0 notebook==6.4.11 netcdf4==1.5.8 matplotlib==3.5.1

(参考)pip によるインストール#

pip はPythonに付属しているパッケージ管理コマンドです. condaで行ったように,Python本体を仮想化して目的別のパッケージ管理を行う方法も(多数)ありますが,本筋からそれるためここでは割愛します.

PyGMTはpipコマンドに対応しており,インストールは

pip install pygmt==0.5.0

とするだけです.ただし,この場合はcondaと異なり,GMTはあらかじめ別途インストールが必要です. GMTはパッケージ管理ソフト(macOSならhomebrew, Ubuntuならapt, CentOSやらyumなど)を用いてインストールするのが簡単でしょう.ただし,PyGMTは原則として最新版に近いバージョンのGMTを要求する一方,Linuxのパッケージ管理システムが最新版のインストールに対応していない,ということがままあります.また,特にLinuxにおいては,インストールしたGMTのありかをPyGMTが正しく認識できない,というトラブルがしばしば発生しているようで,環境変数の設定で回避する必要があるようです.特にこだわりがなければ,minicondaによるほうが確実にインストールできるでしょう.

Important

Anacondaの節に記載したように,2022年6月時点ではGMT6.3.0とPyGMTを組み合わせることが推奨できません.GMTを独自に導入する場合はご注意ください.

そのほかのライブラリも同様にインストールします.

pip install numpy
pip install scipy
pip install obspy
pip install matplotlib
pip install notebook
pip install netcdf4