上一篇文章中介绍了研究读取gdf格式数据的心路历程,绕了半天竟然直接操作就可以。本来以为会很容易,毕竟数据都已经成功读入了,可是我又错了,弄了好久读取的数据绘图都不对(打印看数据是对的),感觉是mne的一个bug,在Github上提issue可是网络不给力,图片死活传不上,最后给开发团队发了封邮件,也不知道能不能回我。。。。好在经过不懈努力,试了多种方法,总算有一种方法可以成功绘制数据图像了。

问题描述,读取数据绘图,可以明显看出EEG数据绘制的图像有问题。

rawDataGDF = mne.io.read_raw_gdf("B0101T.gdf",preload=True,eog=['EOG:ch01', 'EOG:ch02', 'EOG:ch03'])

rawDataGDF.plot()

打印输出数据查看,并没有发现异常。

又尝试了N多的方法,也没有定位到问题的根本原因,虽然严重怀疑是描述信息(info)有问题,可是比对了好久也没有发现异常。最后没办法了尝试自己构造RawArray数据结构,虽然麻烦一些,也是最后的办法了,好在这个方法可行。

sfreq = 250

data = np.squeeze(np.array([rawDataGDF['EEG:Cz'][0], rawDataGDF['EEG:C3'][0], rawDataGDF['EEG:C4'][0]]))

ch_types = ['eeg', 'eeg', 'eeg']

ch_names = ['EEG:Cz', 'EEG:C3', 'EEG:C4',]

info = mne.create_info(ch_names=ch_names,sfreq=sfreq,ch_types=ch_types)

raw = mne.io.RawArray(data, info)

raw.plot(n_channels=3,show=True)

最后将代码整理了下,用于处理EEG竞赛的数据,嗯嗯,真香~~

import mne
import matplotlib.pyplot as plt
import numpy as np
%matplotlib auto
#文件路径和文件名称
path = "F:\\BaiduNetdiskDownload\\BCICompetition\\BCICIV_2b_gdf\\"
fileName = "B0101T"
#事件的对应关系
eventDescription = {'276': "eyesOpen", '277': "eyesClosed", '768': "startTrail", '769':"cueLeft", '770':"cueRight", '781':"feedback", '783':"cueUnknown",'1023': "rejected", '1077': 'horizonEyeMove', '1078': "verticalEyeMove", '1079':"eyeRotation",'1081':"eyeBlinks",'32766':"startRun"}
# 读取原始数据
rawDataGDF = mne.io.read_raw_gdf(path+fileName+".gdf",preload=True,eog=['EOG:ch01', 'EOG:ch02', 'EOG:ch03'])
# 定义数据通道和通道类型
ch_types = ['eeg', 'eeg', 'eeg','eog','eog','eog']
ch_names = ['EEG:Cz', 'EEG:C3', 'EEG:C4','EOG:ch01', 'EOG:ch02', 'EOG:ch03']
# 创建数据的描述信息
info = mne.create_info(ch_names=ch_names, sfreq=rawDataGDF.info['sfreq'], ch_types=ch_types)
# 创建数据结构体
data = np.squeeze(np.array([rawDataGDF['EEG:Cz'][0], rawDataGDF['EEG:C3'][0], rawDataGDF['EEG:C4'][0], rawDataGDF['EOG:ch01'][0] , rawDataGDF['EOG:ch02'][0] ,rawDataGDF['EOG:ch03'][0]]))
# 创建RawArray类型的数据
rawData = mne.io.RawArray(data, info)
rawData.plot()
# 获取事件
event,_= mne.events_from_annotations(rawDataGDF)
print(event)
event_id = {}
for i in _:#整理event_idevent_id[eventDescription[i]] = _[i]
# 提取epoch
epochs = mne.Epochs(rawData,event,event_id, tmax=1.5 ,event_repeated = 'merge')
epochs.plot()
ev_left = epochs['cueLeft']
ev_left.plot()

原始数据图像

epochs数据图像

左手对应得epoch

