此專案為地震預警模型 TT-SAM 的即時資料管線,整合 Earthworm 平台的即時串流波形與 P 波資訊,經過資料前處理、資料轉換、模型震度預測、最後產出震度報告,提供 MQTT 資訊發布與簡易網頁介面呈現,能在地震 P 波後迅速給出指定目標站點之震度推估。
本系統主要包括 4 個主要模組:
- Wave Listener:接收地震波形
- Pick Listener:接收 P 波訊息
- Model Inference:觸發 TT-SAM 模型預測震度
- Web Server:提供可視化界面
- Earthworm
- MQTT broker (Mosquitto)
- Docker
- 下載專案:
git clone https://github.com/SeisBlue/TTSAM_Realtime.git
- 下載 Docker 映像檔:
docker pull seisblue/ttsam-realtime
Docker 相關操作與 image 自行建置請參考 Dockerfile 相關文件
- 檢查必需檔案:
- ttsam_config.json (MQTT 設定檔案)
- data/site_info.txt (測站資訊)
- data/eew_target.csv (預測震度位置)
- data/Vs30ofTaiwan.csv (全台 VS30 網格)
- model/ttsam_trained_model_11.pt (TT-SAM 模型參數)
檔案格式請參考 資料檔案說明
更新程式碼:
cd CWA_TTSAM_Realtime
git stash
git pull
更新 Docker 映像檔:
docker pull seisblue/ttsam-realtime
cd CWA_TTSAM_Realtime
cp docker_run_ttsam.sh run_ttsam.sh
docker run \
-v $(pwd):/workspace \
-v /opt/Earthworm/run/params:/opt/Earthworm/run/params:ro \
--rm \
--ipc host \
--net host \
--name ttsam-cpu \
seisblue/ttsam-realtime \
/opt/conda/bin/python3 /workspace/ttsam_realtime.py --web --mqtt
第二個 -v /opt/Earthworm/run/params
(左邊)改為本地的 Earthworm 資料夾。
ttsam_realtime.py 的所有選項:
- --mqtt: 連接到 MQTT broker。
- --web: 運行網頁伺服器。
- --host: 指定網頁伺服器的 IP 地址(預設:0.0.0.0)。
- --port: 指定網頁伺服器的端口(預設:5000)。
- --test-env: 在測試環境模式下運行(將 inst_id 設置為 255)。
- --verbose-level: 設置詳細級別(選項:ERROR,WARNING,INFO,DEBUG;預設:INFO)。
- --log-level: 設置日誌級別(選項:ERROR,WARNING,INFO,DEBUG;預設:INFO)。
cp mqtt_config.json ttsam_config.json
{
"mqtt": {
"username": "ttsam",
"password": "ttsam",
"host": "0.0.0.0",
"port": 1883,
"topic": "ttsam"
}
}
依照本地的 MQTT 設定更改。
screen -S ttsam-realtime # 建立新的 screen
cd CWA_TTSAM_Realtime # 進入專案目錄
sh run_ttsam.sh # 執行系統
ctrl
+ a
+ d
將 screen 推入背景
歷史預測震度文字報告會存放在logs/report/
目錄,可以由網頁介面查看。
screen -r ttsam-realtime
ssh -L 5000:192.168.x.x:5000 user@remote
啟動系統後,可在瀏覽器中輸入 http://127.0.0.1:5000
進入網頁介面。
目前提供五個頁面:
- history:顯示歷史地震事件
- trace:顯示即時地震波形
- event:顯示地震事件詳細資訊
- dataset:顯示處理後的資料集
- intensityMap:顯示地震震度分佈