initialize_2D_random_walk

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.