python读取.set文件


本教程为脑机学习者Rose原创(转载请联系作者授权)发表于公众号:脑机接口社区(微信号:Brain_Computer).QQ交流群:903290195

简介

本案例主要介绍如何读取eeglab示例文件.set.
.set文件记录的是采集的信息,主要内容包括通道数,事件数,开始时间与结束时间等。

知识点

mne中使用mne.io.read_raw_eeglab()读取.set文件;

read_raw_eeglab()函数介绍:

mne.io.read_raw_eeglab(input_fname,
                       montage='deprecated',
                       eog=(), 
                       preload=False, 
                       uint16_codec=None,
                       verbose=None)  

参数解读

input_fname:.set文件的存放路径;  
montage='deprecated':该参数已经舍弃了。在0.19版本中,它的功能可以通过set_montage方法来实现;  
eog:指定eog通道的通道名称或索引,如果设置为auto,则使用包含eog和eye的通道名称。默认情况为空元组;  
preload:类型 str或者bool 如果为True,则数据将预加载到内存中,以满足更快速的索引;  
uint16_codec:类型 str | None 允许指定读取字符数组时应用的编解码器(比如,"latin1"或者"utf-8")

案例

#导入工具库
import mne
import matplotlib.pyplot as plt
  1. 利用mne.io.read_raw_eeglab来读取.set文件
"""
通过mne.io.read_raw_eeglab来读取.set文件
得到原始数据对象
"""
raw = mne.io.read_raw_eeglab("Eeglab_data.set",preload=False)
  1. 绘制从第5s开始,5s时间窗口长的原始数据
"""
绘制从第5s开始,5s时间窗口长的原始数据

start:指定开始绘制的时间
duration:要绘制的时间窗口

从该图中可以看出每个通道的数据波动情况
可以通过设置duration的大小来放大或缩小

这个有点类似于eeglab中,放大缩小功能。
这里相同大小的窗口显示更短时间的数据,相当于eeglab中的选中数据进行放大,
反之,即缩小。
"""
raw.plot(start=5, duration=5)
plt.show()

"""
设置duration=1,相当于放大
"""
raw.plot(start=5, duration=1)
plt.show()

  1. 通常raw的数据访问方式如下:
    data, times = raw[picks, time_slice]

picks:是根据条件挑选出来的索引;
time_slice:时间切片

想要获取raw中所有数据,以下两种方式均可:
data,times=raw[:]
data,times=raw[:,:]

"""
获取1-3秒内的EEG数据
获取前5条 时间从1秒开始到3秒为止的数据
raw[:5,int(sfreq*1):int(sfreq*3)]
"""

sfreq=raw.info['sfreq']
data,times=raw[:5,int(sfreq*1):int(sfreq*3)]
plt.plot(times,data.T)
plt.title("Sample channels")

脑机学习者Rose笔记分享,QQ交流群:903290195
更多分享,请关注公众号


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM