mne.Annotations

class mne.Annotations(onset, duration, description, orig_time=None)[source]

Annotation object for annotating segments of raw data.

Annotations are added to instance of mne.io.Raw as an attribute named annotations. To reject bad epochs using annotations, use annotation description starting with ‘bad’ keyword. The epochs with overlapping bad segments are then rejected automatically by default.

To remove epochs with blinks you can do:

>>> eog_events = mne.preprocessing.find_eog_events(raw)  
>>> n_blinks = len(eog_events)  
>>> onset = eog_events[:, 0] / raw.info['sfreq'] - 0.25  
>>> duration = np.repeat(0.5, n_blinks)  
>>> description = ['bad blink'] * n_blinks  
>>> annotations = mne.Annotations(onset, duration, description)  
>>> raw.annotations = annotations  
>>> epochs = mne.Epochs(raw, events, event_id, tmin, tmax)  
Parameters:
onset : array of float, shape (n_annotations,)

The starting time of annotations in seconds after orig_time.

duration : array of float, shape (n_annotations,)

Durations of the annotations in seconds.

description : array of str, shape (n_annotations,) | str

Array of strings containing description for each annotation. If a string, all the annotations are given the same description. To reject epochs, use description starting with keyword ‘bad’. See example above.

orig_time : float | int | instance of datetime | array of int | None

A POSIX Timestamp, datetime or an array containing the timestamp as the first element and microseconds as the second element. Determines the starting time of annotation acquisition. If None (default), starting time is determined from beginning of raw data acquisition. In general, raw.info['meas_date'] (or None) can be used for syncing the annotations with raw data if their acquisiton is started at the same time.

Notes

If orig_time is None, the annotations are synced to the start of the data (0 seconds). Otherwise the annotations are synced to sample 0 and raw.first_samp is taken into account the same way as with events.

Methods

__add__(other) Add (concatencate) two Annotation objects.
__hash__($self, /) Return hash(self).
__len__() Return the number of annotations.
append(onset, duration, description) Add an annotated segment.
copy() Return a deep copy of self.
delete(idx) Remove an annotation.
save(fname) Save annotations to FIF.
__add__(other)[source]

Add (concatencate) two Annotation objects.

__hash__($self, /)

Return hash(self).

__len__()[source]

Return the number of annotations.

append(onset, duration, description)[source]

Add an annotated segment. Operates inplace.

Parameters:
onset : float

Annotation time onset from the beginning of the recording in seconds.

duration : float

Duration of the annotation in seconds.

description : str

Description for the annotation. To reject epochs, use description starting with keyword ‘bad’

Returns:
self : mne.Annotations

The modified Annotations object.

copy()[source]

Return a deep copy of self.

delete(idx)[source]

Remove an annotation. Operates inplace.

Parameters:
idx : int | list of int

Index of the annotation to remove.

save(fname)[source]

Save annotations to FIF.

Typically annotations get saved in the FIF file for raw data (e.g., as raw.annotations), but this offers the possibility to also save them to disk separately.

Parameters:
fname : str

The filename to use.