mne.preprocessing.compute_fine_calibration(raw, n_imbalance=3, t_window=10.0, ext_order=2, origin=0.0, 0.0, 0.0, cross_talk=None, calibration=None, verbose=None)[source]

Compute fine calibration from empty-room data.

rawinstance of Raw

The raw data to use. Should be from an empty-room recording, and all channels should be good.


Can be 1 or 3 (default), indicating the number of gradiometer imbalance components. Only used if gradiometers are present.


Time window to use for surface normal rotation in seconds. Default is 10.


Order of external component of spherical expansion. Default is 2, which is lower than the default (3) for mne.preprocessing.maxwell_filter() because it tends to yield more stable parameter estimates.

originarray_like, shape (3,) | str

Origin of internal and external multipolar moment space in meters. The default is 'auto', which means (0., 0., 0.) when coord_frame='meg', and a head-digitization-based origin fit using fit_sphere_to_headshape() when coord_frame='head'. If automatic fitting fails (e.g., due to having too few digitization points), consider separately calling the fitting function with different options or specifying the origin manually.

cross_talkstr | None

Path to the FIF file with cross-talk correction information.

calibrationdict | None

Dictionary with existing calibration. If provided, the magnetometer imbalances and adjusted normals will be used and only the gradiometer imbalances will be estimated (see step 2 in Notes below).

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.


Fine calibration data.


The number of good segments used to compute the magnetometer parameters.


This algorithm proceeds in two steps, both optimizing the fit between the data and a reconstruction of the data based only on an external multipole expansion:

  1. Estimate magnetometer normal directions and scale factors. All coils (mag and matching grad) are rotated by the adjusted normal direction.

  2. Estimate gradiometer imbalance factors. These add point magnetometers in just the gradiometer difference direction or in all three directions (depending on n_imbalance).

Magnetometer normal and coefficient estimation (1) is typically the most time consuming step. Gradiometer imbalance parameters (2) can be iteratively reestimated (for example, first using n_imbalance=1 then subsequently n_imbalance=3) by passing the previous calibration output to the calibration input in the second call.

MaxFilter processes at most 120 seconds of data, so consider cropping your raw instance prior to processing. It also checks to make sure that there were some minimal usable count number of segments (default 5) that were included in the estimate.

New in version 0.21.

Examples using mne.preprocessing.compute_fine_calibration