Liam Toney, Kate E. Allstadt(2021)lsforce: A Python Based Single‐Force Seismic Inversion Framework for Massive Landslides
インストールは bashから。自動で新たな仮想環境が作られました。
CPSはインストール済みです。タイミングが良かった。有名なのでしょう。
https://phreeqc.blogspot.com/2021/05/2.html
https://phreeqc.blogspot.com/2021/05/cps-330.html
付属の examples (notebook)は動きました。
軽い。グリーン関数が地域の状況をまとめて表しているので、FEM などを利用した計算のように大きなマトリックスを解くような手法ではないのでしょう。これはありがたい。
データは IRISWS を利用しています。米国ですから当然でしょう。
今回は、以前落とした F-net のデータを利用したいので、IRIS を使いません。その場合、Green 関数を作成するのに CPS3.30 で作成したモデルを指定します(モデル作成のスクリプトはbinにありました)。
また、F-net データの ch=測定方向を認識しませんので、gsacで事前に書き換えます(NE-TR変換に必要)。計算途中に Python で書き換えてもOKです。
で計算。
はい、SACのヘッダーを読めません。観測局の位置を認識しませんので、位置・震央距離を stream のヘッダーに書き込みます。
******************* ココから飛ばしてOK *******************
そのまま計算すると single force が大きすぎるようでした(移動体の質量を固定した場合、距離が1桁長くなります)。
win2sac で変換した sac はnm/s
https://seisman.github.io/HinetPy/api/HinetPy.win32.html
win2sac removes sensitivity from waveform, then multiply by 1.0e9. Thus the extracted SAC files are velocity in nm/s, or acceleration in nm/s/s.
obspy は SAC のヘッダーを認識するため、stream に取り込んでも nm/s で正しく認識、図化されます。一方、IRISDMC から obspy で読み込んだ SEED はm/s。lsforce は後者を念頭に置いているため、代入する際にどちらの sream も m/s とみなしているのでしょうか?
sac から読み込んだデータをm/sにしてからlsforce に認識させると、今度は力が1桁小さくなります(距離も1桁短い)。フラットなので影響ないだろうと飛ばしていた remove_response が怪しいのか?
https://seisman.github.io/HinetPy/tutorial/conversion.html
Extract PZ
This function works for Hi-net network only.
F-net data users are highly recommended to use FnetPy to request waveform data in SEED format and extract instrumental responses in RESP or PZ format from SEED files.
だそうで、SEED で落としてから obspy で読み込み、remove_responseする方針へ変更。
まずは、FnetPy。中身を見たら client.py のみだったので、pip を使わずスクリプトをコピペ。で、全国分をDL。ついでに特性ファイルも別途DLして保存。
https://www.fnet.bosai.go.jp/st_info/response.php?LANG=ja
さて、物理量に変換しようかと思いきや、チャンネルファイルがありません。SEEDはヘッダーに書かれているということで覗いてみましたが、どれかわからず。うーん。
******************* ココまで飛ばしてOK *******************
SAC ベースの steram の各 trace に対し remove_response。
lsforce.lsdata の際に remove_response をかけると IRIS を見に行くのかエラーになります。事前に処理が必要です。
大きな変更はこれだけ。簡単です。
これで図化すると、ばっちり。図は全て matplotlib の fig なので、後で保存ができます。
数値も取りさせるので、データフレームに加工し csv 保存可能です。
途中引っかかったので完走まで2晩かかりましたが、シンプルで良いツールだと思います。
こうなると理論を完全に理解したいですね。プロがいないので時間はかかりそうですが。
**************************************
課題 20210613
・理論の理解
・remove_responseの重要性→あえて取らない文献もあり
・taper(max_percentage=0.05)の設定値
・1波長以内、それ以上の観測局の扱い
・追認
https://repository.kulib.kyoto-u.ac.jp/dspace/bitstream/2433/262790/1/gji_ggab129.pdf