SystemSpec#

Import: cmrseq.SystemSpec

class SystemSpec(gamma=<Quantity(42.576, 'megahertz / tesla')>, grad_raster_time=<Quantity(0.01, 'millisecond')>, max_grad=<Quantity(40, 'millitesla / meter')>, max_slew=<Quantity(120, 'millitesla / meter / millisecond')>, rf_peak_power=<Quantity(30, 'microtesla')>, rf_raster_time=<Quantity(0.01, 'millisecond')>, rf_dead_time=<Quantity(0.0, 'millisecond')>, rf_ringdown_time=<Quantity(0.0, 'millisecond')>, rf_lead_time=<Quantity(0.0, 'millisecond')>, adc_raster_time=<Quantity(100, 'nanosecond')>, adc_dead_time=<Quantity(0.0, 'millisecond')>, b0=<Quantity(1.5, 'tesla')>, enable_simulatenous_trasmit_receive=False)[source]#

Bases: object

Bundles the system limit specifications, meant to be passed as object for creating sequences and building blocks.

In addition to store all relevant system specifications this class implements the methods to calculate quantities that depend on these limits (e.g. get_shortest_rise_time).

Parameters:
  • gamma (Quantity) – Gyromagnetic Ratio of the target nucleus with dimensions equivalent to[MHz / T]

  • grad_raster_time (Quantity) – Raster time for gradient definitions with dimension [Time]

  • max_grad (Quantity) – Maximal allowed gradient strength for combined gradient channels in dimension equivalent to [mT/m]

  • max_slew (Quantity) – Maximal allow gradient slew-rate for combined gradient channels in dimensions equivalent to [mT/m/ms]

  • rf_peak_power (Quantity) – Maximal allowed peak rf power defined as B1 field strength with dimensions equivalent to [uT]

  • rf_raster_time (Quantity) – Raster time for radio-frequency waveform definitions with dimension [Time]

  • rf_dead_time (Quantity) – Minimum time between consecutive RF-pulses, due to switching delays in the transmit chain.

  • rf_ringdown_time (Quantity) – Defines the minimum delay between a RF-pulse and and acquisition block. Corresponds to the time scale of self induced currents in the transmit coil, which could result in receive chain damages and sampling distortion.

  • rf_lead_time (Quantity) – Defines the minimum delay between an acquisition block and a subsequent RF-pulse. This corresponds to the delay caused by switching from receive to transmit.

  • adc_raster_time (Quantity) – Raster time for signal sampling definitions with dimension [Time]

  • adc_dead_time (Quantity) – Minimum time between consecutive Sampling (ADC) blocks, due to switching delays in the receive chain.

  • b0 (Quantity) – Static field strength in dimension of [T]

  • enable_simulatenous_trasmit_receive (bool) – System flag for sequence validation. If true, RF and ADC blocks are allowed to be occur simultaneously (ignoring) rf_ringdown_time in validation.

Methods:

get_fastest_kspace_traverse(k_space_vector)

Computes the shortest gradient, resulting in a k-space traverse along the specified vector.

get_shortest_gradient(area)

Calculates the shortest gradient of a given area, obeying system limits

get_shortest_rise_time(delta_amplitude)

Calculates the shortest ramp duration for the specified amplitude difference.

is_on_raster(time, raster)

Checks is given time is on raster.

modified_copy(**kwargs)

type kwargs:

time_to_raster(time[, raster])

Calculates the time projected onto the either gradient or rf raster.

Attributes:

adc_dead_time

Quantity[ms]: Minimum time between consecutive Sampling (ADC) blocks, due to switching delays in the receiver-chain.

adc_raster_time

Quantity[ms]: delta t of adc grid, defaults to 10us

enable_simulatenous_trasmit_receive

System flag for sequence validation.

gamma

Quantity[MHz/T]: Gyromagnetic ratio for nucleus the system is working on

gamma_rad

Quantity[rad/s/T]: Gyromagnetic ratio for nucleus the system is working on in rad/s

grad_raster_time

