MNE官网解读《Annotating continuous data》

本文记录了学习MNE库时,根据官方教程《Annotating continuous data》进行实践的过程。在尝试交互式注释Raw对象时遇到问题,发现由于误用plt.show()导致交互功能失效。解决方案是调整代码,成功实现添加、删除和修改annotations的功能。经过一番探索,实现了交互注释,对此感到小有成就。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MNE官网解读文章《Annotating continuous data》(https://mne.tools/stable/auto_tutorials/raw/30_annotate_raw.html?highlight=annotation,以下简称《文章》)

说明:本博客作为个人学习mne和发现和处理问题的记录

按照《文章》指导,本人编写代码如下——
import os
from datetime import timedelta
import mne

sample_data_folder = mne.datasets.sample.data_path()
sample_data_raw_file = os.path.join(sample_data_folder, 'MEG', 'sample',
                                    'sample_audvis_raw.fif')
raw = mne.io.read_raw_fif(sample_data_raw_file, verbose=False)
raw.crop(tmax=60).load_data()

my_annot = mne.Annotations(onset=[3, 5, 7],  # in seconds
                           duration=[1, 0.5, 0.25],  # in seconds, too
                           description=['AAA', 'BBB', 'CCC'])
print(my_annot)

raw.set_annotations(my_annot)
print(raw.annotations)

# convert meas_date (a tuple of seconds, microseconds) into a float:
meas_date = raw.info['meas_date']
orig_time = raw.annotations.orig_time
print(meas_date)
print(meas_date == orig_time)

time_of_first_sample = raw.first_samp / raw.info['sfreq']
print(time_of_first_sample)  # 第一个样本时间
print(my_annot.onset + time_of_first_sample)
print(raw.annotations.onset)

time_format = '%Y-%m-%d %H:%M:%S.%f'
# timedelta(seconds=50)) 这里添加了长达50s的时间戳,即在meas_date基础上往后延了50s
new_orig_time = (meas_date + timedelta(seconds=50)).strftime(time_format)
print(new_orig_time)

later_annot = mne.Annotations(onset=[1, 2, 5],
                              duration=[1, 0.5, 0.25],
                              description=['DDD', 'EEE', 'FFF'],
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值