scgrog

Self calibrating GROG implementation.

Based on the MATLAB GROG implementation found here: https://github.com/edibella/Reconstruction

mr_utils.gridding.scgrog.scgrog.fracpowers(idx, Gx, Gy, dkxs, dkys)[source]

Wrapper function to use during parallelization.

Parameters:
  • idx (array_like) – Indices of current fractioinal power GRAPPA kernels
  • Gx (array_like) – GRAPPA kernel in x
  • Gy (array_like) – GRAPPA kernel in y
  • dkxs (array_like) – Differential x k-space coordinates
  • dkys (array_like) – Differential y k-space coordinates
Returns:

  • ii (array_like) – row indices
  • jj (array_like) – col indices
  • Gxf (array_like) – Fractional power of GRAPPA kernel in x
  • Gyf (array_like) – Fractional power of GRAPPA kernel in y

mr_utils.gridding.scgrog.scgrog.grog_interp(kspace, Gx, Gy, traj, cartdims)[source]

Moves radial k-space points onto a cartesian grid via the GROG method.

Parameters:
  • kspace (array_like) – A 3D (sx, sor, soc) slice of k-space
  • Gx (array_like) – The unit horizontal cartesian GRAPPA kernel
  • Gy (array_like) – Unit vertical cartesian GRAPPA kernel
  • traj (array_like) – k-space trajectory
  • cartdims (tuple) – (nrows, ncols), size of Cartesian grid
Returns:

Interpolated cartesian kspace.

Return type:

array_like

mr_utils.gridding.scgrog.scgrog.scgrog(kspace, traj, Gx, Gy, cartdims=None)[source]

Self calibrating GROG interpolation.

Parameters:
  • kspace (array_like) – A 4D (sx, sor, nof, soc) matrix of complex k-space data
  • traj (array_like) – k-space trajectory
  • Gx (array_like) – The unit horizontal cartesian GRAPPA kernel
  • Gy (array_like) – Unit vertical cartesian GRAPPA kernel
  • cartdims (tuple) – Size of Cartesian grid.
Returns:

  • kspace_cart (array_like) – Cartesian gridded k-space.
  • mask (array_like) – Boolean mask where kspace is nonzero.

Notes

If cartdims=None, we’ll guess the Cartesian dimensions are (kspace.shape[0], kspace.shape[0], kspace.shape[2], kspace.shape[3]).