← 返回 SeisRT 项目页

SeisRTMonitor 架构设计

目标

构建一个 PyQt6 地震数据实时监测系统,重点是:

  1. SeedLink 实时数据接入;
  2. 低延迟滚动波形显示;
  3. 多台站、多通道扩展;
  4. 事件触发检测、报警、保存;
  5. 后续支持地图、台站管理、震相拾取、简单定位。

推荐技术路线

GUI 使用 PyQt6。实时波形绘图建议优先使用 pyqtgraph,原因:

如果必须完全 Qt 原生,可用 QPainter 自绘波形控件:

因此建议:第一版用 pyqtgraph 快速建立稳定实时显示;核心数据层保持独立,后续可把 WaveformView 替换为 QPainter 原生控件。

分层结构

seisrt/
  app/            # 应用入口、启动流程
  gui/            # PyQt6 界面层
  core/           # 实时数据核心:SeedLink、缓冲、数据模型
  algorithms/     # 检测、拾取、定位、震级算法
  storage/        # 事件保存、配置保存、波形写出
  services/       # 后台服务编排,如监测会话、报警服务
  resources/      # 图标、样式、资源
configs/          # 默认配置
docs/             # 设计文档
tests/            # 单元测试

核心数据流

SeedLinkWorker 后台线程
      ↓ trace
TraceQueue / Qt Signal
      ↓
StreamBuffer / RingBuffer
      ↓
Detector 检测模块
      ↓
WaveformView 实时显示
      ↓
EventStore 保存事件和日志

线程原则

后续里程碑

M1:最小实时波形监控

M2:多通道与稳定性

M3:事件检测

M4:地震监测平台