WAVE 是一款基于 C++ 和 Qt 框架开发的高性能风雷达数据后处理与可视化平台。
该系统旨在解析激光测风雷达的原始观测数据,通过硬件加速的 3D PPI(平面位置显示)视图和交互式 2D 廓线图,直观地展示大气风场特征。内置数据清洗、对齐、湍流强度计算等核心算法,并采用现代化的深色赛博朋克风格 UI 设计。
- 多源数据融合:自动读取并对齐风速数据 (
wind_speed.csv) 与云台角度数据 (angle.csv),解决时间戳非同步问题。 - 智能数据清洗:
- SNR 阈值过滤:实时剔除低信噪比的噪声数据。
- 离群点去除:内置 Hampel 滤波器(基于中位数的去噪算法),有效修复数据突变。
- 高级气象参数计算:支持基于滑动窗口的湍流强度 (Turbulence Intensity, TI) 实时计算。
- 3D PPI 雷达扫描图:
- 基于 OpenGL (GLSL) 自绘的大规模点云渲染,支持百万级数据点流畅显示。
- 支持鼠标交互:3D 旋转、缩放、平移。
- 伪彩热力图:根据风速或湍流强度动态映射颜色。
- 实时悬停反馈:鼠标悬停即可查看任意空间点的方位角、仰角、距离及测量值。
- 2D 廓线分析图表:
- 利用
QtCharts绘制高度-风速/SNR 曲线。 - 支持精细化刻度显示(Minor Ticks)和动态范围调整。
- 利用
- 沉浸式启动体验:自定义无边框启动页,包含动态正弦波浪动画与光晕特效,模拟雷达信号特征。
- 深色主题:全局采用 "Deep Space" 配色方案,搭配霓虹色(青/橙)数据高亮,降低视觉疲劳。
- 全功能控制面板:支持仰角层切换、SNR 阈值调节、可视化距离裁剪及自动回放扫描过程。
注:主界面展示了 3D 点云扫描(左下)、控制面板(左上)以及实时的风速与信噪比廓线图(右侧)。
- 编程语言: C++17
- GUI 框架: Qt 6 (QtWidgets, QtCharts)
- 图形渲染: OpenGL (QOpenGLWidget, QOpenGLFunctions, GLSL Shader)
- 构建工具: qmake / CMake / Visual Studio MSVC
- Qt 6.2 或更高版本
- 支持 OpenGL 2.1+ 的显卡
- Visual Studio 2019/2022 (Windows) 或 GCC (Linux/macOS)
-
克隆仓库
git clone [https://github.com/aaashes1103/WindRadarVis.git](https://github.com/aaashes1103/WindRadarVis.git) cd WAVE -
配置与构建
- 使用 Qt Creator: 打开
WindRadarVis.pro(或CMakeLists.txt),配置项目并点击 "Run"。 - 使用 Visual Studio: 安装 Qt Visual Studio Tools 插件,打开
.sln或导入.pro文件,生成解决方案。
- 使用 Qt Creator: 打开
-
运行 编译成功后,确保将示例数据文件 (
wind_speed.csv,angle.csv) 准备好以便导入。
- 导入数据: 点击菜单栏
Import,依次选择 风速文件 和 角度文件。- 状态栏会显示当前加载的文件名。
- 调整参数:
- SNR Threshold: 拖动滑块过滤噪点(低于阈值的点将变灰或隐藏)。
- Elevation Layer: 切换查看不同仰角层的扫描数据。
- Display Mode: 在“径向风速”与“湍流强度”之间切换。
- 回放控制: 点击底部的
Start Auto Scan按钮模拟雷达扫描过程,或拖动时间滑块手动查看特定时刻。 - 导出结果:
Export -> Export Data: 将清洗后的数据保存为 CSV。Export -> Export Image: 将当前的 PPI 视图或图表保存为高清图片。
WindRadarVis/
├── main.cpp # 程序入口,包含自定义启动动画 (WaveIntro)
├── WindRadarVis.h/cpp # 主窗口逻辑,UI 布局与信号槽管理
├── DataManager.h/cpp # 数据核心:CSV 解析、时间对齐、离群处理算法
├── PPI3DWidget.h/cpp # 3D 可视化核心:OpenGL 渲染、Shader 管理、鼠标交互
├── ChartPanel.h/cpp # 2D 图表模块:封装 QtCharts 绘图逻辑
└── assets/ # 资源文件 (图标、样式表等)
Author: Ashes Context: C++ Course Project (Zhejiang University)


