make_spiral_readout

make_spiral_readout#

pulserver.blocks.make_spiral_readout(system, fov, npix, narms=1, fs_npix=None, trans_dur=0.5, spiral_type='outward', has_adc=True)[source]#

Prepare spiral readout.

Parameters:
  • system (pypulseq.Opts) – System limits.

  • fov (float) – Field of View in [mm].

  • npix (int) – Matrix size.

  • narms (int, optional) – Number of interleaves. The default is 1.

  • fs_npix (int, optional) – Matrix size for fully-sampled region. The default is None (constant density spiral).

  • trans_dur (float, optional) –

    Fractional duration of transition region for dual-density spiral, referred to the duration of fully sampled region, i.e.:

    • npts_transition = trans_dur * npts_fully_sampled

    It must be >= 0.5. The default is 0.5.

  • spiral_type (str, optional) –

    Spiral variant. Can be:

    • "outward": center-to-periphery.

    • inward: periphery-to-center.

    • in-out: inward followed by outward spiral.

    The default is outward.

  • has_adc (bool, optional) – If True, read_block contains and ADC event. Otherwise, it does not (e.g., dummy shots for steady-state preparation). The default is True.

Returns:

  • read_block (dict) – Readout block dictionary with the following keys:

    • gxSimpleNamespace

      X-component of readout gradient event.

    • gySimpleNamespace

      Y-component of readout gradient event.

    • adcSimpleNamespace

      ADC event (only if has_adc is True).

  • hdr (SimpleNamespace) – Spiral header containing

    • trajnp.ndarray

      K-space trajectory of shape (2, len(arm)).

    • idxtuple

      Indexes for ADC start (idx[0]) and stop (idx[1]).

Return type:

tuple[dict, SimpleNamespace]