CAPQuake 是一款开源的基于 Python + PySide6 + ObsPy 构建的地震,气象及其他灾情预警桌面应用程序。
接入了FAN,Wolfx等10+第三方数据源以及CMA,USGS,GeoNet等30+官方数据源。
由 纯 Python 开发,采用了模块化设计,方便其他开发者个性化改编及制作插件。
更基于Obspy,Metradar等python强大的科学计算库,开发了 CAPSPPE自动震源机制解,震源自动测算等功能(开发中)
实时关注项目开发进程以及运行效果,可前往我的bilibili主页。
|
💻日本NIED K-Net/KIK-Net测站网 / S-Net海底测站网 / 韩国KMA-PEWS测站 依赖数据源: NIED Yahoo Japen 气象接口 NIED 精确测站位置 地表PGA/PGV 及其他数据 Two MONI S-Net 海底测站 日本海MSIL(3分钟更新1次) 韩国KMA-PEWS测站 FSSN |
|
🌐全球5000+测站震度显示 服务器列表: EarthScope 主服务器台网 60+台网 GFZ 台网 30+台网 GEONET,RESIF,IPGP台网 6台网 BGR,AusPass,SNAC NOA台网 6台网 由于连接不稳定,测站显示可能会有延迟,图片展示效果为CAPQuake 限制链接2600个台站的效果。 |
|
💯台湾P-Alert测站 P-Alert观测网是由P-Alert地震P波感测仪所构成的即时地震观测网,具有地震预警及产出等震度图的功能。 由于数据源本身原因,测站数据可能会延迟几秒。 |
|
🌈台风/火山情报 接入了CMA/中国气象局官方台风路径,并以FSSN历史台风路径为备用,实时显示最新台风路径。 并显示出影响范围。 接入了JMA/日本气象厅火山预警情报。 |
|
📦CAPSPPE 自动震源机制解,震源推算 基于OBSPY与全球测站,自动分析全球M5以上的震源机制解。 (该功能还在开发/实验) |
🎢台风/地震/火山模拟 模拟了IPF法的震源推断和PLUM法的地震预警,同时,CAPSPPE支持基于全球真实测站位置与用户自己随机生成的测站进行震源推断与地震预警。全球测站(模拟)也会根据模拟的地震参数产生模拟反应。 此外,CAPQuake还新增了台风模拟,目前可以模拟台风季(5-9月)随机生成台风。并且可以生成台风详细数据,路径自动推算以及多台风效应干扰。也支持用户手动生成台风并自定义台风参数。 (以上功能均还在早期,正在不断迭代开发) |
| 组件 | 技术 | 用途 |
|---|---|---|
| UI 框架 | PySide6 (Qt 6) | 现代化跨平台桌面界面 |
| 地震学引擎 | ObsPy | 波形处理、信号分析、SEED/SAC 格式支持 |
| 图形渲染 | PyOpenGL | 地图与波形渲染 |
| 数据处理 | Pandas + NumPy | 数据分析与数值计算 |
| 地理空间 | Shapely | 地理空间数据处理 |
| 数据类型/来源 | 源标识 | 显示名称 | 协议 | 说明 |
|---|---|---|---|---|
| CENC官方/FSSN/Wolfx | cenc |
CENC | HTTP/WSS | 中国地震台网自动测定/正式测定 |
| FSSN | cenc-ir |
CENC | WSS | 中国地震台网烈度速报 |
| P2P/Wolfx | jma |
JMA | WSS | 日本气象厅地震情报 |
| USGS官方/FSSN | usgs |
USGS | HTTP/WSS | 美国地质调查局地震情报 |
| EMSC官方/FSSN | emsc |
EMSC | HTTP/WSS | 欧洲地中海地震中心地震情报 |
| GFZ官方/FSSN | gfz |
GFZ | WSS | 德国地学研究中心地震情报 |
| GeoNet官方 | geonet |
GeoNet | HTTP | 新西兰地质地质灾害监测网地震情报 |
| FSSN | kma |
KMA | WSS | 韩国气象厅地震情报 |
| FSSN | cwa |
CWA | WSS | 台湾中央气象署地震情报 |
| HKO官方/FSSN | hko |
HKO | HTTP/WSS | 香港天文台地震情报 |
| BCSF官方/FSSN | bcsf |
BCSF | WSS | 法国中央地震研究所地震情报 |
| NRCan官方 | nrcan |
NRCan | HTTP | 加拿大自然资源部地震情报 |
| Funvisis官方 | funvisis |
FUNVISIS | HTTP | 委内瑞拉地震研究基金会地震情报 |
| SENAIS官方 | cenais |
CENAIS | HTTP | 古巴国家地震局地震情报 |
| FSSN | usp |
USP | WSS | 巴西圣保罗大学地震情报 |
| FSSN | fssn |
FSSN | WSS | FAN Studio 地震速报 |
| 俄罗斯勘察加地球物理研究所 | ru-kcj |
RUKCJ | HTTP | 俄罗斯勘察加地球物理研究所地震目录 |
| 泰国地震局 | tmd |
TMD | HTTP | 泰国地震局地震测定 |
| 菲律宾火山地震研究所官方 | phivolcs |
PHIVOLCS | HTTP | 菲律宾火山地震研究所地震测定 |
| 智利大学地震中心 | csnc |
CSNC | HTTP | 智利大学地震中心地震测定 |
| 印度尼西亚气象、气候和地球物理局 | bmkg |
BMKG | HTTP | 印度尼西亚气象、气候和地球物理局地震测定烈度速报 |
| 源标识 | 显示名称 | 预警名称 |
|---|---|---|
jma |
JMA | 日本气象厅紧急地震速报 |
cwa-eew |
CWA | 中央气象署强震即时预警 |
cea |
CEA | 中国地震预警网(M>=4.0) |
cea-pr |
CEA-pr | 中国地震预警网省级融合源(M>=3.0) |
sa |
ShakeAlert | 美国西海岸地震预警网 |
kma-eew |
KMA | 韩国气象厅紧急地震速报 |
earlyest |
Earlyest | 墨西哥地震预警 |
globalquake |
GlobalQuake | GlobalQuake地震预警 |
| 数据源 | 类型 | 说明 |
|---|---|---|
| CMA 中国气象局 | 气象预警 | 国家气象灾害预警 |
| CMA 中国气象局 | 台风预警 | 台风预警 |
| 香港天文台 | 海啸信息 | 南海海啸监测 |
| 自然资源部南海预报减灾中心 | 海啸警报 | 南海区域预警 |
| 福建省海洋预报台 | 海啸警报 | 台湾海峡区域 |
| 广东省海洋预报台 | 海啸警报 | 南海北部区域 |
| 印度国家海洋信息服务中心 | 海啸警报 | 印度洋区域 |
| 印度尼西亚海啸预警系统 | 海啸警报 | 印度洋区域 |
| 澳大利亚联合海啸预警中心 | 海啸警报 | 印度洋/太平洋区域 |
| PTWC | 海啸警报 | 太平洋海啸预警中心 |
- 操作系统: Windows 10/11 (推荐), Linux, macOS
- Python: 3.10 或更高版本
- 网络: 无
git clone https://github.com/yourusername/CAPQuake.git
cd CAPQuake/CAPQuakeQt_0.5# 使用 Conda
conda create -n capquake python=3.10
conda activate capquake
# 或使用 venv
python -m venv venv
# Windows
.\venv\Scripts\activate
# Linux/macOS
source venv/bin/activate# 一键安装
pip install -r requirements.txt
# 或手动安装核心依赖
pip install PySide6>=6.5.0 obspy>=1.5.0 PyOpenGL>=3.1.0 zhconv>=1.4.0 requests>=2.25.0# 方式一:Python 模块启动
python -m ui.app
# 方式二:使用启动脚本 (Windows)
.\start.ps1
# 方式三:使用批处理 (Windows)
.\start.bat# 运行集成测试
python -m pytest tests/
# 测试 EEW 生成器
python core_service/test_eew_generator.py
# 测试数据源连接
python data/test_ears.py所有数据源开关集中在 core_service/settings.py 中,可通过 UI 设置对话框修改:
DEFAULTS = {
"sources/fan/enabled": True,
"sources/wolfx/enabled": True,
"sources/p2p/enabled": True,
"sources/usgs/enabled": True,
# ... 更多数据源
}支持按震级和烈度过滤显示:
"filter/usgs/min_magnitude": 4.0,
"filter/usgs/min_intensity": 3.0,"seedlink/max_stations": 3000, # 最大测站数量欢迎提交 Issue 和 Pull Request!在贡献代码前,请确保:
- 代码符合 PEP 8 规范(可使用
black或ruff格式化) - 新增功能需有相应文档和注释
- 提交前测试主要功能(数据接收、地图渲染、预警弹窗)
- 新增数据源需在
core_service/parsers/下添加解析器,并在dispatcher.py中注册
- 在
data/connectors/下创建连接器 - 在
core_service/parsers/下创建解析器 - 在
core_service/dispatcher.py中注册信号映射 - 在
core_service/settings.py中添加开关配置 - 在
ui/widgets/settings_dialog.py中添加 UI 控件
本项目基于 MIT 许可证 开源,详情见 LICENSE 文件。
- 数据提供方: FAN Studio, Wolfx, P2P 地震情報等
- 特别鸣谢:
- 开源社区: PySide6, ObsPy, Shapely, Pandas, NumPy 等优秀开源项目
CAPQuake Readme版本 — Qt 0.532
CAPQuake 开发中 暂未公开