tandem(https://github.com/tomographyyy/tandem)は、港湾研の高川さんによる津波シミュレーションライブラリで、津波のアジョイント合成が(遠地津波でも)簡単に行えることが特徴である。最近公開されたばかりなので、検索しても使用例があまりヒットしない。そこで、自分が使ってみた時のメモを書いておく。
ドキュメントに書いてあるインストール方法は仮想環境を使っていないが、私はcondaで仮想環境を構築し、そこにtandemに必要なライブラリ等を入れ、その上にtandemを構築する、という流れでインストールした。
まずminiforgeを入れる。
curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
bash Miniforge3-$(uname)-$(uname -m).sh # いろいろ聞かれるので、enterとかyesを連打する。デフォルトでcondaを起動するか?の質問にはyesと答えた
conda init
次にmytandemという仮想環境を作って、必要な依存関係を入れる。pyproj以降は必須ではないはずなので好みで。gfortranが入っていなければ入れたほうがいいかもしれない。
conda create -n mytandem -c conda-forge python numpy fftw shtns openmpi mpi4py petsc petsc4py matplotlib pyproj pandas obspy scipy xarray pygmt==0.13.0 gmt notebook netcdf4
conda activate mytandem
最後にtandem自体を入れる。
git clone https://github.com/tomographyyy/tandem.git
cd tandem
pip install .
mytandemに入った状態で以下を実行すると動く。ジョブシステム上などで動かす場合は、ジョブスクリプトで指定するMPIプロセス数と一致させること。またジョブ内で(tandemの中に入っている)pythonを呼ぶ必要があるので注意。
mpiexec -n 8 /path-of-your-directory/miniforge3/envs/mytandem/bin/python tandem/run.py
実行するとoutというディレクトリが出来て、その下に波形やgrdファイルが保存されている。
TODO:アジョイント計算を実行してみる