このスクリプトを作成し、動作確認をしたマシンの環境は以下の通りです。
例)アーカイブを ~/tmp で展開し、~/bin にインストールする場合$ cp ~/tmp/knet2sac/{knet2sac,knet2sacasc.awk} ~/bin
例)アーカイブを ~/tmp で展開し、~/knetdata にデータファイルがある場合$ cp ~/tmp/knet2sac/source-param-sample.dat ~/knetdata/source-param.dat
発震の年、月、日、時、分、秒、ミリ秒、震源の緯度、経度、深さ、マグニチュードで、全てスペースで区切る。年は 4 桁で表す。
例)データファイル名が SAGH010503201053.EW1 の場合$ knet2sac SAGH010503201053.EW1
例)K-NET データを一度に変換する場合$ for dat in *.{EW,NS,UD} > do > echo $dat > knet2sac $dat > done
knet2sac は knet2sacasc.awk で SAC アスキーファイルを作り、その後に SAC の convert コマンドで SAC アスキーファイルから SAC バイナリーファイルに変換しています。私個人が SAC アスキーファイルをよく使うために、こういう手順を踏んでいます。また、バイナリ形式(little endian, big endian)が違っても使える、という長所があります。
呼び出される knet2sacasc.awk では、まず source-param.dat を読み込みます。次にデータファイルのヘッダを 1 行づつ読み込みます。ヘッダファイルにも震源の情報が入っていますが、精度が良くないので使っていません。
データの始まりの時間 b は発震時間を基準にして計算しています。ちょっとめんどくさがって、発震時と記録時が同じ年であることを仮定しています。
K-NET と KiK-net とでは成分名が異なります。また、K-NET と KiK-net の判定は観測点名の4文字目が "H" か否かで行っています。
地震名はデータファイル名から観測点名と成分名を削除した文字列にしています。
ヘッダが読み終わったあと、波形データが読み込まれます。データはヘッダに書かれてある Scale factor を乗じています。
著作権は放棄しません。改変や配布は自由です。
このスクリプトを使ったことによる被害等の責任は負えません。各自の責任において実行してください。
バグの報告やご意見はこちらまで。
小林 励司防災科学技術研究所には問い合わせないで下さい。
E-mail : reijikan-kanshu@hotmail.co.jp