网站首页 > 技术教程 正文
python实战-dat测量文件如何转成csv数据?
python实战之 dat文件转成csv文件
什么是dat文件?
如果在百度中搜索,大概率会得到类似这样的回答:
dat即data,指包含了一些数据信息的文件,数据信息可能是图片,视频,音频,文件等信息,不确定是哪个,如果要想打开,需要使用相应的软件打开,比如音频,要用音频软件打开。
本篇文章所提到的dat文件:特指汽车工程师常用软件INCA,所采集的测量文件,主要包含车辆和发动机基本参数随时间的变化数据。比如,下面是某个dat文件在MDA软件中打开的结果,可以查看发动机和后处理参数在运行过程中表现。
csv文件,就是使用excel打开的表格数据。
为什么要把dat转成csv呢,什么情况下你会用得到?
dat文件一般只能用MDA这种专业软件打开,查看变量实时表现,但是如果想统计所有记录文件里,转速大于2000的区域,温度表现,或者平均温度;再或者需要看DPF温度有没有超过600度,超过了多久。
这些需要对数据进行分析计算。其中最突出需求的是OBD鲁棒性分析/路试分析,经常需要对采集的测量数据进行统计出报告,这种软件我们也有已完成的。
上述情况下,均可以使用csv数据,更方便统计处理,更容易使用python读取数据后进行批量操作。
dat转csv,怎么转?
下面是python程序最终实现界面:
1.任务分解
第一步
- 先找到合适的库,这个过程有可能是需要反复的,我也是试了好几个库,最后选择了asammdf这个库,它主要用于处理dat文件;
- 任务拆分:
2.编程思路
- 安装库 pip install asammdf
- 导入库
from asammdf import MDF
导入asammdf库中的MDF函数,主要用于将dat文件转成MDF格式数据
这里面需要介绍下MDF:
MDF,全称(Measurement Data Format),即测量数据格式,是ASAM(自动化及测量系统标准协会)定义的。
INCA、CANape等工具,录制的测量数据,都是MDF格式。
INCA将文件后缀改成了.dat,其实本质上仍是MDF。
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtWidgets import QFileDialog
from PyQt5 import QtCore, QtGui, QtWidgets
导入pyqt5的相关组件,用于UI界面实现。
这部分可以使用pycharm中pyqt插件,在可视化界面自行设计,设计好使用ui转py的插件,将其转化成py代码。这部分软件设置自行百度。
第二步
- 构建一个可视化的界面
使用pyqt,在pycharm中引入tool,设计上述界面
第三步
- 子函数-源数据文件夹获取
- 自建一个子函数,后续引用,链接到“选择dat所在文件夹”button按钮的事件中。
- 子函数思路:
- 首先需要先将之前操作信息清除,然后设置弹窗选择文件夹,选择好之后,需要将选择的内容传递给路径参数path_,并在操作界面中展示所选择的路径,这是为了直观看到选择的文件路径,便于判断是否选择正确。
- 数据处理主函数
- 使用for循环,因为文件夹中可能有多个dat文件,所以使用遍历dat文件的形式,单个单个处理。
- 首先提取dat文件的文件名,便于后面生成的csv文件命名.
- 接着是筛选变量,使用filter命令,提前将需要筛选的信号放入变量signals中,以list的形式.
- 最后重置mdf数据的采样频率,比如之前是按照100ms和10ms分别采样,后面需要统一变成100ms或者10ms,这样excel中数据才是方便查看的,每一行代表某一个时间点的全部数据。
- 导出csv数据和导入数据类似,需要定义一个导出的路径,csv文件放入哪个文件夹?主函数里也需要定义导出csv数据的命令,使用的是mdf.export函数,参数设置如下图.注意:需要在UI界面中打印导出数据的路径,避免导出后找不到csv文件的位置。
如需要上述实战源码文件,请在后台回复“dat2csv”。
如对车辆标定工具和python学习感兴趣,可添加小编wx:cheliang_py,或者qq:2023775165,获取更多标定工具和python学习信息!
猜你喜欢
- 2024-10-09 用友服务器数据恢复 用友软件恢复数据的三种方法
- 2024-10-09 计算机服务器中了devicdata勒索病毒怎么办勒索病毒解密工具步骤
- 2024-10-09 计算机服务器中了devicdata勒索病毒怎么处理,勒索病毒解密流程
- 2024-10-09 虚拟化数据恢复—XenServer虚拟化平台VPS不可用的数据恢复案例
- 2024-10-09 数据库基础01:数据库的创建、分离、附加、删除、备份
- 2024-10-09 修复SQLServer数据库中的数据损坏问题,有哪些工具?
- 2024-10-09 数据库恢复—sqlserver被加密,数据库文件名被篡改的数据恢复
- 2024-10-09 企业计算机服务器中了locked勒索病毒怎么解锁
- 2024-10-09 企业计算机服务器中了rmallox勒索病毒怎么处理勒索病毒解密恢复
- 2024-10-09 「数据库数据恢复」SQL Server数据库磁盘空间不足的数据恢复案例
你 发表评论:
欢迎- 最近发表
-
- PPT中动作连贯的卡通人物,我集齐了100套
- 成都13岁女孩手绘逐帧动画走红 网友:这是天赋型选手
- Android主流UI开源库整理(android完整开源项目)
- 达芬奇更新啦!DaVinci Resolve Studio 20.0.1
- LM Studio-本地安装大模型 | OpenAI API 文字转语音本地运行程序分享
- lululemon律动快闪 多色系呈现夏季活力
- [AOA][分享]160503 智珉和偶吧玩起电影游戏 用一件衣服找回悸动
- Visual Studio 2022:一个功能全面且强大的IDE
- 纽约布什维克区艺术家工作室开放即将举行
- 从 CANopen到 PROFINET:网关助力物流中心实现复杂的自动化升级
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)