我有一组包含脑电图信号数据的EDF文件。我正在使用pyedflib
来访问这些文件,但是我经常很难从某些文件中读取信号。基本上,当我试图读取信号值时,有很多文件都是0的数组。给予:
def get_sig(fname):
import pyedflib
f=pyedflib.EdfReader(fname)
file_dur=f.getFileDuration()
fs=int(inFile.getSignalHeader(0)['sample_rate'])
chan_names=f.getSignalLabels()
#note... channel names and file duration are captured correctly
sig=f.readSignal(4)
return sig
这将返回一个长度为“file_dur”*“fs”的数组,但结果是所有0的数组,并显示以下警告:
^{pr2}$有人知道什么会引起这样的问题吗?不幸的是,我不能分享任何数据,因为它是PHI,但如果有任何额外的信息,可以询问。在
一些额外的注意事项:
sig=f.readSignal(4,start=0,n=100)
以确保文件开头或其他类似内容没有问题,并且它返回一个长度为100的所有0的数组。在f.readSignal(4)
中使用的索引4不是硬编码的,这只是为了演示目的(在我的示例文件中,4对应于EEG信道F4)。在谢谢!在
另外,我也会把这个添加到pyedflibwiki中。在
如果使用相同的句柄,pyedflib不会清理文件之间的内容。上面的代码可以正常运行,但是当作为驱动程序内部的循环实现时,我没有显式地关闭pyedflib文件句柄。一旦我在每个文件之后添加了
f.close()
,它就可以正常工作了。在相关问题 更多 >
编程相关推荐