帮酷LOGO
  • 显示原文与译文双语对照的内容
文章标签:Formats  版本  Measurement  格式  文件  数据  for  文件格式  
Automatically exported from code.google.com/p/mdfreader

  • 源代码名称:mdfreader
  • 源代码网址:http://www.github.com/ratal/mdfreader
  • mdfreader源代码文档
  • mdfreader源代码下载
  • Git URL:
    git://www.github.com/ratal/mdfreader.git
  • Git Clone代码到本地:
    git clone http://www.github.com/ratal/mdfreader
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/ratal/mdfreader
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • MDFREADER

    摘要:

    这里模块导入 MDF 文件( 测量的数据格式 V3.x 和 v4.x ),通常来自 INCA ( ETAS ),CANape或者 kayak 。 它被广泛应用于汽车工业中记录来自ecu的数据。 主模块 mdfreader.py 继承自 2模块( 每个 MDF 版本X 对一对): 第一个读取文件描述的块( mdfinfoX ) 和第二个( mdfXreader ) 读取文件中的原始数据。 它可以选择运行多线程。 在一个批处理中构建了efficently大量的数据,用于数据挖掘的耐久性评估文件。

    从 python dict继承的MDF 对象的结构

    对于每个通道:MDF [channelName] 以下键存在

    • 数据:numpy数组
    • 单位:单位名称
    • 主:主通道的主通道名称
    • masterType: 主通道类型( 时间,角度,距离,等等 )
    • 描述:通道描述
    • 转换:( 。使用convertAfterRead=False阅读时存在) 字典描述如何将原始数据转换为有意义的/物理数据

    MDF 对象主要属性:masterChannelList,它包含每个datagroup的通道名称列表

    Mdfreader模块方法:
    • 重采样通道到一个采样频率
    • 合并文件
    • plot 一个或者一个频道列表

    还可以将 MDF 数据导出到:

    • CSV文件( 默认情况下为excel方言)
    • NetCDF文件与Uniplot的兼容性( 需要 netCDF4,Scientific.IO )
    • HDF5 ( 需要 h5py )
    • Excel 95至 2003 ( 需要 xlwt,真正的slooow,注意数据大小)
    • Excel 2007/2010 ( 需要 openpyxl,如果不重新采样数据,则较慢)
    • Matlab. mat ( 需要 scipy.io )
    • MDF 文件它允许你创建或者修改数据,单位,描述,并再次保存。
    • Pandas dataframe ( 。仅在 命令行 中,不在mdfconverter中) 。 每个光栅一个 dataframe 。
    兼容性:

    对于 Windows 和Linux平台( x86和 AMD64 ),这里代码适用于 python 2.7和 python 3.4 + 。

    要求:

    Mdfreader主要依赖 numpy/scipy/matplotlib.

    使用公式定义的频道需要 sympy 。

    为了快速读取奇异数据( 未对齐字节或者包含隐藏字节) 或者只需要一列通道,Cython需要编译dataRead模块。 但是,如果cython编译失败,则bitarray成为必需的( 更慢,纯 python,可以能没有那么鲁棒,没有那么多测试) 。

    导出需求( 可选): scipy,csv,h5py,xlwt(3), openpyxl,Pandas

    Mdfconverter图形用户界面需要 PyQt ( 版本 4或者 5 )

    插件安装:

    pip软件包已经存在:

    pip install mdfreader

    或者仅来自来自实例的来自github的源

    python setup.py develop
    图形界面:( PyQt4和 PyQt5 )

    在PyQt4或者PyQt5中转换批文件的用户界面是包的一部分。 你可以使用 shell 中的命令'mdfconverter'启动它。 通过右键单击接口列表中的某个通道,可以对它的进行 plot 操作。 也可以在列之间拖动拖放通道以优化导入列表。 可以导入. lab 文本文件中的频道列表。 你可以选择将多个文件合并成一个,甚至重采样所有文件。

    :

    在大文件或者内存不足的情况下,你可以选择:

    • 只读取频道列表( 参数 channelList = ['channel','list'] )
    • 将原始数据保存在 MDF 中,而不使用数据类型转换( 参数 convertAfterRead=False ) 。 数据将由其他函数( plot,exportTo ) 动态转换。 getChannelData,等等 ),但原始数据类型将保留为 MDF 文件以及转换信息。
    • 使用参数压缩将内存中的数据压缩为blosc或者 bcolz 。 如果给定整数或者布尔值,则默认bcolz将使用整数压缩级别。 如果给定了'blosc',则默认压缩级别为 9.
    • 使用元数据创建 MDF dict,但没有原始数据( 参数 noDataLoading=True ) 。 根据mdfreader方法( 通常是getChannelData方法),数据将按需加载

    为了获得很好的数据可以视化,dataPlugin对 Veusz ( 从 1.16开始,http://home.gna.org/veusz/ ) 也是存在的;请按照Veusz文档和文件插件。

    命令示例:
    import mdfreader
     # loads whole mdf file content in yop mdf object yop=mdfreader.mdf('NameOfFile')
     # alternatively, for max speed and smaller memory footprint, read only few channels yop=mdfreader.mdf('NameOfFile',channelList=['channel1', 'channel2'],convertAfterRead=False)
     # also possible to keep data compressed for small memory footprint yop=mdfreader.mdf('NameOfFile',compression=True)
     # for interactive file exploration, possible to read the file but not its data to save memory yop=mdfreader.mdf('NameOfFile',noDataLoading=True) # channel data will be loaded from file if needed yop.getChannel('channelName') # to yield one channel and keep its content in mdf object# to get file mdf version yop.MDFVersionNumber
     # to get file structure or attachments, you can create a mdfinfo instance info=mdfreader.mdfinfo()
     info.listChannels('NameOfFile') # returns only the list of channels info.readinfo('NameOfFile') # complete file structure object yop.info # same class is stored in mdfreader class# to list channels names after reading yop.keys()
     # to list channels names grouped by raster, below dict mdf attribute contains# pairs (key=masterChannelName : value=listOfChannelNamesForThisMaster) yop.masterChannelList
     # quick plot of channel(s) yop.plot('channelName') or yop.plot({'channel1','channel2'})
     # file manipulations yop.resample(0.1) or yop.resample(masterChannel='master3')
     yop.cut(begin=10, end=15) # keep only data between begin and end yop.exporToCSV(sampling=0.01)
     yop.exportNetCDF()
     yop.exportToHDF5()
     yop.exportToMatlab()
     # converts data groups into pandas dataframes yop.convertToPandas()
     # drops all the channels except the one in argument yop.keepChannels({'channel1','channel2','channel3'})
     # merge 2 files yop2=mdfreader.mdf('NameOfFile_2')
     yop=mergeMDF(yop2)
     # can write mdf file after modifications yop.write() # write in same version as original file yop.write4() # write mdf version 4 file yop.write3() # write mdf version 3 file# to get/show raw data from channel after read yop.getChannelData('channelName') # returns channel numpy array


    文章标签:数据  文件  for  form  版本  格式  Formats  Measure  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语