我在一个实验室工作,我们使用自定义的Labview获取电生理记录(横跨4个记录通道),它将获取的数据保存为.DAT (二进制)文件。然后,可以在更多的Labview中继续对这些文件进行分析,但是我想用Python分析我所有的录音。首先,我需要遍历我的所有文件并将它们从二进制文件中转换出来!
我尝试过numpy.fromfile (文件名),但我得出的数字对我来说毫无意义:
数组( 3.44316221e-282,1.58456331e+029,1.73060724e-077,.,4.15038967e+262,-1.56447362e-090,1.80454329e+070)
为了更进一步,我查找了.DAT头格式,以了解如何获取字节并转换它们--数据保存在多少字节中等:艾尔格明/
但我想不出该怎么做。当我在终端中输入"head文件名“时,下面是我看到的。
例如>> head 2014_04_10c1slice2_rest.DAT DTL? 0?@@?空数组PF?cƀ??l?n?“1‘.+?K13:13:27;0.00010000-08?t???N?t?x>?n?????t?x>?n???????tgD>?n??n?tgD?x ??N?t?x>?n???N?t??>?n ??N?tgD>?n???N?tgD>?n??n?N?tgD?d?n?t?~i?n?n?x??DY?
任何关于下一步该做什么的帮助或建议都将是非常感谢的。
谢谢。
附注:有一个旧的(坏的) matlab文件,似乎是为了转换这些文件。我认为这可能是有帮助的,但花了几天时间去理解它,我还是被困住了。http://www.mathworks.co.uk/matlabcentral/fileexchange/27195-load-labview-binary-data
发布于 2014-07-03 21:27:58
在此链接的基础上,如下所示应该能做到这一点:
binaryFile = open('Measurement_4.bin', mode='rb')
(data.offset,) = struct.unpack('>d', binaryFile.read(8))注意,对于二进制文件,mode设置为'rb'。
使用numpy,您可以直接执行以下操作
data = numpy.fromfile('Measurement_4.bin', dtype='>d')请注意,如果您只是使用Python作为中间程序,并且希望返回到LabVIEW中,那么您应该使用函数从二进制file.vi读取来使用本机LabVIEW读取二进制文件。
发布于 2014-07-06 06:49:32
DAT是一个相当通用的后缀,不一定指向特定的格式。如果我的理解是正确的,那么该帮助部分是针对DIAdem的,它可能与您从LV保存数据的方式完全无关。
您需要的是这个帮助部分,它告诉您LV是如何将数据存储在磁盘- 数据/上的。
您需要查看LV代码,以确切地了解您正在保存的数据类型以及写文件函数是如何配置的(字节顺序、大小预置等)。然后使用该文档将其转换为实际表示。
https://stackoverflow.com/questions/24563303
复制相似问题