Skip to content

aaashes1103/WindRadarVis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Main Interface

WAVE: Wind Analysis & Visualization Engine 🌊

C++ Qt OpenGL License

WAVE 是一款基于 C++ 和 Qt 框架开发的高性能风雷达数据后处理与可视化平台。

该系统旨在解析激光测风雷达的原始观测数据,通过硬件加速的 3D PPI(平面位置显示)视图和交互式 2D 廓线图,直观地展示大气风场特征。内置数据清洗、对齐、湍流强度计算等核心算法,并采用现代化的深色赛博朋克风格 UI 设计。


✨ 核心功能 (Features)

1. 数据处理核心 (Data Core)

  • 多源数据融合:自动读取并对齐风速数据 (wind_speed.csv) 与云台角度数据 (angle.csv),解决时间戳非同步问题。
  • 智能数据清洗
    • SNR 阈值过滤:实时剔除低信噪比的噪声数据。
    • 离群点去除:内置 Hampel 滤波器(基于中位数的去噪算法),有效修复数据突变。
  • 高级气象参数计算:支持基于滑动窗口的湍流强度 (Turbulence Intensity, TI) 实时计算。

2. 高级可视化 (Advanced Visualization)

  • 3D PPI 雷达扫描图
    • 基于 OpenGL (GLSL) 自绘的大规模点云渲染,支持百万级数据点流畅显示。
    • 支持鼠标交互:3D 旋转、缩放、平移。
    • 伪彩热力图:根据风速或湍流强度动态映射颜色。
    • 实时悬停反馈:鼠标悬停即可查看任意空间点的方位角、仰角、距离及测量值。
  • 2D 廓线分析图表
    • 利用 QtCharts 绘制高度-风速/SNR 曲线。
    • 支持精细化刻度显示(Minor Ticks)和动态范围调整。

3. 现代化交互体验 (Modern UI/UX)

  • 沉浸式启动体验:自定义无边框启动页,包含动态正弦波浪动画与光晕特效,模拟雷达信号特征。
  • 深色主题:全局采用 "Deep Space" 配色方案,搭配霓虹色(青/橙)数据高亮,降低视觉疲劳。
  • 全功能控制面板:支持仰角层切换、SNR 阈值调节、可视化距离裁剪及自动回放扫描过程。

📸 界面预览 (Screenshots)

Main Interface Charts

:主界面展示了 3D 点云扫描(左下)、控制面板(左上)以及实时的风速与信噪比廓线图(右侧)。


🛠️ 技术栈 (Tech Stack)

  • 编程语言: C++17
  • GUI 框架: Qt 6 (QtWidgets, QtCharts)
  • 图形渲染: OpenGL (QOpenGLWidget, QOpenGLFunctions, GLSL Shader)
  • 构建工具: qmake / CMake / Visual Studio MSVC

🚀 快速开始 (Getting Started)

环境要求

  • Qt 6.2 或更高版本
  • 支持 OpenGL 2.1+ 的显卡
  • Visual Studio 2019/2022 (Windows) 或 GCC (Linux/macOS)

编译步骤

  1. 克隆仓库

    git clone [https://github.com/aaashes1103/WindRadarVis.git](https://github.com/aaashes1103/WindRadarVis.git)
    cd WAVE
  2. 配置与构建

    • 使用 Qt Creator: 打开 WindRadarVis.pro (或 CMakeLists.txt),配置项目并点击 "Run"。
    • 使用 Visual Studio: 安装 Qt Visual Studio Tools 插件,打开 .sln 或导入 .pro 文件,生成解决方案。
  3. 运行 编译成功后,确保将示例数据文件 (wind_speed.csv, angle.csv) 准备好以便导入。


📖 使用说明 (Usage)

  1. 导入数据: 点击菜单栏 Import,依次选择 风速文件角度文件
    • 状态栏会显示当前加载的文件名。
  2. 调整参数:
    • SNR Threshold: 拖动滑块过滤噪点(低于阈值的点将变灰或隐藏)。
    • Elevation Layer: 切换查看不同仰角层的扫描数据。
    • Display Mode: 在“径向风速”与“湍流强度”之间切换。
  3. 回放控制: 点击底部的 Start Auto Scan 按钮模拟雷达扫描过程,或拖动时间滑块手动查看特定时刻。
  4. 导出结果:
    • Export -> Export Data: 将清洗后的数据保存为 CSV。
    • Export -> Export Image: 将当前的 PPI 视图或图表保存为高清图片。

📂 项目结构 (Project Structure)

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)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published