initialize_2D_random_walk#
- mrinufft.trajectories.inits.random_walk.initialize_2D_random_walk(Nc, Ns, density, *, diagonals=True, pseudo_random=True, **sampling_kwargs)[source]#
Initialize a 2D random walk trajectory.
This is an adaptation of the proposition from [Cha+14]. It creates a trajectory by walking randomly to neighboring points following a provided sampling density.
This implementation is different from the original proposition: trajectories are continuous with a fixed length instead of making random jumps to other locations, and an option is provided to have pseudo-random walks to improve coverage.
- Parameters:
Nc (int) – Number of shots
Ns (int) – Number of samples per shot
density (array_like) – Sampling density used to determine the walk probabilities, normalized automatically by its sum during the call for convenience.
diagonals (bool, optional) – Whether to draw the next walk step from the diagional neighbors on top of the adjacent ones. Default to
True
.pseudo_random (bool, optional) – Whether to adapt the density dynamically to reduce areas already covered. The density is still statistically followed for undersampled acquisitions. Default to
True
.**sampling_kwargs – Sampling parameters in
mrinufft.trajectories.sampling.sample_from_density
used for the shot starting positions.
- Returns:
2D random walk trajectory
- Return type:
array_like
References
[Cha+14]Chauffert, Nicolas, Philippe Ciuciu, Jonas Kahn, and Pierre Weiss. “Variable density sampling with continuous trajectories.” SIAM Journal on Imaging Sciences 7, no. 4 (2014): 1962-1992.