首发即开源!DAWorkBench数据可视化分析软件正式发布!(附源码下载网址)

1 系统介绍

DAWorkBench是一款面向科研实验和工程测试场景的数据可视化分析开源软件,支持实现数据清洗、信号处理和交互式可视化等功能。系统集成文件IO、数据处理以及可视化交互三大模块,支持多维数据分析与高质量图表生成,助力用户高效完成从数据预处理到结果展示的全流程工作。

作为一款开源软件,DAWorkBench提供源代码和开放的插件接口,用户不仅可以基于软件进行自由修改,也可根据自身科研或工程需求接入自定义的数据处理算法,实现算法、功能或流程拓展,满足特定科研和工程项目的个性化需求。

图片

图 1 DAWorkBench主界面

2 系统架构设计

本系统采用分层架构模式及模块化设计理念,满足大规模实测数据综合处理软件在数据统一管理、数据处理分析和数据可视化需求,可实现各功能模块的统一交互界面集成、全过程数据管理、数据可视化等集成功能。系统采用模块化、插件化的设计思想,系统提供了基础的功能和接口,所有业务功能由插件提供。

系统采用C++、Python语言和QT界面框架研发。C++语言具有较好的面向对象支持,具有大量的基于C++语言的图形库,在图像渲染、图形可视化以及并行化支持等方面,C++具有更好的执行效率。Python提供了大量数据处理算法库,同时具有较强的平台兼容性。QT是基于C++语言的界面组件库,可用于快速搭建软件交互界面。QT具有良好的跨平台特征,因此,本系统基于QT图像库构建软件界面,可完美的支持Windows和Linux等操作系统。

根据本系统软件开发需求和技术途径,软件总体设计采取三层结构,数据IO管理层、数据处理层和数据可视化层。技术总体架构如下图所示:

图片

图 2 DAWorkBench系统架构

(1)数据IO管理层,采用pandas库常见的数据格式进行交互,支持parquet、pickle等高速二进制文件,也支持excel、csv、txt等常见的数据文件,满足异构大规模数据的统一管理和维护,同时,依托于C++的高效性,软件支持亿级数据的加载和可视化操作。数据层的接口采用脚本化封装,对于未来新型数据格式,也可以快速的实现扩展。

(2)数据处理层,是数据处理软件的核心,本软件数据层主要有两个特点,一是高效性、二是灵活性,软件可以通过可视化界面对超大规模数据进行高效处理,同时预封装了多种数据处理算法,包括常见的数据清洗算法如:缺失值处理、重复值处理、异常值替换、过滤等,也封装了pandas库中dataframe常用的数据处理方法,如实现列的四则运算、条件过滤、排序、数据透视表等等。

本系统采用插件式开发模式,除了预封装的功能外,也支持新算法的扩展。本文下文将展示,把信号处理常见的算法封装为插件,实现了傅里叶变换、滤波器算法,用户也可根据需求,实现短时傅里叶变换、小波变换等常见的信号处理算法。

(3)数据可视化层,主要是基于底层统一的数据结构和算法调用接口,开展软件用户界面设计、数据可视化呈现等。软件的可视化大量采用了MVC模式,能实现亿级超大规模的dataframe表格可视化,创新性的使用了model层双缓存机制,解决了Qt的MVC超大规模(亿级行数)表格的渲染效率低的问题,同时在Qwt绘图库的基础上进行了扩展,优化了千万级数据曲线绘制,多序列数据绘图,数据窗口缩放,数据显示设置等。

3 各模块功能介绍

3.1 数据IO模块

数据IO模块负责试验数据的导入与导出,支持多种数据格式,包括txt、csv、xlsx、parquet、pkl等,具备批量处理能力,确保数据在系统与外部之间高效、准确地交换,为数据分析和可视化提供基础支撑,同时支持工程文件的读写,实现数据的持久化存储。

3.1.1 数据导入

数据导入功能用于将试验采集或外部生成的数据导入系统,为后续分析提供数据基础。用户可点击添加数据,在弹出的对话框中选择导入的文件及格式,即可完成数据的导入。对于txt文件的导入需要设置编码格式及表头等信息,对于其他格式的文件可直接自动导入。

图片

图 3 文件导入对话框

图片

图 4 txt文件导入设置对话框

3.1.2 数据导出

数据导出功能用于将分析结果或原始数据按需导出,支持导出范围和内容,便于数据共享、归档或进一步处理。用户可以选择单个导出和多个导出,单个文件导出当前所激活的数据图表,多个导出则是导出所有数据图表。

图片

图 5 数据导出对话框

