Grouping

Contents

Grouping#

class pulserver.ir.Grouping[source]#

Bases: object

Rule by which the blocks of a repetition are grouped into virtual segments.

The repetition is cut into contiguous runs of blocks, each a virtual segment the interpreter prepares once and plays as segment instances. A boundary may fall between two blocks only where every gradient is within boundary_gradient_hz_per_m of zero at the join. A boundary must fall where the NOROT or PMC label changes, since the interpreter sets one prescription rotation per segment instance; conversion fails when such a change falls under a gradient. The split_* attributes add boundaries.

The default suits an interpreter that begins a segment by setting its gradients, so that a boundary falls only where they are at rest.

Attributes:
  • boundary_gradient_hz_per_m (float) – Largest gradient amplitude at a join, in Hz/m, at which a boundary may fall. An interpreter that can begin a segment under a gradient states a large value.

  • split_by_pulses, split_by_readouts – Whether runs that play different RF events, or different ADC events, are different virtual segments.

  • split_navigators (bool) – Whether a navigator readout is a virtual segment of its own.

  • split_edge_delays (bool) – Whether a pure-delay block at the edge of a virtual segment is a virtual segment of its own. An interpreter that inserts transmit-to-receive switching time at every segment boundary needs as few segments as possible, and sets this False.

Methods

as_values

Return the rule as the extension takes it, in the order C declares it.

Attributes