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:
Quantity[ms]: Minimum time between consecutive Sampling (ADC) blocks, due to switching delays in the receiver-chain.
Quantity[ms]: delta t of adc grid, defaults to 10us
System flag for sequence validation.
Quantity[MHz/T]: Gyromagnetic ratio for nucleus the system is working on
Quantity[rad/s/T]: Gyromagnetic ratio for nucleus the system is working on in rad/s
Quantity[ms]: delta t of gradient grid, defaults to 10us
Quantity[mT/m]: Maximum gradient amplitude
Quantity[mT/m/ms]: Maximum gradient slew rate
Quantity[ms]:Minimum time between consecutive RF-pulses, due to switching delays in the transmit chain.
Quantity[ms]: Defines the minimum delay between an acquisition block and a subsequent RF-pulse.
Quantity[uT]: Peak power for B1 fields (in micro tesla)
Quantity[ms]: delta t of radio-frequency grid, defaults to 10us
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:
- 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.