首发即开源!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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/92750.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/92750.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android Studio历史版本快速下载(二次修改记录)

原版:Android Studio历史版本快速下载_android studio 历史版本下载-CSDN博客 一. 最新版本 https://developer.android.com/studio?hlzh-cn 二. 历史版本 中国官网的历史版本为何不能下载?(https://developer.android.com/studio/archi…

The Missing Semester of Your CS Education 学习笔记以及一些拓展知识(六)

文章目录The Missing Semester of Your CS Education 学习笔记以及一些拓展知识版本控制Git笔记部分Git的基本工作原理Git 的核心工作原理:快照而非差异Git 的三大工作区域Git的核心对象Git的四个对象对象之间的关系与工作流程:对象的引用Git的安装和基础…

嵌入式与 Linux 系统中的核心图形库全解析

嵌入式与 Linux 系统中的核心图形库全解析 图形库在嵌入式系统与 Linux 桌面系统中扮演着重要角色。从最底层的 GPU 驱动接口,到上层的图形渲染与 GUI 工具包,共同构成了完整的图形显示栈。本文将系统整理图形相关的核心组件,按功能分层分类&…

深度学习模块实践手册(第十二期)

56、Ghost 模块论文《GhostNet: More Features from Cheap Operations》1、作用: Ghost 模块是一种轻量级的特征提取模块,旨在通过廉价操作生成更多特征图,减少计算量的同时保持模型性能。传统卷积神经网络在生成特征图时存在大量冗余计算&am…

自己动手造轮子:如何创建JAR并通过Maven在Spring Boot中引用

让代码复用变得简单优雅——3分钟学会封装专属工具库作为Java开发者,你是否遇到过这些痛点?多个项目重复编写相同工具类工具代码分散难以统一维护团队协作缺乏标准化工具库本文将手把手教你创建自己的JAR包,并优雅地集成到Spring Boot项目中&…

使用dea工具 给vue 里面的ts打断点

在 Vue 项目中使用 TypeScript 时,我们通常会在 IDE(如 JetBrains 的 IntelliJ IDEA 或 WebStorm)中设置断点进行调试。以下是详细步骤: 准备工作 确保项目已配置 source maps(Vue CLI 创建的项目默认已配置&#xff0…

Zabbix 企业级分布式监控

目录 简介 一、监控系统基础 1.1 监控的价值 1.2 监控的 5 大类型与 5 大层次 1.3 监控系统的实现原理 二、Zabbix:企业级监控方案 2.1 Zabbix 简介 2.2 Zabbix 核心功能特性 2.3 Zabbix 角色与架构 三、Zabbix 部署案例 3.1 资源清单 3.2 基础环境配置…

SQL JOIN 全解析:用 `users` 与 `orders` 表彻底掌握内连接、左连接、右连接

SQL JOIN 全解析:用 users 与 orders 表彻底掌握内连接、左连接、右连接 在日常开发中,SQL 的连接(JOIN)语句是数据库查询的核心技能。尤其在多表联合查询时,不掌握好 INNER JOIN、LEFT JOIN、RIGHT JOIN,…

(一)从零搭建unity3d机械臂仿真-unity3d导入urdf模型

1.新建工程并加载模型 (1)unity中新建3d工程 (2)将机器人模型导入到unity3d中 导入开源Unity-Robotics-Hub的机械臂。 详细操作参考视频 ROS Unity URDF Import Testing Robot Motion 使用 URDF Importer工具 在 Unity 中&#x…

Linux之网络部分-应用层自定义协议与序列化

一、应用层 1.1、理解协议 协议是一种 "约定". socket api 的接口, 在读写数据时, 都是按 "字符串" 的方式来发送接收的。如果我们要传输一些 "结构化的数据" 怎么办呢? 其实,协议就是双方约定好的结构化的数据。 1.2、网络版计…

机器学习week3-分类、正则化

1. 逻辑回归1.1. 线性回归 vs 逻辑回归对比维度线性回归逻辑回归任务类型回归(预测连续值)分类(预测离散类别)输出范围(−∞,∞)[0,1](概率值)损失函数均方误差(MSE)对数损失&#x…

FastAdmin 中生成插件

在 FastAdmin 中生成一个 OCR 发票识别插件,可以按照以下步骤进行开发。这里假设你已经熟悉 FastAdmin 插件开发的基本流程,并会使用 Composer 和 PHP 扩展。1. 创建插件骨架使用 FastAdmin 命令行工具生成插件基础结构:php think addon -a o…

DevExpress WinForms中文教程:Grouping(分组)- 如何自定义分组算法?

DevExpress WinForms拥有180组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜…

PHP 与 Vue.js 结合的前后端分离架构

PHP 与 Vue.js 结合是构建现代 Web 应用的流行技术栈,通常采用 前后端分离架构。以下是关键要点和推荐实现方案: 一、技术栈组合 角色技术选项后端 (PHP)Laravel (推荐)、Symfony、CodeIgniter前端 (Vue)Vue 2/3、Vue Router、Pinia/Vuex、Vite通信协议…

XML高效处理类 - 专为Office文档XML处理优化

/**** 提供XML读取、写入、修改、查询等高级功能,支持命名空间和复杂XML结构* * 主要功能:* 1. 复杂路径解析(支持属性筛选、索引、通配符)* 2. 完整节点类型支持(元素、文本、CDATA、注释、PI)* 3. 高效元…

星慈光编程虫2号小车讲解第一篇--向前向后

星慈光编程虫2号小车是一款基于微控制器(如Arduino)的编程教学小车,常用于学习机器人控制和编程基础。本讲解将重点介绍小车的基本运动:前进、后退、左转和右转。这些运动通过控制电机实现,通常涉及调整电机的方向和速…

iOS 加固工具有哪些?快速发布团队的实战方案

在当今快速迭代的 iOS 开发环境中,团队需要在高频上线与应用安全之间找到平衡。快速发布不应牺牲安全性,而安全加固也不应成为阻碍上线的瓶颈。这就要求开发者在加固工具的选型与流程设计上,做到既高效又可靠。 那么,iOS 加固工具…

结构型模式-架构解耦与扩展实践

结构型模式聚焦于对象间的组合关系,通过优化类与对象的装配方式,实现系统的灵活性与可扩展性。在分布式系统中,由于多节点协作、跨网络通信及异构环境集成等特性,传统结构型模式需进行适应性改造,以应对分布式特有的复…

scratch笔记和练习-第三课

角色的大小变化 亮度等特效设置 流程图图形符号 Figma攻略:26个流行流程图符号及其解释 练习 实现在闪动10次后角色缓缓变回原形

Redis MCP 安装与配置完整指南

一、Redis MCP 简介 Redis MCP (Managed Control Plane) 是一个独立于 Redis 服务运行的管理控制平台,用户可通过该平台快速高效地管理和配置 Redis 实例。Redis MCP 可配合开源 Redis 或 Redis Cloud 使用。 二、安装 Redis MCP 服务 Redis MCP 提供多种安装方式&a…