python 中的 mf4 到 csv 转换
mf4 to csv conversion in python
我有一个 mf4 的数据集,我想在 python 中将其转换为 CSV。我已经从 mf4 读取数据并将其转换为 csv(如下所示),但我遇到了一个错误,因为我是 python 的新手,所以无法找到合适的转换方法。
from asammdf import MDF
import pandas as pd
efficient = MDF('./Data.mf4')
df = efficient.to_csv()
df.append(efficient)
mdf.save('output.csv')
我收到这个错误:
MdfException: "Data.mf4" is not a valid ASAM MDF file: magic header is b'timestam'
请多多指教。谢谢!
您已经有 mf4 文件。这个文件是从 mdf 文件转换而来的吗?
如果是我想的那样,你应该使用mdf文件将其转换成CSV文件。无论如何,它就在这里,希望你或其他人能想出更好的方法。
import mdfreader
import os
extension = [".mdf"]
for root, dirs, files in os.walk(input_path):
for file in files:
ext = os.path.splitext(file)[-1].lower()
f_name = os.path.splitext(file)[0]
if ext in extension:
yop=mdfreader.Mdf(os.path.join(root, file))
yop=mdfreader.Mdf(os.path.join(root, file), channel_list=['channel1', 'channel2'], convert_after_read=False)
yop=mdfreader.Mdf(os.path.join(root, file), compression=True)
yop=mdfreader.Mdf(os.path.join(root, file), no_data_loading=True)
yop=mdfreader.Mdf(os.path.join(root, file), metadata=0)
yop.get_channel_name4('channelName', 'source path or name')
yop.get_channel('channelName')
yop.get_channel_data('channelName')
yop.MDFVersionNumber
info=mdfreader.MdfInfo()
info.list_channels('NameOfFile')
info.read_info('NameOfFile')
yop.info
yop.keys()
yop.masterChannelList
yop.plot(['channel1',['channel2','channel3']])
yop.resample(0.1)
yop.resample(master_channel='master3')
yop.cut(begin=10, end=15)
yop.export_to_csv(sampling=0.01)
yop.export_to_NetCDF()
yop.export_to_hdf5()
yop.export_to_matlab()
yop.export_to_xlsx()
yop.export_to_parquet()
yop.return_pandas_dataframe('master_channel_name')
yop.convert_to_pandas()
yop.keep_channels({'channel1','channel2','channel3'})
yop2=mdfreader.Mdf('NameOfFile_2')
yop.merge_mdf(yop2)
yop.write('NewNameOfFile')
yop.write4('NameOfFile', compression=True)
yop.write3()
yop.attachments
我使用 lib mdfreader 来做这个。您可以参考下面link了解更多详情。
感谢您的反馈。我明白了你的问题,你可以试试:
pip install https://github.com/danielhrisca/asammdf/archive/development.zip -I --no-deps
安装开发分支代码然后
mdf = MDF('file.mf4')
mdf.export('csv', 'export.csv', single_time_base=True, raster=0.1)
关于你的案例(使用anaconda)。请尝试:
conda install https://github.com/danielhrisca/asammdf/archive/development.zip -I --no-deps
lib mdfreader。在你要安装它。
conda install mdfreader
您可以使用 asammdf
包,通过 API 或 GUI。
安装包和 GUI 依赖项:
pip install asammdf[gui]
API 用法
from asammdf import MDF
mdf = MDF('input.mf4')
mdf.export(fmt='csv', filename='output.csv')
您还可以使用其他导出选项,请查看文档 https://asammdf.readthedocs.io/en/latest/api.html#asammdf.mdf.MDF.export
图形界面
从 python_installation_folder\Scripts\asammdfgui.exe
或通过 运行 这个脚本启动 GUI
from asammdf.gui.asammdfgui import main
main()
ASAM MDF(测量数据格式)是一种用于记录的二进制文件格式,例如CAN、CAN FD 和 LIN 总线数据。今天,MDF 格式是行业标准 - 确保许多 CAN 工具之间的互操作性。
CANedge 支持最新的 MF4 文件格式 - 下面我们列出了优点、基础知识和 software/API 工具。我们还提供示例 MF4 数据(J1939,OBD2)。
from asammdf import MDF, Signal #import asammdf
f_in = input ("Enter Input MDF4 FIle :")
mdf = MDF(f_in) #read mf4 data
f_out = f_in.replace(".MF4", ".csv")
mdf.export(fmt='csv', filename= f_out) #write to csv
MDF4 文件由“块”组成——其中大部分实际上是任意排序的。通过内部“链接”系统,这些块形成了一个层次结构。
这种结构使日志文件比例如日志文件更灵活。 CSV - 非常适合例如混合 CAN、CAN FD 和 LIN,或同时支持 raw/physical 数据。
来源:https://www.csselectronics.com/pages/mf4-mdf4-measurement-data-format
我有一个 mf4 的数据集,我想在 python 中将其转换为 CSV。我已经从 mf4 读取数据并将其转换为 csv(如下所示),但我遇到了一个错误,因为我是 python 的新手,所以无法找到合适的转换方法。
from asammdf import MDF
import pandas as pd
efficient = MDF('./Data.mf4')
df = efficient.to_csv()
df.append(efficient)
mdf.save('output.csv')
我收到这个错误:
MdfException: "Data.mf4" is not a valid ASAM MDF file: magic header is b'timestam'
请多多指教。谢谢!
您已经有 mf4 文件。这个文件是从 mdf 文件转换而来的吗? 如果是我想的那样,你应该使用mdf文件将其转换成CSV文件。无论如何,它就在这里,希望你或其他人能想出更好的方法。
import mdfreader
import os
extension = [".mdf"]
for root, dirs, files in os.walk(input_path):
for file in files:
ext = os.path.splitext(file)[-1].lower()
f_name = os.path.splitext(file)[0]
if ext in extension:
yop=mdfreader.Mdf(os.path.join(root, file))
yop=mdfreader.Mdf(os.path.join(root, file), channel_list=['channel1', 'channel2'], convert_after_read=False)
yop=mdfreader.Mdf(os.path.join(root, file), compression=True)
yop=mdfreader.Mdf(os.path.join(root, file), no_data_loading=True)
yop=mdfreader.Mdf(os.path.join(root, file), metadata=0)
yop.get_channel_name4('channelName', 'source path or name')
yop.get_channel('channelName')
yop.get_channel_data('channelName')
yop.MDFVersionNumber
info=mdfreader.MdfInfo()
info.list_channels('NameOfFile')
info.read_info('NameOfFile')
yop.info
yop.keys()
yop.masterChannelList
yop.plot(['channel1',['channel2','channel3']])
yop.resample(0.1)
yop.resample(master_channel='master3')
yop.cut(begin=10, end=15)
yop.export_to_csv(sampling=0.01)
yop.export_to_NetCDF()
yop.export_to_hdf5()
yop.export_to_matlab()
yop.export_to_xlsx()
yop.export_to_parquet()
yop.return_pandas_dataframe('master_channel_name')
yop.convert_to_pandas()
yop.keep_channels({'channel1','channel2','channel3'})
yop2=mdfreader.Mdf('NameOfFile_2')
yop.merge_mdf(yop2)
yop.write('NewNameOfFile')
yop.write4('NameOfFile', compression=True)
yop.write3()
yop.attachments
我使用 lib mdfreader 来做这个。您可以参考下面link了解更多详情。
感谢您的反馈。我明白了你的问题,你可以试试:
pip install https://github.com/danielhrisca/asammdf/archive/development.zip -I --no-deps
安装开发分支代码然后
mdf = MDF('file.mf4')
mdf.export('csv', 'export.csv', single_time_base=True, raster=0.1)
关于你的案例(使用anaconda)。请尝试:
conda install https://github.com/danielhrisca/asammdf/archive/development.zip -I --no-deps
lib mdfreader。在你要安装它。
conda install mdfreader
您可以使用 asammdf
包,通过 API 或 GUI。
安装包和 GUI 依赖项:
pip install asammdf[gui]
API 用法
from asammdf import MDF
mdf = MDF('input.mf4')
mdf.export(fmt='csv', filename='output.csv')
您还可以使用其他导出选项,请查看文档 https://asammdf.readthedocs.io/en/latest/api.html#asammdf.mdf.MDF.export
图形界面
从 python_installation_folder\Scripts\asammdfgui.exe
或通过 运行 这个脚本启动 GUI
from asammdf.gui.asammdfgui import main
main()
ASAM MDF(测量数据格式)是一种用于记录的二进制文件格式,例如CAN、CAN FD 和 LIN 总线数据。今天,MDF 格式是行业标准 - 确保许多 CAN 工具之间的互操作性。
CANedge 支持最新的 MF4 文件格式 - 下面我们列出了优点、基础知识和 software/API 工具。我们还提供示例 MF4 数据(J1939,OBD2)。
from asammdf import MDF, Signal #import asammdf
f_in = input ("Enter Input MDF4 FIle :")
mdf = MDF(f_in) #read mf4 data
f_out = f_in.replace(".MF4", ".csv")
mdf.export(fmt='csv', filename= f_out) #write to csv
MDF4 文件由“块”组成——其中大部分实际上是任意排序的。通过内部“链接”系统,这些块形成了一个层次结构。
这种结构使日志文件比例如日志文件更灵活。 CSV - 非常适合例如混合 CAN、CAN FD 和 LIN,或同时支持 raw/physical 数据。
来源:https://www.csselectronics.com/pages/mf4-mdf4-measurement-data-format