Quantity[ms]: delta t of gradient grid, defaults to 10us

max_grad

Quantity[mT/m]: Maximum gradient amplitude

max_slew

Quantity[mT/m/ms]: Maximum gradient slew rate

minmax_risetime

rf_dead_time

Quantity[ms]:Minimum time between consecutive RF-pulses, due to switching delays in the transmit chain.

rf_lead_time

Quantity[ms]: Defines the minimum delay between an acquisition block and a subsequent RF-pulse.

rf_peak_power

Quantity[uT]: Peak power for B1 fields (in micro tesla)

rf_raster_time

Quantity[ms]: delta t of radio-frequency grid, defaults to 10us

rf_ringdown_time

Quantity[ms]: Defines the minimum delay between a RF-pulse and acquisition block.

get_fastest_kspace_traverse(k_space_vector)[source]#

Computes the shortest gradient, resulting in a k-space traverse along the specified vector.

Parameters:

k_space_vector (Quantity) – (3, ) for X, Y, Z

Return type:

Tuple[Quantity, Quantity, Quantity]

Returns:

Amplitude, ramp- and flat-duration of the resulting gradient pulse

get_shortest_gradient(area)[source]#

Calculates the shortest gradient of a given area, obeying system limits

Parameters:

area (Quantity) – Quantity[mT/m*s]

Return type:

Tuple[Quantity, Quantity, Quantity]

Returns:

Tuple(amplitude, rise time, flat time)

get_shortest_rise_time(delta_amplitude)[source]#

Calculates the shortest ramp duration for the specified amplitude difference.

Parameters:

delta_amplitude (Quantity) – Quantity[mT/m]

Return type:

Quantity

Returns:

delta t - Quantity[ms] which is guaranteed to be a multiple of grad_raster_time

is_on_raster(time, raster)[source]#

Checks is given time is on raster. Returns a bool and the numerical difference to the next valid grid point.

Parameters:
  • time (Quantity) –

  • raster (str) –

Return type:

(bool, Quantity)

Returns:

modified_copy(**kwargs)[source]#
Parameters:

kwargs – keyword argument according to instantiation, with the updated value

Return type:

SystemSpec

Returns:

SystemSpecs

time_to_raster(time, raster='grad')[source]#

Calculates the time projected onto the either gradient or rf raster.

Parameters:
  • time (Quantity) – Quantity[s]

  • raster (str) – from [grad, rd]

Return type:

Quantity

Returns:

Quantity[ms]

adc_dead_time: Quantity#

Quantity[ms]: Minimum time between consecutive Sampling (ADC) blocks, due to switching delays in the receiver-chain.

adc_raster_time: Quantity#

Quantity[ms]: delta t of adc grid, defaults to 10us

enable_simulatenous_trasmit_receive: bool#

System flag for sequence validation. If true, RF and ADC blocks are allowed to occur. simultaneously (ignoring)

gamma: Quantity#

Quantity[MHz/T]: Gyromagnetic ratio for nucleus the system is working on

gamma_rad: Quantity#

Quantity[rad/s/T]: Gyromagnetic ratio for nucleus the system is working on in rad/s

grad_raster_time: Quantity#

Quantity[ms]: delta t of gradient grid, defaults to 10us

max_grad: Quantity#

Quantity[mT/m]: Maximum gradient amplitude

max_slew: Quantity#

Quantity[mT/m/ms]: Maximum gradient slew rate

property minmax_risetime#
rf_dead_time: Quantity#

Quantity[ms]:Minimum time between consecutive RF-pulses, due to switching delays in the transmit chain.

rf_lead_time: Quantity#

Quantity[ms]: Defines the minimum delay between an acquisition block and a subsequent RF-pulse.

rf_peak_power: Quantity#

Quantity[uT]: Peak power for B1 fields (in micro tesla)

rf_raster_time: Quantity#

Quantity[ms]: delta t of radio-frequency grid, defaults to 10us

rf_ringdown_time: Quantity#

Quantity[ms]: Defines the minimum delay between a RF-pulse and acquisition block.