Community程式設計與開發github.com

地震監控

監控使用者附近的地震和晃動(預設為智利科皮亞波),使用 USGS、EMSC 以及可選的 GlobalQuake Server 或 sismo-rt 後端,並在偵測到地震時立即在對話中通知(並發送推播通知)。

地震監控 是什麼?

這項技能讓 AI 助手能夠即時監控地震事件,並在偵測到地震時主動通知使用者。它聚合多個資料來源:USGS(美國地質調查局)、EMSC(歐洲地中海地震中心),並可選用 GlobalQuake Server 或 sismo-rt 後端以實現近即時(數秒內)的地震警報。技能會根據使用者位置計算距離、方位和估計的麥卡利地震強度,並根據強度等級觸發不同程度的回應,包括推播通知和對話中訊息。支援單次查詢(例如 "最近有地震嗎?")和持續監控(例如 "有地震時通知我")兩種模式。監控會話最多持續 30 分鐘,過期時會自動重新啟動,除非使用者要求停止。該技能特別針對智利(科皮亞波)進行了預設配置,但可靈活用於任何全球位置。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/cristiangm3005/claude-skill-sismos/tree/HEAD/claude-skill-sismos/claude-skill-sismos/sismos

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

地震監控 是做什麼的?

腳本 scripts/sismos.py(僅需標準 Python,3.9+)查詢地震來源,並針對使用者位置計算距離、方位和預估強度(麥卡利強度)。

回答前須知:無法做到的事

沒有任何系統可以預測地震,即使是 GlobalQuake 也無法預測。此技能能做的是在地震已被偵測到後,盡快發出警報。如果使用者要求「告訴我何時會地震」,請用一句話說明並提供監控服務。使用 USGS 和 EMSC 時,警報會在地震發生後 1 到 20 分鐘送達。只有使用 GlobalQuake 才可能在數秒內送達。緊急情況下,智利的官方來源是 SENAPRED 的 SAE 和 CSN(sismologia.cl)。

位置與閾值

預設值:科皮亞波(-27.3668, -70.3314),半徑 500 公里,全球 M≥6.0,忽略 M<3.0。 如果使用者提到其他城市或座標,請使用 --lat --lon --lugar 參數傳遞(請使用您已知的城市座標)。也可以透過環境變數 SISMOS_LAT、SISMOS_LON、SISMOS_LUGAR、SISMOS_RADIO_KM、SISMOS_MAG_GLOBAL、SISMOS_MAG_MIN 設定。

在下面的指令中,SKILL_DIR 是此技能的基礎目錄(載入時會顯示):如果是為使用者安裝,路徑為 ~/.claude/skills/sismos;如果在專案中,則為 .claude/skills/sismos。請將其替換為實際路徑。

一次性查詢:「最近有地震嗎?」

python3 SKILL_DIR/scripts/sismos.py ahora --horas 24

如果需要處理資料,請使用 --json。向使用者總結:列出最相關的地震(先顯示預估強度最高的),包括規模、距離、方向、智利時間和強度。如果沒有任何地震,請告知。如果腳本輸出 ERROR fuente ...,請通知該來源失敗。如果退出碼為 2,表示兩個來源都失敗:請不要說「沒有地震」。

持續監控:「有地震時通知我」

  1. 使用 Monitor 工具(而非 Bash)啟動監控器:
    • command:python3 -u SKILL_DIR/scripts/sismos.py vigilar(可加上 --lat/--lon/--lugar)
    • description:sismos cerca de <地點>
    • timeout_ms:1800000(最大)
  2. 用一行訊息向使用者確認監控內容(地點、半徑、規模),並告知警報會因來源而有所延遲。
  3. 監控器的每一行都是一個事件:
    • VIGILANDO ... → 成功啟動,無需多說。
    • SISMO nivel=ALERTA ... → 首先使用 PushNotification 工具發送通知(status: "proactive",一行不超過 200 字元,例如 地震 M5.4,科皮亞波以西 42 公里,強度 V,時間 18:03)。如果該工具未載入,請使用 ToolSearch 載入(select:PushNotification)。然後立即在聊天中通知,先說明重點:規模、距離、預估強度和時間。如果強度為 V 或更高,請用 2-3 行補充自我保護措施(蹲下、掩護、抓緊;遠離窗戶;如果在沿海且晃動強烈或持久,應撤離至高處,無需等待官方警報),並建議查閱 SENAPRED 和 SHOA。
    • SISMO nivel=INFO ... → 在聊天中簡短通知(使用者附近的遙遠或微弱地震)。僅在規模 6.0 或以上時發送 PushNotification。
    • 如果該行包含 (actualización) → 表示規模或等級已修正。請通知變更。
    • 如果該行包含 SIN_CONFIRMAR → 表示初步偵測(GlobalQuake)。請如此告知。
    • ESTADO fuente=X CAIDA → 通知該來源無回應,監控可能無法看到地震。RECUPERADA 時,則用一行通知已恢復。
  4. 監控器將在 30 分鐘後過期:當收到過期通知時,無需詢問立即使用相同指令重新啟動,除非使用者要求停止。腳本會記住已通知過的地震(~/.cache/claude-skill-sismos/estado.json),因此重新啟動時不會重複通知。
  5. 如果使用者要求停止,請使用 TaskStop 停止監控器。

若要測試警報功能而不必等待真實地震: python3 SKILL_DIR/scripts/sismos.py prueba 會印出一個模擬地震,格式與真實地震相同。

GlobalQuake(秒級偵測)

GlobalQuake 的開源版本自 1.0.0 起已停止維護(現於 globalquake.net 作為專有專案繼續發展)。GlobalQuake Server 0.11 提供一個 FDSNWS-event API,預設為關閉:

  1. 在其設定中:autoStartFDSNWSEventServer=true(連接埠 FDSNWSEventPort,預設為 8080)。
  2. 匯出 SISMOS_GQ_URL=http://localhost:8080(或傳遞 --gq-url)。監控器每 5 秒查詢一次,並同時繼續查詢 USGS/EMSC。其地震會顯示為 fuentes=globalquake SIN_CONFIRMAR,直到被目錄確認。GlobalQuake 為實驗性質:通知時請說明。

替代方案:此儲存庫中的 sismo-rt/ 後端(EMSC 即時 WebSocket + GlobalQuake),使用 SISMOS_RT_URL=http://localhost:8000(或 --rt-url)。監控器會監聽其 SSE 串流,如果中斷,則只會回到查詢 USGS/EMSC。詳細資訊請見 sismo-rt/docs/GLOBALQUAKE.md。

所需網路

主機:earthquake.usgs.gov 和 www.seismicportal.eu(以及如果使用的 GlobalQuake 或 sismo-rt)。如果兩者都因 403 錯誤或雲端連線的隧道錯誤而失敗,表示環境的網路政策正在封鎖它們。請通知使用者,並建議在環境設定中允許這些主機,或在使用者的電腦上透過 Claude Code 使用此技能。

相關技能