本教程为脑机学习者Rose原创(转载请联系作者授权)发表于公众号:脑机接口社区(微信号:Brain_Computer).QQ交流群:903290195
简介
本案例主要介绍如何读取eeglab示例文件.locs文件。为了演示电极位置,所以需要读取.set文件。.set文件的读取详情请看python读取.set文件,这里就直接使用了。
.set文件记录的是采集的信息,主要内容包括通道数,事件数,开始时间与结束时间等。
.locs文件记录的是电极位置信息。
知识点:
利用mne.channels.read_custom_montage()读取.locs文件。
案例
#导入工具库
import mne
import matplotlib.pyplot as plt
1.读取.set文件
"""
通过mne.io.read_raw_eeglab来读取.set文件
得到原始数据对象
"""
raw = mne.io.read_raw_eeglab("Eeglab_data.set",preload=False)
2.读取.locs文件
首先查看原始数据中的通道名称:
"""
打印通道名
"""
print(raw.info[\'ch_names\'])
从上述打印的结果可以看到,原始数据中通道名称并非电极位置的命名,因此需要将其映射成电极位置名称。
mapping = {
\'EEG 000\': \'FPz\', \'EEG 001\': \'EOG1\', \'EEG 002\': \'F3\', \'EEG 003\': \'Fz\',
\'EEG 004\': \'F4\', \'EEG 005\': \'EOG2\', \'EEG 006\': \'FC5\', \'EEG 007\': \'FC1\',
\'EEG 008\': \'FC2\', \'EEG 009\': \'FC6\', \'EEG 010\': \'T7\', \'EEG 011\': \'C3\',
\'EEG 012\': \'C4\', \'EEG 013\': \'Cz\', \'EEG 014\': \'T8\', \'EEG 015\': \'CP5\',
\'EEG 016\': \'CP1\', \'EEG 017\': \'CP2\', \'EEG 018\': \'CP6\', \'EEG 019\': \'P7\',
\'EEG 020\': \'P3\', \'EEG 021\': \'Pz\', \'EEG 022\': \'P4\', \'EEG 023\': \'P8\',
\'EEG 024\': \'PO7\', \'EEG 025\': \'PO3\', \'EEG 026\': \'POz\', \'EEG 027\': \'PO4\',
\'EEG 028\': \'PO8\', \'EEG 029\': \'O1\', \'EEG 030\': \'Oz\', \'EEG 031\': \'O2\'
}
# 根据映射名对原始数据中的通道名进行重命名
raw.rename_channels(mapping)
"""
读取.locs文件,.locs文件记录的是电极头皮位置
"""
montage=mne.channels.read_custom_montage("eeglab_chan32.locs")
"""
设置脑电图中传感器配置(电极位置配置)
"""
raw.set_montage(montage,raise_if_subset=False)
"""
打印设置电极位置后的通道名
"""
print(raw.info[\'ch_names\'])
3.绘制电极位置
# 绘制电极位置
raw.plot_sensors()
plt.show()
"""
绘制通道位置图,并对应位置上显示通道名称
"""
layout_from_raw = mne.channels.make_eeg_layout(raw.info)
layout_from_raw.plot()
plt.show()
"""
上述效果也可通过
mne.channels.find_layout(raw.info, ch_type=\'eeg\')
来读取
"""
layout_from_raw =mne.channels.find_layout(raw.info, ch_type=\'eeg\')
layout_from_raw.plot()
plt.show()
4.绘制各通道的功率谱密度
"""
绘制各通道的功率谱密度
"""
raw.plot_psd()
plt.show()
"""
绘制采样频率在30Hz到70Hz之间,且只考虑40s到50s之间的所有通道的PSD
"""
raw.plot_psd(fmin=30, fmax=70, tmin=40,tmax=50.0,spatial_colors=True)
plt.show()
"""
绘制采样频率在30Hz到70Hz之间,且只考虑40s到50s之间的所有通道的平均PSD
"""
raw.plot_psd(fmin=30, fmax=70, tmin=40,tmax=50.0,average=True)
plt.show()
脑机学习者Rose笔记分享,QQ交流群:903290195
更多分享,请关注公众号