mrpro.algorithms.reconstruction.Reconstruction

class mrpro.algorithms.reconstruction.Reconstruction[source]

Bases: Module, ABC

A Reconstruction.

dcf: DcfData | None

Density Compensation Data.

csm: CsmData | None

Coil Sensitivity Data.

noise: KNoise | None

Noise Data used for prewhitening.

fourier_op: LinearOperator

Fourier Operator.

__call__(kdata: KData) IData[source]

Apply the reconstruction.

abstract forward(kdata: KData) IData[source]

Apply the reconstruction.

direct_reconstruction(kdata: KData, *, csm: CsmData | None | Literal[False] = None, noise: KNoise | None | Literal[False] = None) IData[source]

Direct reconstruction of the MR acquisition.

Here we use \(S^H F^H W\) to calculate the image data using the coil sensitivity operator \(S\), the Fourier operator \(F\), and the density compensation operator \(W\).

Parameters:
  • kdata (KData) – k-space data

  • csm (Union[CsmData, None, Literal[False]], default: None) – Coil sensitivity maps used for coil combination. If None, self.csm is used. If False, no coil combination is performed.

  • noise (Union[KNoise, None, Literal[False]], default: None) – Noise measurement for prewhitening. If None, self.noise is used. If False, no prewhitening is performed.

Returns:

image data

recalculate_csm(kdata: KData, csm_calculation: Callable[[IData], CsmData] = CsmData.from_idata_walsh, noise: KNoise | None | Literal[False] = None) Self[source]

Update (in place) the CSM from KData.

Performs a direct reconstruction without coil combination and estimates coil sensitivity maps from the result.

Parameters:
  • kdata (KData) – k-space data used for adjoint reconstruction (including DCF-weighting if available), which is then used for CSM estimation.

  • csm_calculation (Callable[[IData], CsmData], default: CsmData.from_idata_walsh) – Function to calculate csm expecting idata as input and returning csmdata. For examples have a look at the CsmData.

  • noise (Union[KNoise, None, Literal[False]], default: None) – Noise measurement for prewhitening. If None, self.noise (if previously set) is used. If False, no prewhitening is performed even if self.noise is set. Use this if the kdata is already prewhitened.

recalculate_fourierop(kdata: KData) Self[source]

Update (in place) the Fourier Operator, e.g. for a new trajectory.

Also recalculates the DCF.

Parameters:

kdata (KData) – k-space data to determine trajectory and recon/encoding matrix from.