2021年4月24日土曜日

Hi‐net で F-net をシミュレート

久しぶりに、楽しめた文献です。

Maeda et al., Interference of long-period seismic wavefield observed by dense Hi-net array in Japan, J. Geophys. Res., 116, B10303, 2011.
http://dx.doi.org/10.1029/2011JB008464

いえ、中身を理解しているわけではありません。が、ここに書かれているような比較をするしかない、とプロと話をしていた直後に見つけた文献でしたので、とても心惹かれました。

Hi‐net と F-net の地震計の伝達関数を組み合わせることで、時間領域でのフィルターを作成。Hi‐net のデータから 100秒までの低周波領域を再現できた、という内容です。2007年のスマトラ島沖地震を例に、とある Hi-net の観測局のデータにフィルターをかけた波形と、そこに近接する F-net 観測局の波形を比較することで妥当性を確認されています。
GitHub にコードが掲載されています。

hinet_decon
https://github.com/tktmyd/hinet_decon

A fortran2003 code to deconvolve Hi-net velocity record by its seismometer response by using inverse filtering technique. 

最終更新が7年前。需要がないのか、より良い手法が出たのかわかりませんが、メジャーにはなっていないようです。

ひとまず、手を動かしてみることに。

*** Ubuntu20.04です。**********************************************

a. Hinet の HP から win32tools をDL、make
b. GIthub から hinet_decon をDL、make

conda で仮想環境構築
Python 3.8 を install
pip obspy hinetpy pandas jupyter

a.で作成したcatwin32、win2sac_32をフォルダにまとめ、パスを通す。
home./profile の最後に書き込み。
export PATH="$PATH:/home/hinet/win32tools/" など

条件設定:震央の緯度経度、データ取得開始時間、スパンなど

HinetPy  で読み込み、SAC変換。

b.で作成した hinet_decon で時間領域フィルターをかける。

ObsPy で BPフィルター& record section 作画。

******************************************************************************

Fortaran、c、Python で準備されたライブラリやソフトを Python で繋ぐ感覚です。半日で組みあがり、一つのノートブックに仕上がりました。意外と単純で簡単でしたね。条件を指定した後はデータダウンロードから作画までほぼ自動です。各々の作者に感謝。

で、再現した画像がコチラ。データは防災科学技術研究所 Hi-net を使用。
まずは Fig.6(a) 50~100秒(軸が90度回転しています)。
P波は見えませんが、S波とレーリー波は見えます。文献と時間がずれているのは起点の時間が異なるのでしょう。

次は Fig.6(b) 20~50秒。こちらはP波も見えます。

さらに N.JIZH のみを拡大し、Fig.3と比較。完全に再現できています。コードにミスはなく、ライブラリも正しく動いたようです。この分野でよく利用されているらしい SAC 形式で(結果的に)処理したのが良かったのかな?
https://phreeqc.blogspot.com/2019/08/obspy-2.html

676か所の観測局のデータを DL して描き終わるまで、10分もかかっていなかったと感じます(計っていませんでした)。便利な時代です。

あとは頭がついていくかどうか。
hinet_decon の設定はデフォのまま。まだ理解できていない部分があるので、もう一度読み直してみましょう。

 

0 件のコメント:

コメントを投稿