asammdf python库解析MF4文件(一)cut and filter

目录

asammdf 是一个功能强大的 Python 库,专门用于处理汽车行业常用的 MDF(Measured Data Format)文件
这篇文章主要介绍mdf库的cut和filter函数

cut

cut函数主要用于裁剪数据,比如你的MF4文件是一个100s的数据,可以通过cut函数将你需要的那一段数据进行裁剪出来。可以通过以下代码将原始文件cut出新的数据。不过这对处理大数据不是很友好,如果你的原始数据比较大,那么运行这个cut函数会被卡住
函数参数说明

cut(start: float | None = None, stop: float | None = None, whence: int = 0, version: str | None = None, include_ends: bool = True, time_from_zero: bool = False, progress=None)

使用简单介绍

from asammdf import MDF

# 加载 MDF 文件
mdf = MDF('test_100s.mf4')

cut_mdf = mdf.cut(start=0, stop=10)
cut_mdf.save('cut.mf4')

上述代码我将原始文件cut了0到10s的数据
在这里插入图片描述

也可以通过可视化的方式进行裁剪

asammdf有一个exe,理论上可以直接打开使用,通过exe打开你的数据,全选你的数据channel,这里不知道是不是工具有一个bug,没有全选按钮,只能一个一个通道勾选,如果你有几百个通道的数据,这就不是很友好了。右边可以进行cut,选择start和end。
在这里插入图片描述

filter

通过filter函数可以把你想关注的变量或者group 的数据filter出来
函数参数说明

filter(channels: ChannelsType, version: str | None = None, progress=None)
from asammdf import MDF

# 加载 MDF 文件
mdf = MDF('test_100s.mf4')

filtered_mdf = mdf.filter([(None,1,1),(None,2,2)])
filtered_mdf.save('filtered.mf4')

ctrl+F可以在可视化软件中进行搜索
上面的代码将group 1, index =1, group2,index=2的数据filter出来了在这里插入图片描述我的测试文件原始数据结构如下:
可以看到group1,index1表示的是一个信号组,在这下面还有很多信号,这个下面的所有信号都被过滤出来了,group2,index2表示的是一个具体的信号,所以我的filter结果就是
在这里插入图片描述
在这里插入图片描述
或者你也可以通过可视化界面去filter你要的通道的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值