目录
- cut
- 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你要的通道的数据。