mne.setup_volume_source_space(subject=None, pos=5.0, mri=None, sphere=None, bem=None, surface=None, mindist=5.0, exclude=0.0, subjects_dir=None, volume_label=None, add_interpolator=True, sphere_units='m', single_volume=False, verbose=None)[source]

Set up a volume source space with grid spacing or discrete source space.

subjectstr | None

Subject to process. If None, the path to the MRI volume must be absolute to get a volume source space. If a subject name is provided the T1.mgz file will be found automatically. Defaults to None.

posfloat | dict

Positions to use for sources. If float, a grid will be constructed with the spacing given by pos in mm, generating a volume source space. If dict, pos[‘rr’] and pos[‘nn’] will be used as the source space locations (in meters) and normals, respectively, creating a discrete source space.


For a discrete source space (pos is a dict), mri must be None.

mristr | None

The filename of an MRI volume (mgh or mgz) to create the interpolation matrix over. Source estimates obtained in the volume source space can then be morphed onto the MRI volume using this interpolator. If pos is a dict, this cannot be None. If subject name is provided, pos is a float or volume_label are not provided then the mri parameter will default to ‘T1.mgz’ or aseg.mgz, respectively, else it will stay None.

spherendarray, shape (4,) | ConductorModel | None

Define spherical source space bounds using origin and radius given by (ox, oy, oz, rad) in sphere_units. Only used if bem and surface are both None. Can also be a spherical ConductorModel, which will use the origin and radius. None (the default) uses a head-digitization fit.

bemstr | None | ConductorModel

Define source space bounds using a BEM file (specifically the inner skull surface) or a ConductorModel for a 1-layer of 3-layers BEM.

surfacestr | dict | None

Define source space bounds using a FreeSurfer surface file. Can also be a dictionary with entries 'rr' and 'tris', such as those returned by mne.read_surface().


Exclude points closer than this distance (mm) to the bounding surface.


Exclude points closer than this distance (mm) from the center of mass of the bounding surface.

subjects_dirstr | None

The path to the freesurfer subjects reconstructions. It corresponds to Freesurfer environment variable SUBJECTS_DIR.

volume_labelstr | dict | list | None

Region(s) of interest to use. None (default) will create a single whole-brain source space. Otherwise, a separate source space will be created for each entry in the list or dict (str will be turned into a single-element list). If list of str, standard Freesurfer labels are assumed. If dict, should be a mapping of region names to atlas id numbers, allowing the use of other atlases.

Changed in version 0.21.0: Support for dict added.


If True and mri is not None, then an interpolation matrix will be produced.


Defaults to "m".

New in version 0.20.


If True, multiple values of volume_label will be merged into a a single source space instead of occupying multiple source spaces (one for each sub-volume), i.e., len(src) will be 1 instead of len(volume_label). This can help conserve memory and disk space when many labels are used.

New in version 0.21.

verbosebool, str, int, or None

If not None, override default verbose level (see mne.verbose() and Logging documentation for more). If used, it should be passed as a keyword-argument only.


A SourceSpaces object containing one source space for each entry of volume_labels, or a single source space if volume_labels was not specified.


Volume source spaces are related to an MRI image such as T1 and allow to visualize source estimates overlaid on MRIs and to morph estimates to a template brain for group analysis. Discrete source spaces don’t allow this. If you provide a subject name the T1 MRI will be used by default.

When you work with a source space formed from a grid you need to specify the domain in which the grid will be defined. There are three ways of specifying this: (i) sphere, (ii) bem model, and (iii) surface. The default behavior is to use sphere model (sphere=(0.0, 0.0, 0.0, 90.0)) if bem or surface is not None then sphere is ignored. If you’re going to use a BEM conductor model for forward model it is recommended to pass it here.

To create a discrete source space, pos must be a dict, mri must be None, and volume_label must be None. To create a whole brain volume source space, pos must be a float and ‘mri’ must be provided.

To create a volume source space from label, pos must be a float, volume_label must be provided, and ‘mri’ must refer to a .mgh or .mgz file with values corresponding to the freesurfer lookup-table (typically aseg.mgz).