initialize_3D_seiffert_shells#
- mrinufft.trajectories.trajectory3D.initialize_3D_seiffert_shells(Nc, Ns, nb_shells, curve_index=0.5, nb_revolutions=1, shell_tilt='uniform', shot_tilt='uniform')[source]#
Initialize 3D trajectories with Seiffert shells.
The implementation is based on work from [Er00] and [Br09], using Jacobi elliptic functions to define Seiffert spirals over shell/sphere surfaces.
- Parameters:
Nc (int) – Number of shots
Ns (int) – Number of samples per shot
nb_shells (int) – Number of concentric shells/spheres
curve_index (float) – Index controlling curve from 0 (flat) to 1 (curvy), by default 0.5
nb_revolutions (float) – Number of revolutions, i.e. times the curve passes through the upper-half of the z-axis, by default 1
shell_tilt (str, float, optional) – Angle between consecutive shells along z-axis, by default “uniform”
shot_tilt (str, float, optional) – Angle between shots over a shell surface along z-axis, by default “uniform”
- Returns:
3D Seiffert shell trajectory
- Return type:
array_like
References
[IN95]Irarrazabal, Pablo, and Dwight G. Nishimura. “Fast three dimensional magnetic resonance imaging.” Magnetic Resonance in Medicine 33, no. 5 (1995): 656-662.
[Er00]Erdös, Paul. “Spiraling the earth with C. G. J. jacobi.” American Journal of Physics 68, no. 10 (2000): 888-895.
[Br09]Brizard, Alain J. “A primer on elliptic functions with applications in classical mechanics.” European journal of physics 30, no. 4 (2009): 729.