TransformFOV.apply_to_sequence

TransformFOV.apply_to_sequence#

TransformFOV.apply_to_sequence()[source]#

Apply scaling, translation, then rotation.

NOSCL, NOROT and NOPOS labels exempt blocks from the respective operations. Labels are evaluated from the selected range’s start, without inheriting values from earlier blocks. A nonzero translation still integrates exempt blocks.

Parameters:
  • seq (Sequence) – Sequence to transform.

  • time_range (Sequence[float], default=None) – Start and end times in seconds; selects all blocks they touch.

  • block_range (Sequence[int], default=None) – Inclusive, 1-based block range; mutually exclusive with time_range. Translation starts from this object’s stored state, not from a scan of preceding blocks.

  • in_place (bool, default=False) – Modify seq rather than a copy. Nonzero translation updates this object’s state in either case.

Returns:

Transformed sequence; seq itself when in_place=True.

Return type:

Sequence

Examples

>>> import pypulseqpp as pp
>>> seq = pp.Sequence(pp.Opts())
>>> seq.add_block(pp.make_trapezoid("x", area=1000, duration=2e-3))
1
>>> shift = pp.TransformFOV(translation=(0.01, 0, 0))
>>> shift.apply_to_sequence(seq, in_place=True) is seq
True
>>> round(shift.swept_k[0], 6)
1000.0