mri.operators.fourier.utils.orc_coefficients#

Functions to compute different kinds of coefficients used in Off-Resonance Correction.

compute_orc_coefficients(field_map, time_vec, mask, coefficients='svd', num_interpolators=15, weights='full', n_bins=1000)[source]#

This function computes different off-resonance correction weights used in the ORCFFTWrapper, as described in: - :cite: man1997 for Multi-Frequency Interpolation (MFI) - :cite: sutton2003 for Multi-Temporal Interpolation (MTI) - :cite: fessler2005 for (Fast) Singular Value Decomposition (SVD, FSVD)

Parameters
  • field_map (numpy.ndarray) – B0 field inhomogeneity map (in Hz)

  • time_vec (numpy.ndarray) – 1D vector indicating time after pulse in each shot (in s)

  • mask (numpy.ndarray) – Mask describing the regions to consider during correction

  • coefficients ({'mfi', 'mti', 'svd', 'fsvd'}) – Computation method used to obtain the interpolation weights.

  • L (int) – Number of interpolators used for multi-linear correction (default 15)

  • weights ({'full', 'sqrt', 'log', 'ones'}) – Weightning policy for the field map histogram (default ‘full’)

  • n_bins (int) – Number of bins for the field map histogram (default 1000)

Returns

  • B (numpy.ndarray) – (len(time_vec), L) array correspondig to k-space coefficients

  • C (numpy.ndarray) – (L, n_bins) array corresponding to volume coefficients

  • E (numpy.ndarray) – (len(time_vec), n_bins) array corresponding to the target matrix

_create_histogram(field_map, mask, weights='full', n_bins=1000)[source]#

Create the weighted histogram of the field map covered by the mask

Parameters
  • field_map (numpy.ndarray) – B0 field inhomogeneity map (in Hz)

  • mask (numpy.ndarray) – Mask describing the regions to consider during correction

  • weights ({'full', 'sqrt', 'log', 'ones'}) – Weightning policy for the field map histogram (default ‘full’)

  • n_bins (int) – Number of bins for the field map histogram (default 1000)

Returns

  • histogram_centers (numpy.ndarray) – Central values of each bin

  • histogram_counts (numpy.ndarray) – Weights of elements in each bin according to args

_create_variable_density(centers, counts, L)[source]#

Find a reduced histogram with variable density from previous histogram

Parameters
  • centers (numpy.ndarray) – Central value of each bin from previous histogram

  • counts (numpy.ndarray) – Number of elements in each bin from previous histogram

  • L (int) – Number of interpolators defining the size of the reduced histogram

Returns

centers – New bin centers of the reduced histogram

Return type

numpy.ndarray

_compute_mfi_coefficients(field_map, time_vec, mask, L=15, weights='full', n_bins=1000)[source]#
_compute_mti_coefficients(field_map, time_vec, mask, L=15, weights='full', n_bins=1000)[source]#
_compute_svd_coefficients(field_map, time_vec, mask, L=15, weights='full', n_bins=1000)[source]#
_compute_fsvd_coefficients(field_map, time_vec, mask, L=15, weights='full', n_bins=1000)[source]#