Raspberry Shake 4D + JMA Algorithm · v1.7.0

個人地震観測所を
ブラウザで持つ

Raspberry Shake 4D 1台の常時微動データから、リアルタイム震度算出・地震検知・地盤特性(HVSR)解析・月次レポート自動公開までを行うソフトウェア一式です。気象庁の公式観測点と自宅の地盤の違いを継続的に検証しています。

GitHub で見る 月次レポートを見る
Webダッシュボード全体表示(HVSR週次モニタリングパネル追加後)
震源周辺の市区町村震度を拡大表示 HVSR週次推移パネル(試験運用中、初回データ)

主な機能

センサーから画面まで、すべてオープンソース。

📡

UDP リアルタイム受信

Raspberry Shake の DATACAST を直接受信。遅延なく波形データを取得します。

📊

JMA 計測震度アルゴリズム

気象庁の公式フィルター処理・閾値・計算式をそのまま実装。I値・加速度(gal)をリアルタイム表示。

🗺️

震源地図(Leaflet)

P2P地震情報から取得した最新地震を地図上にマッピング。マーカーサイズはマグニチュードに比例。

🔔

音声アラート

震度に応じた音声読み上げ(macOS say -v Kyoko)。計測震度が震度1相当(I≥0.5)を超えた時点で発話し、揺れが強まれば言い直します。

緊急地震速報(参考)

P2P地震情報 WebSocket API から EEW を受信。バナーで赤点滅表示。

📈

I値・STA/LTA 推移グラフ

Chart.js による 2 軸グラフで、直近 5 分の計測震度と STA/LTA 値の変化を可視化。

🖥️

TUI ダッシュボード

ブラウザ不要のターミナル版も付属。SSH 接続のまま監視できます。

🧪

UDP シミュレーター

実機なしでも動作確認できる合成波形送出ツールを同梱。

🔬

ワンクリック波形解析

P2P地震情報テーブルの「解析」ボタンを押すだけで、自局波形のダウンロードとスペクトログラム解析を自動実行。結果画像をモーダル表示します。

🗻

HVSR地盤特性解析(試験運用)

深夜帯の常時微動データから水平/上下スペクトル比(Nakamura法)を週次で計算し、自宅地点の地盤の卓越周波数をモニタリング。リアルタイム系とは独立したバッチ処理で、ダッシュボードには読み取り専用で反映されます。

📰

月次レポート自動生成・公開

その月の地震活動・自局での検出状況・発震機構解マップをまとめたHTMLレポートを毎月自動生成し、GitHub Pagesで公開します。

🏔️

公式観測点との地盤差検証

ボーリング柱状図・地質図と照合し、自宅(軟弱地盤)と気象庁公式観測点(硬質地盤)の震度差を継続的に記録・解説しています。


データの流れ

センサーの生波形が、震度数値としてブラウザに届くまで。

1

波形受信

Raspberry Shake が UDP DATACAST で生波形カウント値を送出

2

ガル変換

感度値で除算し、加速度(gal = cm/s²)に変換

3

JMA フィルター

気象庁規定の周波数フィルターを適用して人体感覚に補正

4

震度算出

I = 2 log₁₀(a) + 0.94 で計測震度 I 値を計算

5

WebSocket配信

FastAPI が 1 秒ごとに JSON をブラウザへブロードキャスト

→ アルゴリズムの詳しい解説を読む


必要なもの

ハードウェアと基本的なソフトウェアが揃えば動き始めます。

ハードウェア

  • Raspberry Shake 4D(RS4D)
  • 同一ネットワーク上の Mac または Linux PC

ソフトウェア

  • Python 3.10 以上
  • macOS(音声アラートに say を使用・macOS 専用)

Python パッケージ

  • numpy / scipy / obspy
  • rich(TUI 版)
  • fastapi / uvicorn / jinja2(Web 版)
  • websocket-client / matplotlib

使い始め方

クローンから起動まで 5 分で完了します。

本ソフトウェアが算出する計測震度は参考値です。公式な震度情報ではありません。
1

クローン&仮想環境を作成

git clone https://github.com/Masakai/earthQuake.git
cd earthQuake
python3 -m venv .venv
source .venv/bin/activate
pip install numpy scipy obspy rich websocket-client fastapi uvicorn jinja2 matplotlib
2

Raspberry Shake の DATACAST を設定

Shake の Web 設定画面で UDP/DATACAST を有効にし、送信先 IP とポート(既定: 8888)を入力します。

3

Web ダッシュボードを起動

bash scripts/start_web.sh --station R38DC
# ブラウザで http://localhost:8080 を開く
4

実機なしでシミュレーターを使う

# ターミナル 1
bash scripts/start_web.sh --station R38DC --bind 127.0.0.1:9999

# ターミナル 2
.venv/bin/python3 src/simulate_udp.py --intensity 3.0 --dest 127.0.0.1:9999

月次地震レポート

AM.R38DC 観測点(静岡県三島市)の月別まとめ。P2P地震情報との照合・自局検出記録を含む私的記録です。

正式な地震情報は気象庁をご参照ください。