parameterize_by_arc_length#

mrinufft.trajectories.projection.parameterize_by_arc_length(trajectory, order=None, eps=1e-08)[source]#

Adjust the trajectory to have a uniform distribution over the arc-length.

The trajectory is parametrized according to its arc length along a cubic-interpolated path and samples are repositioned to minimize the gradients amplitude. This solution is optimal with respect to gradients but can lead to excessive slew rates, and it will change the overall density.

Warning

  • Slew rates are not minimized, and instead likely to increase

  • The sampling density will not be preserved

Parameters:
  • trajectory (NDArray) – A 2D or 3D trajectory of shape (Nc, Ns, Nd), with Nc the number of shots, Ns the number of samples per shot, and Nd the number of dimensions.

  • order (int | None) – The order of the norm used to compute arc length, based on the convention from numpy.linalg.norm. Defaults to None (Euclidean norm).

  • eps (float) – Convergence threshold for stopping the iterative refinement. Defaults to 1e-8.

Returns:

NDArray

Return type:

The reparameterized trajectory with the same shape as the input.

Example using parameterize_by_arc_length:#

Trajectory constraints

Trajectory constraints