【気象庁公表】震度算出方法 【MATLABプログラミング】

【気象庁公表】震度算出方法 【MATLABプログラミング】 MATLAB/Simulink

気象庁 計測震度の算出方法例との比較

2000年10月6日に発生した鳥取県西部地震の米子市(計測震度=5.1)を使用する。

震度算出

>> SeismicIntensity('AA06EA01.csv',',',7,1,2,3,100)

ans =

    5.1000

震度結果は一致する。

オリジナルの加速度波形

2000年10月6日、鳥取県西部地震、鳥取県米子市の加速度波形(計測深度
=5.1)
気象庁の「オリジナルの加速度波形」
2000年10月6日、鳥取県西部地震、鳥取県米子市の加速度波形(計測深度
=5.1)をMATLABで。
今回演算した「オリジナルの加速度波形」

入力データとしては同一と確認できる。

オリジナル加速度波形の周波数スペクトル

2000年10月6日、鳥取県西部地震、鳥取県米子市の周波数スペクトル(計測深度
=5.1)
気象庁の「オリジナル加速度波形の周波数スペクトル」
2000年10月6日、鳥取県西部地震、鳥取県米子市の周波数スペクトル(計測深度
=5.1)のMATLAB版
今回演算した「オリジナル加速度波形の周波数スペクトル」

これも同一。

震度計算のためのフィルター特性

バンドパスフィルタをするためのハイカットローカット
黒線が合成して実際に使用するフィルター特性。

2000年10月6日、鳥取県西部地震、鳥取県米子市の関数窓(計測深度
=5.1)
気象庁の「震度計算のためのフィルター特性」
2000年10月6日、鳥取県西部地震、鳥取県米子市の関数窓(計測深度
=5.1)のMATLAB版
今回演算した「震度計算のためのフィルター特性」

周期効果について。

調べてみたが詳細は不明
推測としては、地震の特性上の補正係数で、周波数の高い方が早々に減衰するため、震度の情報から除去していると思われる。

フィルター補正後の加速度波形

2000年10月6日、鳥取県西部地震、鳥取県米子市のフィルタ後加速度(計測深度
=5.1)
気象庁の「フィルター補正後の加速度波形」
2000年10月6日、鳥取県西部地震、鳥取県米子市のフィルタ後加速度(計測深度
=5.1)のMATLAB版
今回演算した「フィルター補正後の加速度波形」

フィルター後の3成分合成加速度

2000年10月6日、鳥取県西部地震、鳥取県米子市のフィルタ後加速度合成(計測深度
=5.1)
気象庁の「フィルター後の3成分合成加速度」
2000年10月6日、鳥取県西部地震、鳥取県米子市のフィルタ後加速度合成(計測深度
=5.1)のMATLAB版
今回演算した「フィルター後の3成分合成加速度」

ここまで再現できているので、今回のアルゴリズムは一定の正しさがあると言える。

その他のサンプルによる震度算出

(2011年)東北地方太平洋沖地震のデータセットから、

以下を使用
L311E4E1.csv (東京都 東京千代田区大手町 5強 5.1 )
L3114B91.csv (宮城県 大崎市古川三日町 6強 6.2)

結果

>> SeismicIntensity('L311E4E1.csv',',',7,1,2,3,100)

ans =

    5.1000

>> SeismicIntensity('L3114B91.csv',',',7,1,2,3,100)

ans =

    6.2000

>>

気象庁公表値と一致した。

まとめ

  • 複雑な演算がある場合、再現がメンドクサイ
    • 計算式があっていても、演算順序やFPUの違い、FPUモードの違いで演算誤差がでる。
    • 上記に伴い、正しいことの証明がブラックボックスアプローチになる。
      • 今回は、気象庁が途中のデータ特性を公表してくれたおかげでステップごとに検証できた。
      • よって、中間データを如何に取得するかが難易度を下げるコツとなる。
  • FFTが入ると、MATLAB coderがイマイチな感じになる。
    • 可変要素不可
    • 要素数が2のべき乗であること必須(性能面を考えると必須の方が良いが)

コメント

タイトルとURLをコピーしました