Python 中 MNE 读取EEG竞赛数据绘图和提取epoch(gdf格式)相关推荐

  1. Python 中 MNE 读取EEG竞赛数据(gdf格式)

    最近在研究运动想象相关的算法,发现网上有一些公开的脑电数据,发现之前EEG还有这方面的竞赛,不知道为啥现在没有了,或许还有只不过我到目前还没找到,哈哈.前半部分都是说如何获取数据,后面才是标题的重点内 ...

  2. Python中ArcPy读取Excel表格数据创建矢量要素图层并生成属性表字段与内容

    1 任务需求   首先,我们来明确一下本文所需实现的需求.   现有一个记录北京市部分PM2.5浓度监测站点信息的Excel表格数据,格式为.xls:文件内包含站点编号.X与Y坐标.站点名称等四列数据 ...

  3. Python中如何读取xml的数据

    <?xml version="1.0" encoding="utf-8" ?> - <catalog><maxid>4< ...

  4. Python 中MNE库去伪迹(ICA)案例的逐句解析

    本文是在阅读博主zhoudapeng01的文章Python 中MNE库去伪迹(ICA)_zhoudapeng01的博客-CSDN博客_ica mne后做的一个翻译工作. 主要介绍的还是ICA,需要了解 ...

  5. python应用中调用spark_在python中使用pyspark读写Hive数据操作

    1.读Hive表数据 pyspark读取hive数据非常简单,因为它有专门的接口来读取,完全不需要像hbase那样,需要做很多配置,pyspark提供的操作hive的接口,使得程序可以直接使用SQL语 ...

  6. python处理netcdf_在python中高效读取netcdf变量

    我需要能够在 python中快速读取大量的netCDF变量(每个文件1个变量).我发现netCDF4库中的数据集功能与其他语言(例如IDL)中的读取实用程序相比相当慢. 我的变量的形状为(2600,5 ...

  7. 从Mysql某一表中随机读取n条数据的SQL查询语句

    若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1)).例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机 ...

  8. python读取ansi编码文件,如何在Python中同时读取ANSI和Unicode txt文件?

    我是python新手,遇到了一个奇怪的问题: 当一个目录中有50个txt文件时,我希望读取每个.txt文件并将其内容保存在一个唯一的变量中,例如:**file = open(fcf[i], 'r') ...

  9. 【机器学习】python使用matplotlib进行二维数据绘图并保存为png图片

    端到端机器学习导航: [机器学习]python借助pandas加载并显示csv数据文件,并绘制直方图 [机器学习]python使用matplotlib进行二维数据绘图并保存为png图片 [机器学习]p ...

最新文章

  1. 爷青回!16年前“打球AI”意外走红,程序员留下了自己的ICQ和MSN
  2. 提升购物体验,跨境电商如何做企业管理?
  3. CCRD_TOC_2008年第2期
  4. PHP+HTML实现登出界面倒计时效果
  5. java启动监听器报错_JAVA通过JDBC连接Oracle数据库详解【转载】
  6. 散户“大溃败”?GME连续5日暴跌80% 白银价格急转直下
  7. 爬虫python能做什么-Python除了爬虫,还能干啥?
  8. 最强内存稳定性测试软件,内存稳定性测试软件Memtest正式版——HyperX FURY DDR4成绩喜人...
  9. 能力训练之应变能力训练
  10. python学习笔记(52周存钱挑战)
  11. 基于HuTool工具实现Excel复杂表头生成、单元格合并绘制对角线(计算N叉树的最大深度和最大宽度)
  12. 自动化缺陷检测系统---项目总览
  13. 东方博宜OJ 1863 - 【入门】特殊的数字四十
  14. Unity项目美术资源优化篇
  15. 一款专业写公式的软件——MathType
  16. 台式计算机内存卡与普通有啥区别,电脑硬盘和内存有什么区别?
  17. 页面报错:无法设置未定义或 null 引用的属性“*****”
  18. 大数据组件笔记 -- Hive
  19. 给IDA7.0的python2.7安装模块库
  20. 威纶通触摸屏编译失败,提示LOCAL HMI数据保护,设备地址超出限制范围

热门文章

  1. java物业管理系统毕设_计算机毕设功能模块(JAVA)—物业管理系统
  2. ADAMoracle预言机为智能合约链接数据提供强大的后盾
  3. Win32编程API 基础篇 -- 1.入门指南 根据英文教程翻译
  4. 百度大脑OCR助力机动车查验系统 省时又提效!
  5. 解决springcloud 中各服务之间调用外部依赖的clint api时,在调试时不方便的问题
  6. 常用云计算单词中英对照
  7. 3秒搜电影,基于Pyqt5的简单电影搜索工具,会Python真牛逼!
  8. 物镜PHP,LUCPLFLN20X奥林巴斯物镜
  9. 运维之道 | Ansible 安装使用
  10. 【Unity】物理碰撞实验