quantify_scheduler.gettables
Module containing quantify_core.measurement.types.Gettable
s for use with
quantify-scheduler.
Warning
The gettable module is expected to change significantly as the
acquisition protocols (#36 and #80) get fully supported by the scheduler.
Currently different Gettables are required for different acquisition modes.
The intent is to have one generic ScheduleGettable
.
Expect breaking changes.
Module Contents
Classes
Generic gettable for a quantify schedule using vector (I,Q) acquisition. Can be |
Functions
|
Loop over the keys and values in a dict and replaces parameters with their current |
Attributes
- class ScheduleGettable(quantum_device: quantify_scheduler.device_under_test.quantum_device.QuantumDevice, schedule_function: Callable[Ellipsis, quantify_scheduler.Schedule], schedule_kwargs: Dict[str, Any], num_channels: int = 1, data_labels: Optional[List[str]] = None, real_imag: bool = True, batched: bool = False, max_batch_size: int = 1024, always_initialize=True)[source]
Generic gettable for a quantify schedule using vector (I,Q) acquisition. Can be set to return either static (demodulated) I and Q values or magnitude and phase.
The gettable evaluates the parameters passed as schedule_kwargs, then generates the
quantify_scheduler.schedules.schedule.Schedule
using the schedule_function, this is then compiled and finally executed by theInstrumentCoordinator
.Create a new instance of ScheduleGettable which is used to do I and Q acquisition or alternatively magnitude and phase.
- Parameters
quantum_device – The qcodes instrument representing the quantum device under test (DUT) containing quantum device properties and setup configuration information.
schedule_function – A function which returns a
quantify_scheduler.schedules.schedule.Schedule
. The function is required to have the repetitions keyword argument.schedule_kwargs – The schedule function keyword arguments, when a value in this dictionary is a
Parameter
, this parameter will be evaluated every time.get()
is called before being passed to theschedule_function
.num_channels – The number of channels to expect in the acquisition data.
data_labels – Allows to specify custom labels. Needs to be precisely 2*num_channels if specified. The order is [Voltage I 0, Voltage Q 0, Voltage I 1, Voltage Q 1, …], in case real_imag==True, otherwise [Magnitude 0, Phase 0, Magnitude 1, Phase 1, …].
real_imag – If true, the gettable returns I, Q values. Otherwise, magnitude and phase (degrees) are returned.
batched – Used to indicate if the experiment is performed in batches or in an iterative fashion.
max_batch_size – Determines the maximum number of points to acquire when acquiring in batched mode. Can be used to split up a program in parts if required due to hardware constraints.
always_initialize – If True, then reinitialize the schedule on each invocation of get. If False, then only initialize the first invocation of get.
- property compiled_schedule: quantify_scheduler.Schedule[source]
Return the schedule used in this class
- initialize()[source]
This generates the schedule and uploads the compiled instructions to the hardware using the instrument coordinator.
- get() Union[Tuple[float, Ellipsis], Tuple[numpy.ndarray, Ellipsis]] [source]
Start the experimental sequence and retrieve acquisition data.
- Returns
The acquired I/Q voltage signal as a complex number, split into a tuple of floats: either real/imaginary parts or magnitude/phase, depending on whether
real_imag
isTrue
.
- _process_acquired_data_trigger_count(acquired_data, acq_metadata: quantify_scheduler.helpers.schedule.AcquisitionMetadata, repetitions: int) Dict[int, numpy.ndarray] [source]
Reformat acquired data in a dictionary. Used by process_acquired_data.
- Parameters
acquired_data – Acquired data as returned by instrument coordinator
acq_metadata – Acquisition metadata from schedule
repetitions – Number of repetitions of the schedule
- Returns
Dictionary with reformatted data. Keys correspond to the acquisition channel. Values are 1d numpy arrays with trigger counts.
- Raises
NotImplementedError – If acquisition protocol other than BinMode.APPEND is used.
- process_acquired_data(acquired_data, acq_metadata: quantify_scheduler.helpers.schedule.AcquisitionMetadata, repetitions: int) Union[Tuple[float, Ellipsis], Tuple[numpy.ndarray, Ellipsis]] [source]
Reshapes the data as returned from the instrument coordinator into the form accepted by the measurement control.
- generate_diagnostics_report(execute_get: bool = False, update: bool = False) str [source]
Create a report that saves all information contained in this ScheduleGettable and save it in the quantify datadir with its own tuid. The information in the report includes the generated schedule, device config, hardware config and snapshot of the instruments.
- Parameters
execute_get – When
True
, executesself.get()
before generating the report.update – When
True
, updates all parameters before saving the snapshot.
- Returns
The tuid of the generated report.
- _evaluate_parameter_dict(parameters: Dict[str, Any]) Dict[str, Any] [source]
Loop over the keys and values in a dict and replaces parameters with their current value.
- Parameters
parameters – A dictionary containing a mix of
Parameter
s and normal values.- Returns
The parameters dictionary, but with the parameters replaced by their current value.
- Raises
TypeError – If a parameter returns None