braindecode.preprocessing.Crop#

class braindecode.preprocessing.Crop(tmin=0.0, tmax=None, include_tmax=True, *, reset_first_samp=False, verbose=None)[source]#

Braindecode preprocessor wrapper for crop().

Crop raw data file.

Limit the data from the raw file to go between specific times. Note that the new tmin is assumed to be t=0 for all subsequently called functions (e.g., time_as_index(), or Epochs). New first_samp and last_samp are set accordingly.

Thus function operates in-place on the instance. Use mne.io.Raw.copy() if operation on a copy is desired.

Parameters:
tminfloat

Start time of the raw data to use in seconds (must be >= 0).

tmaxfloat | None

End time of the raw data to use in seconds (cannot exceed data duration). If None (default), the current end of the data is used.

include_tmaxbool

If True (default), include tmax. If False, exclude tmax (similar to how Python indexing typically works).

Added in version 0.19.

reset_first_sampbool

If True, reset first_samp to 0 after cropping, treating the cropped segment as an independent recording. Note that this can break things if you extracted events before cropping and try to use them afterward. Default is False.

Added in version 1.12.

verbosebool | str | int | None

Control verbosity of the logging output. If None, use the default verbosity level. See the logging documentation and mne.verbose() for details. Should only be passed as a keyword argument.

Returns:
rawinstance of Raw

The cropped raw object, modified in-place.

Notes

After cropping, first_samp is updated to reflect the new start of the data, preserving the original recording timeline. This means raw.times will still start at 0.0, but raw.first_samp will reflect the offset from the original recording. If you want to treat the cropped segment as an independent signal with first_samp=0, you can convert it to a RawArray:

raw_array = mne.io.RawArray(raw.get_data(), raw.info)

Examples

By default, cropping preserves the original recording timeline, so first_samp remains non-zero after cropping:

>>> raw = mne.io.read_raw_fif(fname)
>>> print(raw.first_samp)
25800
>>> raw.crop(tmin=10, tmax=20)
>>> print(raw.first_samp)
27810

If you want to treat the cropped segment as an independent recording, use reset_first_samp=True:

>>> raw2 = raw.copy().crop(tmin=10, tmax=20,
...                        reset_first_samp=True)
>>> print(raw2.first_samp)
0

Examples using braindecode.preprocessing.Crop#

Comprehensive Preprocessing with MNE-based Classes

Comprehensive Preprocessing with MNE-based Classes