mne.export.export_raw#

mne.export.export_raw(fname, raw, fmt='auto', physical_range='auto', add_ch_type=False, *, overwrite=False, verbose=None)[source]#

Export Raw to external formats.

Supported formats:
  • BrainVision (.vhdr, .vmrk, .eeg, uses pybv)

  • EEGLAB (.set, uses eeglabio)

  • EDF (.edf, uses edfio)

Warning

Since we are exporting to external formats, there’s no guarantee that all the info will be preserved in the external format. See Notes for details.

Parameters:
fnamestr

Name of the output file.

rawinstance of Raw

The raw instance to export.

fmt‘auto’ | ‘brainvision’ | ‘edf’ | ‘eeglab’

Format of the export. Defaults to 'auto', which will infer the format from the filename extension. See supported formats above for more information.

physical_rangestr | tuple

The physical range of the data. If ‘auto’ (default), the physical range is inferred from the data, taking the minimum and maximum values per channel type. If ‘channelwise’, the range will be defined per channel. If a tuple of minimum and maximum, this manual physical range will be used. Only used for exporting EDF files.

add_ch_typebool

Whether to incorporate the channel type into the signal label (e.g. whether to store channel “Fz” as “EEG Fz”). Only used for EDF format. Default is False.

overwritebool

If True (default False), overwrite the destination file if it exists.

New in v0.24.1.

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.

Notes

New in v0.24.

Export to external format may not preserve all the information from the instance. To save in native MNE format (.fif) without information loss, use mne.io.Raw.save() instead. Export does not apply projector(s). Unapplied projector(s) will be lost. Consider applying projector(s) before exporting with mne.io.Raw.apply_proj().

For EEGLAB exports, channel locations are expanded to full EEGLAB format. For more details see eeglabio.utils.cart_to_eeglab().

Although this function supports storing channel types in the signal label (e.g. EEG Fz or MISC E), other software may not support this (optional) feature of the EDF standard.

If add_ch_type is True, then channel types are written based on what they are currently set in MNE-Python. One should double check that all their channels are set correctly. You can call mne.io.Raw.set_channel_types() to set channel types.

In addition, EDF does not support storing a montage. You will need to store the montage separately and call mne.io.Raw.set_montage().

The physical range of the signals is determined by signal type by default (physical_range="auto"). However, if individual channel ranges vary significantly due to the presence of e.g. drifts/offsets/biases, setting physical_range="channelwise" might be more appropriate. This will ensure a maximum resolution for each individual channel, but some tools might not be able to handle this appropriately (even though channel-wise ranges are covered by the EDF standard).