工程文件保存功能用于将当前试验分析过程中的所有关键数据、参数设置、图表配置等整体打包保存为工程文件,便于后续加载、复现分析流程或继续工作,提升工作效率和数据管理的连续性。

3.1.3 工程文件保存

图片

图 6 工程文件保存对话框

3.2 数据处理模块

3.2.1  数据清洗模块

数据清洗主要包括三个方面:缺失值处理,即对缺失数据进行填充或删除操作,确保数据完整性;异常值处理,针对数据中的异常值进行判断和处理,以保证后续分析的准确性;重复值处理,则是删除数据中的重复记录,避免数据冗余和影响分析结果的偏差。

(1)缺失值删除

缺失值删除功能用于自动识别并清除数据中的空值,支持按列或按行处理,确保数据完整性,提升分析结果的准确性和可靠性。

图片

图 7 缺失值删除效果图

(2)缺失值填充

缺失值填充功能用于对数据中的空值进行补全,支持多种填充方式,包括按值填充、前向填充、后向填充等,保持数据结构完整,避免因缺失值影响分析结果。

图片

图 8 缺失值填充效果图

(3)重复值删除

重复值删除功能用于自动识别并剔除数据中重复的记录,支持按整行或指定列判断重复,确保数据唯一性,提升数据质量和分析准确性。

图片

图 9 重复值删除效果图

(4)异常值过滤

异常值过滤功能用于自动识别并剔除数据中的异常值或离群点,主要采用n倍标准差法进行异常值的过滤,确保数据的有效性和分析的准确性。

图片

图 10 异常值过滤效果图

3.2.2 信号处理模块

信号处理模块是基于系统的独立插件,通过系统的接口,把数字信号处理的功能进行了封装,能实现数据分析和数据绘图。基于系统的插件模式,可以集成更多的数据处理功能。

(1)傅里叶变换

傅里叶变换功能用于将时域信号转换到频域,揭示信号的频率成分,支持快速傅里叶变换算法,实现高效频谱分析,帮助用户识别信号中的周期性特征和频率分布,提升信号处理和分析能力。

图片

图 11 傅里叶变换结果及参数设置对话框

图片

图 12 傅里叶变换原始波形及频域图像

(2)滤波

滤波功能用于对信号数据进行平滑处理或噪声抑制,本系统采用巴特沃斯滤波器设计,支持多种滤波操作,包括低通滤波、高通滤波、带通滤波和带阻滤波,帮助去除无关干扰,突出有效信号特征,提高数据质量和后续分析的准确性。

图片

图 13 滤波结果及参数设置对话框

图片

图 14 滤波原始波形及滤波后波形图像

3.3 数据可视化模块

3.3.1 数据图表交互

数据图表以表格形式呈现数据,支持大规模数据展示、数据检索、排序、过滤、聚合和统计等功能,便于用户快速查看、筛选和整理关键数据,为后续分析提供基础支撑。

(1) 数据图表可视化

图片

图 15 数据图表

(2)数据检索

数据检索功能用于快速定位和查询目标数据,帮助用户高效从海量数据中检索到所需信息,提高数据访问速度和分析效率。

图片

图 16 数据检索对话框

(3)数据排序

数据排序功能用于按照指定列对数据进行升序或降序排列,方便用户快速组织和查看数据,提升数据浏览和分析的便捷性。

图片

图 17 数据排序对话框及效果

(4)数据过滤 

数据过滤功能用于根据用户设定的条件筛选数据,用户可选择过滤的列数据及区间,帮助排除不需要的记录,突出重点信息,提高数据分析的针对性和效率。

图片

图 18 数据过滤对话框及效果

(5)数据聚合

数据聚合主要以数据透视表的形式体现,用于对大量数据进行动态汇总和多维度分析,支持按行、列进行分类分组,计算合计、平均值等统计指标,帮助用户快速发现数据规律和关键特征,提升数据解读和决策能力。

图片

图 19 数据透视表对话框及效果

(6)数据统计

数据统计功能用于对数据集进行常用统计量的计算,支持均值、中位数、方差、标准差、最大值、最小值等指标,帮助用户快速了解数据分布和特征,辅助深入分析和判断。

图片

图 20 数据统计效果

3.3.2 数据图像交互

数据图像交互包含多种图像的绘制,包括折线图、散点图、柱状图、箱型图、谱图等,同时支持图形参数设置,帮助用户更直观地观察数据趋势、分布特征等。

图片

图 21 折线图

图片

图 22 散点图

图片

图 23 柱状图

图片

图 24 箱型图

图片

图 25 谱图

源码下载地址:https://github.com/czyt1988/data-workbench

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FastCAE2022

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值