解析環境の構築
ここではPythonの仮想環境基盤としてMiniforgeを導入し,その中でNumPyやPyGMTを含めた仮想環境を作成します.
ここで紹介する環境はいわゆる Anaconda として知られているPythonのパッケージ管理環境です. 研究環境でも広く使われていましたが,2024年のライセンス改訂によって,研究教育目的であっても無料で利用することが困難になりました.
ここでは,その代替としてMiniforgeを用います.MiniforgeはAnacondaのパッケージ管理コマンド conda と同等なものを提供する完全なオープンソースなプロジェクトです.
Miniforgeのインストール
まずは適当なディレクトリでMiniforgeを curl コマンドでダウンロードします.
curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"そのディレクトリでダウンロードしたスクリプトを bash で実行します.
bash ./Miniforge3-Linux-x86_64.sh -bオプション -b は batch modeで,本来対話的に確認されるべきend user licence agreementやインストール先の指定などがすべて省略されます.上記コマンドを実行した時点で自動的にライセンスに同意したとみなされますので,ご注意ください.ただし,これはライセンス確認の省略を推奨するものではありません.気になるようでしたら -b オプションをなしで実行し,詳細を確認するようにしてください.
すると,しばらくメッセージが流れ,最終的に
installation finished.と表示されてインストールが終わります.この方法では,ホームディレクトリの直下に miniforge3 ディレクトリが作られ,そこに関連ファイルがインストールされています.
続いて,初期化設定です.以下のようにインストールされたディレクトリにある conda コマンドを init オプションで実行します.
$ cd # ホームディレクトリに移動
$ ./miniforge3/bin/conda init
no change /home/j0XXXX/miniforge3/condabin/conda
no change /home/j0XXXX/miniforge3/bin/conda
no change /home/j0XXXX/miniforge3/bin/conda-env
no change /home/j0XXXX/miniforge3/bin/activate
no change /home/j0XXXX/miniforge3/bin/deactivate
no change /home/j0XXXX/miniforge3/etc/profile.d/conda.sh
no change /home/j0XXXX/miniforge3/etc/fish/conf.d/conda.fish
no change /home/j0XXXX/miniforge3/shell/condabin/Conda.psm1
no change /home/j0XXXX/miniforge3/shell/condabin/conda-hook.ps1
no change /home/j0XXXX/miniforge3/lib/python3.YY/site-packages/xontrib/conda.xsh
no change /home/j0XXXX/miniforge3/etc/profile.d/conda.csh
modified /home/j0XXXX/.bashrc
==> For changes to take effect, close and re-open your current shell. <==ただし,j0XXXX はユーザー名です.python3.YYのYYにはインストールされたpythonのバージョンが表示されます.
これはminiforgeのデフォルト環境でのPythonのバージョンであり,以下で作成する仮想環境では,必要があればその仮想環境で利用するPythonのバージョンを指定できます.
表示されたとおり,初期設定ファイル .bashrc に conda コマンドの設定が書き込まれます.
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/j0XXXX/miniforge3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/home/j0XXXX/miniforge3/etc/profile.d/conda.sh" ]; then
. "/home/j0XXXX/miniforge3/etc/profile.d/conda.sh"
else
export PATH="/home/j0XXXX/miniforge3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<EICでは,上記の設定をしても,ターミナルからSSHでログインしたときには自動でこの設定が有効にはなりません.VSCode経由でのSSH接続では有効化されるようです.
もし,ターミナルから conda や mamba を有効にしたいときには,
source ~/.bashrcというコマンドで, .bashrc ファイルの設定を読み込ませてください.あるいは,~/.bash_profile というファイル(なければ作る)に上記 source コマンドを記述しておくと,ログイン時に直接 conda が使えるようになります.
Conda仮想環境の作成
Miniforgeが有効になっていると,EICのプロンプトが
(base) -bash-4.2$ のように (base) とついたものに変更されているはずです. これはcondaの環境名で,初期状態 base が有効になっているという印です.もしそうなっていなかったら, source ~/.bashrc コマンドを実行して conda を有効化してください.
この状態では,システムに入っているPythonよりも,Miniforgeで自分がインストールしたPythonのほうが優先されます.たとえば,python コマンドの場所を調べてみると,
$ which python
~/miniforge3/bin/pythonと表示され,自分のホームディレクトリ以下,Miniforgeをインストールしたディレクトリの下にpython本体が入っていること,それがシステムのpythonよりも優先されていることがわかります.
Miniforgeでは,Python本体と関連ライブラリを丸ごとまとめた 仮想環境をいくつも作り,必要に応じて切り替えて使うことができます.ここでは,地震波の解析に必要なライブラリを入れた仮想環境 seismo26 を作成してみます.
$ conda create --name seismo26 --channel conda-forge \
ipykernel numba pygmt obspy netcdf4 matplotlib ffmpeg pandas cartopy画面の幅の都合上複数行に分かれていますが,これで1つのコマンドです.
Linuxのターミナルでは,行末にバックスラッシュ \ を打つことで,1つのコマンドを複数行に分割できます.
ここで,1行目はおもにオプション,2行目以降がインストールしたいパッケージ(ライブラリ)名です.指定したオプションの意味は以下のとおりです.
--name seismo26仮想環境の名前をseismo26に指定します.もちろん名前はお好みで変えていただいて構いません.--channel conda-forgeパッケージの検索・インストールをする提供元を指定します.conda-forgeには非商用のパッケージがたくさん集まっており,常にここを指定しておけば間違いありません.
インストールに指定したライブラリは以下のとおりです.conda create では指定したもの以外にも非常にたくさんの関連ライブラリがインストールされますが,その中で特に直接使用する可能性があるものも以下の表にリストアップしています.
| ライブラリ | 内容 |
|---|---|
| ipykernel | VSCodeなどからJupyter Notebookを通じてPythonコードを実行するために必要なフロントエンド |
| numba | PythonとNumpyのコードを高速実行するためのJust-in-Time (JIT)コンパイラ |
| pygmt | 可視化ツール群Generic Mapping Tools (GMT)のPythonインターフェース |
| obspy | 地震波データ解析のためのパッケージ |
| netcdf4 | 標高データ等の地理情報のデータフォーマットNetCDFをPythonから扱う公式パッケージ |
| matplotlib | Python上の可視化ツールのデファクトスタンダード |
| ffmpeg | 動画作成のためのコマンドラインツール |
| gmt | PyGMTが呼び出すGeneric Mapping Tools 本体.もちろん単独でも使える |
| pandas | Python上で表形式データを扱うためのライブラリ |
| scipy | 科学技術計算のためのさまざまなライブラリの集合体 |
まずパッケージなしで conda create により環境だけつくり,ひとつひとつのパッケージを後から追加していくこともできます.
しかし,そのやり方ではバージョンの競合の問題が発生しやすいようです. 必要なパッケージをまとめて指定しておくことで,全パッケージが動作するよう,自動的にバージョンが調整されます.
conda create を実行すると,
Proceed ([y]/n)? と訊かれますので,y を入力します.すると,しばらく端末上にインストールの経過が表示されます.インストールには多少の時間がかかります.しばらくすると,
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate seismo26
#
# To deactivate an active environment, use
#
# $ conda deactivateと表示され,インストール完了です.このメッセージの通り,condaが有効になった状態で,
(base) [j0XXXX@eic ~]$ conda activate seismo26 # seismo26環境を有効化
(seismo26) [j0XXXX@eic ~]$ conda deactivate # seismo26環境を無効化
(base) [j0XXXX@eic ~]$ conda deactivate # conda自体を無効化
-bash-4.2$というように,conda activate と conda deactivate で有効,無効を切り替えられます. さらに base 環境で conda deactivate すると,conda 自体を無効化できます.
ともあれ,これで一通りのツールが使えるようになりました.
PyGMTやObsPyの初回インポートには多少の時間がかかりますが,初期化にともなうもののようです. VSCodeで接続した場合は,EICリモート環境にPython+Jupyterの拡張機能をインストールすれば,ipynbファイルの編集経由でインストールしたKernelを指定して利用できます.

上図は,VSCodeでEICに接続し,そこで上述の環境でJupyter Notebookを利用し,PyGMTにより地図を描画したものです.このような環境を整備しておくと,EIC上実施した数値シミュレーションの可視化や事後解析をEIC上でそのまま実施できて,便利になることでしょう.
本稿で説明した仮想環境の設定にはEIC特有のものは多くなく,特にminicondaのインストールと仮想環境の構築は他のLinuxやmacOS,WindowsにおけるWSLなどの互換環境においても全く同様に使えるはずです.