龙空技术网

python汽车领域实战案例-dat文件处理

车辆标定测试遇见py 105

前言:

目前小伙伴们对“python处理mdf数据处理”都比较关切,朋友们都需要知道一些“python处理mdf数据处理”的相关知识。那么小编也在网上搜集了一些对于“python处理mdf数据处理””的相关内容,希望朋友们能喜欢,小伙伴们快快来学习一下吧!

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, QMainWindowfrom PyQt5.QtWidgets import QFileDialogfrom 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学习信息!

标签: #python处理mdf数据处理