snake.core.engine.nufft#

Acquisition engine using nufft.

Module Contents#

Classes#

NufftAcquisitionEngine

Acquisition engine using nufft.

API#

class snake.core.engine.nufft.NufftAcquisitionEngine[source]#

Bases: snake.core.engine.base.BaseAcquisitionEngine

Acquisition engine using nufft.

__engine_name__ = 'NUFFT'#
__mp_mode__ = 'spawn'#
model: str = 'simple'#
snr: float = None#
slice_2d: bool = False#
_job_trajectories(dataset: ismrmrd.Dataset, hdr: ismrmrd.xsd.ismrmrdHeader, sim_conf: snake.core.simulation.SimConfig, shot_idx: collections.abc.Sequence[int] | int) numpy.typing.NDArray[source]#

Get Non Cartesian trajectories from the dataset.

Returns:

The trajectories.

Return type:

NDArray

static _init_model_nufft(samples: numpy.typing.NDArray, sim_conf: snake.core.simulation.SimConfig, backend: str, slice_2d: bool = False) mrinufft.operators.FourierOperatorBase[source]#

Initialize the nufft operator.

static _job_model_T2s(phantom: snake.core.phantom.Phantom, dyn_datas: list[snake.core.phantom.DynamicData], sim_conf: snake.core.simulation.SimConfig, trajectories: numpy.typing.NDArray, nufft_backend: str, slice_2d: bool = False) numpy.ndarray[source]#

Acquire k-space data with T2s relaxation effect.

static _job_model_simple(phantom: snake.core.phantom.Phantom, dyn_datas: list[snake.core.phantom.DynamicData], sim_conf: snake.core.simulation.SimConfig, trajectories: numpy.typing.NDArray, nufft_backend: str, slice_2d: bool = False) numpy.ndarray[source]#

Acquire k-space data. No T2s decay.

_write_chunk_data(dataset: ismrmrd.Dataset, chunk: collections.abc.Sequence[int], chunk_data: numpy.typing.NDArray) None[source]#