• python读取.locs文件


    本教程为脑机学习者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
    更多分享,请关注公众号

  • 相关阅读:
    js获取盒子scrollTop
    获取浏览器宽度,自适应屏幕
    js切割字符串
    有向图的欧拉路径POJ2337
    欧拉回路和欧拉路径
    HDU 4462(暴力枚举)
    HDU 4455(dp)
    鸽巢原理入门
    HDU 4819 Mosaic(二维线段树)
    POJ 1330 Nearest Common Ancestors(LCA模板)
  • 原文地址:https://www.cnblogs.com/RoseVorchid/p/11978739.html
Copyright © 2020-2023  润新知