calc_rosette_trajectory#
- pypulseqpp.calc_rosette_trajectory()[source]#
Return one rosette interleaf, petals through the centre of k-space.
The path is
rho(u) = kmax sin(pi petals u)at angletheta(u) = pi petals angular_frequency_ratio uforuin[0, 1], so it crosses the centrepetals + 1times.- Parameters:
fov (float) – Field of view, in m. Isotropic.
matrix (int) – Matrix size, which with
fovsets the reachmatrix / (2 fov).petals (int, default=5) – Centre-to-centre lobes within this one interleaf. More petals cross the centre more often and lengthen the readout.
angular_frequency_ratio (float, default=3.0 / 5.0) – Angular over radial frequency. Below one the petals are open; one is the circular limit; above one they wind more tightly.
num_points (int, default=2049) – Samples along the polyline. Sets how finely the curve is described, not how many ADC samples the readout takes.
- Returns:
(num_points, 2), in 1/m, starting and ending at the origin.- Return type:
- Raises:
ValueError – If
petalsorangular_frequency_ratiois not positive, ornum_pointsis below five.
Examples
>>> import numpy as np >>> import pypulseqpp as pp >>> path = pp.calc_rosette_trajectory(0.256, 128, petals=4) >>> bool(np.allclose(path[[0, -1]], 0.0, atol=1e-9)) True