make_linear_order#
- pypulseqpp.make_linear_order()[source]#
Echo-train ordering of Cartesian views in linear (raster) order.
The views are ranked in raster order, by
kzand then byky, and the ranking is cut intotrain_lengthconsecutive bands ofceil(N / train_length)views. Bandeis acquired at echoe, one view per shot, dealt across the shots inkyorder. This is scheme A (linear reordering) of Buonincontri et al., Fig. 2.- Parameters:
coords (array_like) – Centred coordinates of the selected views: an
(N, 2)array of(ky, kz)or an(N,)array ofky, relative to the k-space centre, which is the origin. Encoded view indices(y, z)on an(n_y, n_z)grid convert asviews - (n_y // 2, n_z // 2). Distances and angles are evaluated in the units supplied. Boolean masks are not accepted.train_length (int) – Echo-train length, at least 1. The number of shots is
ceil(N / train_length).center_echo (int or None, default=None) – Echo at which the view nearest the origin is acquired, in
[0, train_length).Nonekeeps the bands in raster order; an integer rotates the band order so that the band containing that view is acquired atcenter_echo.pad (bool, default=False) – Pad every train to
train_lengthwithNone, so that the position in a train is the echo index. WithFalsetheNoneentries are removed.
- Returns:
trains –
trains[s][e]is the row index intocoordsof the view acquired at echoeof shots. The values are indices, not coordinates; every row ofcoordsappears exactly once. Withpad=True,Nonemarks an echo that acquires no view. Emptycoordsgive[].- Return type:
- Raises:
TypeError – If
coordsis a boolean mask or not numeric.ValueError – If
coordsdoes not have shape(N,)or(N, 2),train_lengthis not a positive integer, orcenter_echois outside[0, train_length).
Examples
Four centred views, two echoes per shot. Echo 0 acquires the
kz = -1band and echo 1 thekz = 0band:>>> import pypulseqpp as pp >>> views = [(-1, -1), (0, -1), (-1, 0), (0, 0)] >>> trains = pp.make_linear_order(views, 2) >>> trains [[0, 2], [1, 3]] >>> [[views[i] for i in train] for train in trains] [[(-1, -1), (-1, 0)], [(0, -1), (0, 0)]]