{ "cells": [ { "cell_type": "markdown", "id": "811812db", "metadata": {}, "source": [ "(sec-tutorial-experiment)=\n", "\n", "# Tutorial: Running an Experiment\n", "\n", "```{seealso}\n", "The complete source code of this tutorial can be found in\n", "\n", "{nb-download}`Running an Experiment.ipynb`\n", "\n", "The example dataset can be downloaded {download}`here <../examples/dataset.hdf5>`.\n", "```\n", "\n", "This notebook presents a structure for setting up experiments using a\n", "combination of `quantify-scheduler` and `quantify-core`. `quantify-scheduler`\n", "provides a high-level interface with the hardware, allowing users to abstract\n", "hardware-specific nuances. `quantify-core`, on the other hand, serves as an\n", "experiment management tool, using `quantify-scheduler` as its hardware\n", "interface. This allows users to manage, execute, and analyze experiments easily.\n", "\n", "The following is a general workflow for using Quantify\n", "\n", "- **{ref}`initial_setup`**\n", " - Set the directory for data storage for the experiment\n", " - Initialize the {class}`~quantify_core.measurement.control.MeasurementControl` and {class}`~quantify_scheduler.instrument_coordinator.instrument_coordinator.InstrumentCoordinator` objects\n", "\n", "- **{ref}`device_setup`**\n", " - Set up a *device compilation configuration* for the *device under test*\n", "\n", "- **{ref}`hardware_setup`**\n", " - Connect to the *control hardware*\n", " - Set up the *hardware compilation configuration*\n", "\n", "- **{ref}`create_schedule`**\n", " - Create a *schedule* containing the timeline of operations for the experiment\n", " - *Compile* the schedule to control-hardware code\n", " - *Visualize* the schedule\n", "\n", "- **{ref}`run_experiment`**\n", " - Setup {class}`~quantify_core.measurement.control.MeasurementControl` to run the experiment\n", " - *Run* the experiment\n", " - *Analyze* the results\n", "\n", "\n", "(initial_setup)=\n", "## 1. Initial Setup\n", "We first set up the directory in which all experimental data will be stored and managed." ] }, { "cell_type": "code", "execution_count": 1, "id": "988ab6eb", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Data will be saved in:\n", "/root/quantify-data\n" ] } ], "source": [ "from quantify_core.data import handling as dh\n", "dh.set_datadir()" ] }, { "cell_type": "markdown", "id": "10f25e71", "metadata": {}, "source": [ "Next, we need to initialize two classes:\n", "{class}`~quantify_core.measurement.control.MeasurementControl` for managing the\n", "experiment and {class}`~quantify_scheduler.instrument_coordinator.instrument_coordinator.InstrumentCoordinator` for managing the control hardware." ] }, { "cell_type": "code", "execution_count": 2, "id": "2000b86b", "metadata": {}, "outputs": [], "source": [ "from quantify_core.measurement.control import MeasurementControl\n", "from quantify_scheduler.instrument_coordinator import InstrumentCoordinator\n", "\n", "measurement_control = MeasurementControl(\"measurement_control\")\n", "instrument_coordinator = InstrumentCoordinator(\"instrument_coordinator\")" ] }, { "cell_type": "markdown", "id": "2188be6f", "metadata": {}, "source": [ "(device_setup)=\n", "## 2. Device Setup\n", "\n", "We set up the quantum device on which we perform the actual experiments.\n", "This one-qubit chip is represented by {class}`~quantify_scheduler.device_under_test.quantum_device.QuantumDevice` where we add a single\n", "transmon qubit (represented by {class}`~quantify_scheduler.device_under_test.transmon_element.BasicTransmonElement`) `q0` to it." ] }, { "cell_type": "code", "execution_count": 3, "id": "7aa0aefa", "metadata": {}, "outputs": [], "source": [ "# Device parameters\n", "ACQ_DELAY = 100e-9\n", "FREQ_01 = 4e9\n", "READOUT_AMP = 0.1\n", "READOUT_FREQ = 4.3e9\n", "PI_PULSE_AMP = 0.15\n", "LO_FREQ_QUBIT = 3.9e9\n", "LO_FREQ_READOUT = 4.5e9" ] }, { "cell_type": "code", "execution_count": 4, "id": "d0c8623a", "metadata": {}, "outputs": [], "source": [ "from quantify_scheduler.device_under_test.quantum_device import QuantumDevice\n", "from quantify_scheduler.device_under_test.transmon_element import BasicTransmonElement\n", "\n", "single_qubit_device = QuantumDevice(\"single_qubit_device\")\n", "single_qubit_device.instr_instrument_coordinator(instrument_coordinator.name)\n", "\n", "q0 = BasicTransmonElement(\"q0\")\n", "single_qubit_device.add_element(q0)\n", "\n", "# Assign device parameters to transmon element\n", "q0.measure.pulse_amp(READOUT_AMP)\n", "q0.clock_freqs.readout(READOUT_FREQ)\n", "q0.clock_freqs.f01(FREQ_01)\n", "q0.measure.acq_delay(ACQ_DELAY)\n", "q0.rxy.amp180(PI_PULSE_AMP)" ] }, { "cell_type": "markdown", "id": "4b61c91c", "metadata": {}, "source": [ "```{admonition} Quantum Devices and Elements\n", "More information on quantum devices and elements can be found in\n", "{ref}`sec-tutorial-ops-qubits`.\n", "```\n", "\n", "(hardware_setup)=\n", "## 3. Hardware Setup\n", "\n", "Let us now set up the connections to the control hardware. In this example, we\n", "use a dummy Qblox device that is created via an instance of the\n", "{class}`~qblox_instruments.Cluster` class, and is initialized with a dummy\n", "configuration consisting of a readout module in slot `1` and a control module in\n", "slot `2`." ] }, { "cell_type": "code", "execution_count": 5, "id": "04b06950", "metadata": {}, "outputs": [], "source": [ "from qblox_instruments import Cluster, ClusterType\n", "from quantify_scheduler.instrument_coordinator.components.qblox import ClusterComponent\n", "cluster = Cluster(\n", " \"cluster\",\n", " dummy_cfg={\n", " 1: ClusterType.CLUSTER_QRM,\n", " 2: ClusterType.CLUSTER_QCM_RF,\n", " },\n", ")\n", "\n", "ic_cluster = ClusterComponent(cluster)\n", "instrument_coordinator.add_component(ic_cluster)" ] }, { "cell_type": "markdown", "id": "0cdd83f7", "metadata": {}, "source": [ "The last part of setting up the hardware is to define the {class}`~.backends.types.common.HardwareCompilationConfig`\n", "and attach it to our `single_qubit_device`. The hardware compilation configuration is a\n", "pydantic datastructure, parsed either from a file or from a Python\n", "dictionary. It contains all of the information about the instruments used to run\n", "the experiment and is used to compile the schedule to hardware.\n", "For more information on this datastructure, please refer to the explanation in the {ref}`User Guide `." ] }, { "cell_type": "code", "execution_count": 6, "id": "723d471a", "metadata": {}, "outputs": [], "source": [ "hardware_comp_cfg = {\n", " \"config_type\": \"quantify_scheduler.backends.qblox_backend.QbloxHardwareCompilationConfig\",\n", " \"hardware_description\": {\n", " f\"{cluster.name}\": {\n", " \"instrument_type\": \"Cluster\",\n", " \"ref\": \"internal\",\n", " \"modules\": {\n", " \"1\": {\n", " \"instrument_type\": \"QRM_RF\"\n", " },\n", " \"2\": {\n", " \"instrument_type\": \"QCM_RF\"\n", " },\n", " },\n", " },\n", " },\n", " \"hardware_options\": {\n", " \"modulation_frequencies\": {\n", " \"q0:res-q0.ro\": {\"lo_freq\": LO_FREQ_READOUT},\n", " \"q0:mw-q0.01\": {\"lo_freq\": LO_FREQ_QUBIT},\n", " },\n", " },\n", " \"connectivity\": {\n", " \"graph\": [\n", " (f\"{cluster.name}.{cluster.module1.name.split('_')[-1]}.complex_output_0\", \"q0:res\"),\n", " (f\"{cluster.name}.{cluster.module2.name.split('_')[-1]}.complex_output_0\", \"q0:mw\")\n", " ]\n", " },\n", "}" ] }, { "cell_type": "code", "execution_count": 7, "id": "f9e417fe", "metadata": {}, "outputs": [], "source": [ "# Tie hardware config to device\n", "single_qubit_device.hardware_config(hardware_comp_cfg)" ] }, { "cell_type": "markdown", "id": "23894a49", "metadata": {}, "source": [ "(create_schedule)=\n", "## 4. Schedule Definition and Compilation\n", "Now we must create a schedule, where we define the set of operations that we\n", "wish to perform on the device under test. We define the schedule independent of\n", "the hardware configuration and rely on Quantify's ability to compile a schedule\n", "to hardware for converting it to hardware-level commands. For this tutorial, we\n", "will define a simple schedule that will run a *T1 experiment* to determine the\n", "relaxation time of our qubit. For various delay times `tau`, we repeatedly\n", "excite the qubit, wait `tau` seconds and then measure the qubit." ] }, { "cell_type": "code", "execution_count": 8, "id": "08f07bb3", "metadata": {}, "outputs": [], "source": [ "from quantify_scheduler import Schedule\n", "from quantify_scheduler.operations.gate_library import Measure, Reset, X\n", "\n", "def t1_sched(times, repetitions=1):\n", " schedule = Schedule(\"T1\", repetitions)\n", " for i, tau in enumerate(times):\n", " schedule.add(Reset(\"q0\"), label=f\"Reset {i}\")\n", " schedule.add(X(\"q0\"), label=f\"pi {i}\")\n", " schedule.add(\n", " Measure(\"q0\", acq_index=i),\n", " ref_pt=\"start\",\n", " rel_time=tau,\n", " label=f\"Measurement {i}\",\n", " )\n", " return schedule" ] }, { "cell_type": "markdown", "id": "354b7845", "metadata": {}, "source": [ "```{admonition} Pre-defined Schedules\n", ":class: tip\n", "\n", "The T1 schedule can be imported with `from quantify_scheduler.schedules import t1_sched`.\n", "\n", "For more pre-defined schedules, see {mod}`quantify_scheduler.schedules`.\n", "```\n", "\n", "We can inspect the details of the schedule in three different ways: via (1)\n", "*circuit* and (2) *pulse diagrams*, or through (3) a *timing table* containing the\n", "timing and other information of each operation.\n", "\n", "The\n", "{meth}`~quantify_scheduler.schedules.schedule.ScheduleBase.plot_circuit_diagram`\n", "method can directly be used to display the quantum circuit that corresponds to\n", "the schedule that we defined above." ] }, { "cell_type": "code", "execution_count": 9, "id": "f1a51825", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "t1_schedule = t1_sched(times=[1e-6])\n", "t1_schedule.plot_circuit_diagram();" ] }, { "cell_type": "markdown", "id": "589c28b8", "metadata": {}, "source": [ "For displaying the pulse diagram and timing table, the schedule first needs to get timing information for each operation in the schedule. This is achieved by compiling the schedule using {class}`~quantify_scheduler.backends.graph_compilation.SerialCompiler`. Please note that below in section {ref}`run_experiment`, the compilation is handled by {class}`~quantify_core.measurement.control.MeasurementControl` internally; it is done here only to enable displaying the timing table and pulse diagram.\n", "\n", "```{admonition} Compiling to Hardware\n", "More information on compilation can be found in {ref}`sec-tutorial-compiling`.\n", "```" ] }, { "cell_type": "code", "execution_count": 10, "id": "47d6f915", "metadata": {}, "outputs": [], "source": [ "from quantify_scheduler.backends.graph_compilation import SerialCompiler\n", "\n", "compiler = SerialCompiler(name=\"compiler\", quantum_device=single_qubit_device)\n", "compiled_schedule = compiler.compile(schedule=t1_schedule)" ] }, { "cell_type": "markdown", "id": "42627c9d", "metadata": {}, "source": [ "Each operation is compiled into pulses that can be viewed and inspected via the {meth}`~quantify_scheduler.schedules.schedule.ScheduleBase.plot_pulse_diagram` method." ] }, { "cell_type": "code", "execution_count": 11, "id": "9f985e7b", "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "fill": "tozeroy", "hoverinfo": "x+y+name", "hoverlabel": { "namelength": -1 }, "legendgroup": "0", "line": { "color": "#636EFA" }, "mode": "lines", "name": "X q0, clock q0.01", "showlegend": true, "type": "scatter", "x": [ 0.00019999999000000002, 0.0002, 0.000200001, 0.000200002, 0.00020000299999999998, 0.00020000399999999996, 0.00020000499999999995, 0.00020000599999999994, 0.00020000699999999993, 0.00020000799999999992, 0.0002000089999999999, 0.0002000099999999999, 0.00020001099999999988, 0.00020001199999999987, 0.00020001299999999986, 0.00020001399999999985, 0.00020001499999999984, 0.00020001599999999983, 0.00020001699999999982, 0.0002000179999999998, 0.0002000189999999998, 0.0002000199899999998, 0.00020001999999999978 ], "xaxis": "x", "y": [ 0.0, -8.98761038924001e-05, 8.987610381712917e-05, 0.0007562079361470463, 0.00283596871346417, 0.008280018926674976, 0.0201600969864917, 0.04156539956808207, 0.07287264289313114, 0.10878216005980826, 0.1383272564576525, 0.1498598045019222, 0.13832725646268598, 0.10878216006772724, 0.0728726429010935, 0.041565399574146324, 0.020160096990181422, 0.008280018928511506, 0.002835968714221485, 0.000756207936407731, 8.98761038924001e-05, 8.98761038924001e-05, 0.0 ], "yaxis": "y" }, { "fill": "tozeroy", "hoverinfo": "x+y+name", "hoverlabel": { "namelength": -1 }, "legendgroup": "1", "line": { "color": "#EF553B" }, "mode": "lines", "name": "Measure q0, clock q0.ro", "showlegend": true, "type": "scatter", "x": [ 0.00020099999000000002, 0.000201, 0.000201001, 0.00020100199999999998, 0.00020100299999999997, 0.00020100399999999996, 0.00020100499999999995, 0.00020100599999999994, 0.00020100699999999993, 0.00020100799999999992, 0.0002010089999999999, 0.0002010099999999999, 0.00020101099999999988, 0.00020101199999999987, 0.00020101299999999986, 0.00020101399999999985, 0.00020101499999999984, 0.00020101599999999983, 0.00020101699999999981, 0.0002010179999999998, 0.0002010189999999998, 0.00020101999999999978, 0.00020102099999999977, 0.00020102199999999976, 0.00020102299999999975, 0.00020102399999999973, 0.00020102499999999972, 0.0002010259999999997, 0.0002010269999999997, 0.0002010279999999997, 0.00020102899999999968, 0.00020102999999999967, 0.00020103099999999965, 0.00020103199999999964, 0.00020103299999999963, 0.00020103399999999962, 0.0002010349999999996, 0.0002010359999999996, 0.0002010369999999996, 0.00020103799999999958, 0.00020103899999999956, 0.00020103999999999955, 0.00020104099999999954, 0.00020104199999999953, 0.00020104299999999952, 0.0002010439999999995, 0.0002010449999999995, 0.00020104599999999948, 0.00020104699999999947, 0.00020104799999999946, 0.00020104899999999945, 0.00020104999999999944, 0.00020105099999999943, 0.00020105199999999942, 0.0002010529999999994, 0.0002010539999999994, 0.00020105499999999938, 0.00020105599999999937, 0.00020105699999999936, 0.00020105799999999935, 0.00020105899999999934, 0.00020105999999999933, 0.00020106099999999931, 0.0002010619999999993, 0.0002010629999999993, 0.00020106399999999928, 0.00020106499999999927, 0.00020106599999999926, 0.00020106699999999925, 0.00020106799999999923, 0.00020106899999999922, 0.0002010699999999992, 0.0002010709999999992, 0.0002010719999999992, 0.00020107299999999918, 0.00020107399999999917, 0.00020107499999999915, 0.00020107599999999914, 0.00020107699999999913, 0.00020107799999999912, 0.0002010789999999991, 0.0002010799999999991, 0.0002010809999999991, 0.00020108199999999908, 0.00020108299999999906, 0.00020108399999999905, 0.00020108499999999904, 0.00020108599999999903, 0.00020108699999999902, 0.000201087999999999, 0.000201088999999999, 0.00020108999999999898, 0.00020109099999999897, 0.00020109199999999896, 0.00020109299999999895, 0.00020109399999999894, 0.00020109499999999893, 0.00020109599999999892, 0.0002010969999999989, 0.0002010979999999989, 0.00020109899999999888, 0.00020109999999999887, 0.00020110099999999886, 0.00020110199999999885, 0.00020110299999999884, 0.00020110399999999883, 0.00020110499999999881, 0.0002011059999999988, 0.0002011069999999988, 0.00020110799999999878, 0.00020110899999999877, 0.00020110999999999876, 0.00020111099999999875, 0.00020111199999999873, 0.00020111299999999872, 0.0002011139999999987, 0.0002011149999999987, 0.0002011159999999987, 0.00020111699999999868, 0.00020111799999999867, 0.00020111899999999865, 0.00020111999999999864, 0.00020112099999999863, 0.00020112199999999862, 0.0002011229999999986, 0.0002011239999999986, 0.0002011249999999986, 0.00020112599999999858, 0.00020112699999999856, 0.00020112799999999855, 0.00020112899999999854, 0.00020112999999999853, 0.00020113099999999852, 0.0002011319999999985, 0.0002011329999999985, 0.00020113399999999848, 0.00020113499999999847, 0.00020113599999999846, 0.00020113699999999845, 0.00020113799999999844, 0.00020113899999999843, 0.00020113999999999842, 0.0002011409999999984, 0.0002011419999999984, 0.00020114299999999838, 0.00020114399999999837, 0.00020114499999999836, 0.00020114599999999835, 0.00020114699999999834, 0.00020114799999999833, 0.00020114899999999831, 0.0002011499999999983, 0.0002011509999999983, 0.00020115199999999828, 0.00020115299999999827, 0.00020115399999999826, 0.00020115499999999825, 0.00020115599999999823, 0.00020115699999999822, 0.0002011579999999982, 0.0002011589999999982, 0.0002011599999999982, 0.00020116099999999818, 0.00020116199999999817, 0.00020116299999999816, 0.00020116399999999814, 0.00020116499999999813, 0.00020116599999999812, 0.0002011669999999981, 0.0002011679999999981, 0.0002011689999999981, 0.00020116999999999808, 0.00020117099999999806, 0.00020117199999999805, 0.00020117299999999804, 0.00020117399999999803, 0.00020117499999999802, 0.000201175999999998, 0.000201176999999998, 0.00020117799999999798, 0.00020117899999999797, 0.00020117999999999796, 0.00020118099999999795, 0.00020118199999999794, 0.00020118299999999793, 0.00020118399999999792, 0.0002011849999999979, 0.0002011859999999979, 0.00020118699999999788, 0.00020118799999999787, 0.00020118899999999786, 0.00020118999999999785, 0.00020119099999999784, 0.00020119199999999783, 0.00020119299999999781, 0.0002011939999999978, 0.0002011949999999978, 0.00020119599999999778, 0.00020119699999999777, 0.00020119799999999776, 0.00020119899999999775, 0.00020119999999999773, 0.00020120099999999772, 0.0002012019999999977, 0.0002012029999999977, 0.0002012039999999977, 0.00020120499999999768, 0.00020120599999999767, 0.00020120699999999766, 0.00020120799999999764, 0.00020120899999999763, 0.00020120999999999762, 0.0002012109999999976, 0.0002012119999999976, 0.0002012129999999976, 0.00020121399999999758, 0.00020121499999999756, 0.00020121599999999755, 0.00020121699999999754, 0.00020121799999999753, 0.00020121899999999752, 0.0002012199999999975, 0.0002012209999999975, 0.00020122199999999748, 0.00020122299999999747, 0.00020122399999999746, 0.00020122499999999745, 0.00020122599999999744, 0.00020122699999999743, 0.00020122799999999742, 0.0002012289999999974, 0.0002012299999999974, 0.00020123099999999738, 0.00020123199999999737, 0.00020123299999999736, 0.00020123399999999735, 0.00020123499999999734, 0.00020123599999999733, 0.00020123699999999731, 0.0002012379999999973, 0.0002012389999999973, 0.00020123999999999728, 0.00020124099999999727, 0.00020124199999999726, 0.00020124299999999725, 0.00020124399999999723, 0.00020124499999999722, 0.0002012459999999972, 0.0002012469999999972, 0.0002012479999999972, 0.00020124899999999718, 0.00020124999999999717, 0.00020125099999999716, 0.00020125199999999714, 0.00020125299999999713, 0.00020125399999999712, 0.0002012549999999971, 0.0002012559999999971, 0.0002012569999999971, 0.00020125799999999708, 0.00020125899999999706, 0.00020125999999999705, 0.00020126099999999704, 0.00020126199999999703, 0.00020126299999999702, 0.000201263999999997, 0.000201264999999997, 0.00020126599999999699, 0.00020126699999999697, 0.00020126799999999696, 0.00020126899999999695, 0.00020126999999999694, 0.00020127099999999693, 0.00020127199999999692, 0.0002012729999999969, 0.0002012739999999969, 0.00020127499999999688, 0.00020127599999999687, 0.00020127699999999686, 0.00020127799999999685, 0.00020127899999999684, 0.00020127999999999683, 0.00020128099999999681, 0.0002012819999999968, 0.0002012829999999968, 0.00020128399999999678, 0.00020128499999999677, 0.00020128599999999676, 0.00020128699999999675, 0.00020128799999999674, 0.00020128899999999672, 0.0002012899999999967, 0.0002012909999999967, 0.0002012919999999967, 0.00020129299999999668, 0.00020129399999999667, 0.00020129499999999666, 0.00020129599999999664, 0.00020129699999999663, 0.00020129799999999662, 0.0002012989999999966, 0.0002012999899999966, 0.0002012999999999966 ], "xaxis": "x2", "y": [ 0.0, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.0 ], "yaxis": "y2" }, { "marker": { "color": "rgba(0,0,0,.25)", "size": 15, "symbol": [ "arrow-bar-left", "arrow-bar-right" ] }, "mode": "markers", "name": "Measure q0", "type": "scatter", "x": [ 0.0002011, 0.0002021 ], "xaxis": "x2", "y": [ 0, 0 ], "yaxis": "y2" } ], "layout": { "height": 600, "shapes": [ { "fillcolor": "rgba(255,0,0,0.1)", "layer": "below", "line": { "color": "rgba(0,0,0,0)", "width": 3 }, "name": "Measure q0", "type": "rect", "x0": 0.0002011, "x1": 0.0002021, "xref": "x", "y0": 0, "y1": 1, "yref": "y2 domain" } ], "showlegend": false, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "sequentialminus": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "T1" }, "width": 1000, "xaxis": { "anchor": "y", "domain": [ 0.0, 1.0 ], "hoverformat": ".3s", "matches": "x2", "showgrid": true, "showticklabels": false, "tickformat": ".2s", "ticksuffix": "s" }, "xaxis2": { "anchor": "y2", "domain": [ 0.0, 1.0 ], "hoverformat": ".3s", "showgrid": true, "tickformat": ".2s", "tickformatstops": [ { "dtickrange": [ null, 1e-09 ], "value": ".10s" }, { "dtickrange": [ 1e-09, 1e-06 ], "value": ".7s" }, { "dtickrange": [ 1e-06, 0.001 ], "value": ".4s" } ], "ticksuffix": "s", "title": { "text": "Time" } }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0.51, 1.0 ], "hoverformat": ".3s", "tickformat": ".2s", "ticksuffix": "V", "title": { "text": "q0:mw" } }, "yaxis2": { "anchor": "x2", "autorange": true, "domain": [ 0.0, 0.49 ], "hoverformat": ".3s", "tickformat": ".2s", "ticksuffix": "V", "title": { "text": "q0:res" } } } }, "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "compiled_schedule.plot_pulse_diagram(plot_backend=\"plotly\")" ] }, { "cell_type": "markdown", "id": "0ec0749e", "metadata": {}, "source": [ "By passing the `plotly` backend, we made the above diagram interactive.\n", "\n", "\n", "Lastly, the timing table can simply be accessed via the {attr}`~quantify_scheduler.schedules.schedule.ScheduleBase.timing_table` property of a schedule." ] }, { "cell_type": "code", "execution_count": 12, "id": "515f1525", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
 waveform_op_idportclockabs_timedurationis_acquisitionoperationwf_idxoperation_hash
0Reset('q0')_acq_0Nonecl0.baseband0.0 ns200,000.0 nsFalseReset('q0')03570856792986912503
1X(qubit='q0')_acq_0q0:mwq0.01200,000.0 ns20.0 nsFalseX(qubit='q0')0-6068752166874010538
2Measure('q0', acq_channel=None, acq_index=0, acq_protocol=\"None\", bin_mode=None, feedback_trigger_label=None)_acq_0Noneq0.ro201,000.0 ns0.0 nsFalseMeasure('q0', acq_channel=None, acq_index=0, acq_protocol=\"None\", bin_mode=None, feedback_trigger_label=None)03492705337515677340
3Measure('q0', acq_channel=None, acq_index=0, acq_protocol=\"None\", bin_mode=None, feedback_trigger_label=None)_acq_1q0:resq0.ro201,000.0 ns300.0 nsFalseMeasure('q0', acq_channel=None, acq_index=0, acq_protocol=\"None\", bin_mode=None, feedback_trigger_label=None)13492705337515677340
4Measure('q0', acq_channel=None, acq_index=0, acq_protocol=\"None\", bin_mode=None, feedback_trigger_label=None)_acq_0q0:resq0.ro201,100.0 ns1,000.0 nsTrueMeasure('q0', acq_channel=None, acq_index=0, acq_protocol=\"None\", bin_mode=None, feedback_trigger_label=None)03492705337515677340
\n" ], "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "compiled_schedule.timing_table" ] }, { "cell_type": "markdown", "id": "4e270cc4", "metadata": {}, "source": [ "```{admonition} Device-layer Schedules (Pulses)\n", "More information on defining schedules using pulses can be found in {ref}`sec-tutorial-sched-pulse`.\n", "```\n", "\n", "```{admonition} Circuit-layer Schedules (Gates and Measurements)\n", "More information on defining schedules using circuit-layer operations and mixing with\n", "pulses can be found in {ref}`sec-tutorial-ops-qubits`.\n", "```\n", "\n", "(run_experiment)=\n", "## 5. Experiment Execution and Analysis\n", "\n", "We can now configure our {class}`~quantify_core.measurement.control.MeasurementControl` to run the experiment. In\n", "this case, we will perform a 1-dimensional sweep using a\n", "{class}`qcodes.instrument.parameter.ManualParameter`. Sweeping such a parameter will physically change the hardware output as the sweep is performed." ] }, { "cell_type": "code", "execution_count": 13, "id": "71329454", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "from qcodes.instrument.parameter import ManualParameter\n", "from quantify_scheduler.gettables import ScheduleGettable\n", "\n", "# Configure the settable\n", "time = ManualParameter(\"sample\", label=\"Sample time\", unit=\"s\")\n", "time.batched = True\n", "\n", "times = np.linspace(start=1.6e-7, stop=4.976e-5, num=125)\n", "\n", "# Configure the gettable\n", "gettable = ScheduleGettable(\n", " quantum_device=single_qubit_device,\n", " schedule_function=t1_sched,\n", " schedule_kwargs={\"times\": times},\n", " batched=True\n", ")\n", "\n", "# Configure MeasurementControl\n", "measurement_control.settables(time)\n", "measurement_control.setpoints(times)\n", "measurement_control.gettables(gettable)" ] }, { "cell_type": "markdown", "id": "664f589b", "metadata": {}, "source": [ "In the above example, we use\n", "{meth}`~quantify_core.measurement.control.MeasurementControl.settables` and\n", "{meth}`~quantify_core.measurement.control.MeasurementControl.gettables` together\n", "with `batched=True` to instruct `measurement_control` how to execute the\n", "experiment. Instead of iteratively processing each value in the `times` array, all are\n", "processed in one batch.\n", "\n", "```{admonition} Configuring MeasurementControl\n", "More information on configuring {class}`~quantify_core.measurement.control.MeasurementControl` can be found in the\n", "[user guide](https://quantify-os.org/docs/quantify-core/dev/user/concepts.html#measurement-control)\n", "of `quantify-core`.\n", "```\n", "\n", "Once {class}`~quantify_core.measurement.control.MeasurementControl` is all set\n", "up, we can run the experiment." ] }, { "cell_type": "code", "execution_count": 14, "id": "070b903d", "metadata": { "mystnb": { "remove_code_outputs": true } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Starting batched measurement...\n", "Iterative settable(s) [outer loop(s)]:\n", "\t --- (None) --- \n", "Batched settable(s):\n", "\t sample \n", "Batch size limit: 125\n", "\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "3107052b47cf4c89bc1e0879a57d0a11", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Completed: 0%| [ elapsed time: 00:00 | time left: ? ] it" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dataset = measurement_control.run()" ] }, { "cell_type": "markdown", "id": "e1912185", "metadata": {}, "source": [ "The result of the experiment is assigned to the variable `dataset`, but also saved to disk (as set by {func}`~quantify_core.data.handling.set_datadir` at the start of this tutorial).\n", "\n", "To analyze the experiment results, we can choose from the variety of classes from the {mod}`quantify_core.analysis`\n", "package. For a T1 experiment, we use the\n", "{class}`~quantify_core.analysis.single_qubit_timedomain.T1Analysis` class which\n", "is used to fit the data, extract relevant parameters and visualize the result.\n", "In this tutorial, we run the experiment on a dummy cluster, and therefore the\n", "dataset that we obtain is empty. For demonstrational purposes, we show how it\n", "would look on an actual dataset. This example dataset can be downloaded\n", "{download}`here <../examples/dataset.hdf5>`." ] }, { "cell_type": "code", "execution_count": 15, "id": "bd997b7d", "metadata": {}, "outputs": [], "source": [ "import xarray\n", "\n", "dataset = xarray.open_dataset(\"../examples/dataset.hdf5\")" ] }, { "cell_type": "code", "execution_count": 16, "id": "85f0efa6", "metadata": {}, "outputs": [ { "data": { "image/png": "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hw4VM2bM2LGoqCixOXXddtttE/75z3++Pn369Ac3bNiQedRRR53wwAMPjLn33ntfuPvuu59cuHDhwAsvvHCP4HNmzZo1skuXLiWvv/76/UceeeQXd9111xH77bffiaNGjVr+5ptv/t8uu+yy+KqrrpoUSNirqqqsR48eRffee+9zM2fOvPv000//8NFHH93/mmuu2Tm43u+++25AXl5ezjPPPPPYE0888dSll146f+3atTnPPPNMz0CZGTNmbJefn9/jggsu+Ko5r1s8MdXVpC1JHbkLAInL8uhulYBau0VEROJRSkqK78orr3xp2rRpR3Xt2nX3Pn365I8YMWLpaaedtvCoo44Knda4Tpdeeun7gT7hL7744vwnnnhi/1mzZv1n77333gjw5JNPLpo7d+4A4JPAOb169Vr99NNPfwQwbty4WTNmzNg7MzOz5I477vgSoFu3bh8OHz589zfffLPHb37zmxVpaWm+5557bmbg/HHjxm2aM2dOn1dffXXnv//9798G9nfo0KHy7bfffjm4i8lOO+20+P7779/1pJNOWgVw33337Tpo0KC8QHzSPDHV4t2WJGVnk9zPa+UuXfB1lKMRERGR5rjqqqu+W7Vq1b9vvfXWp/fYY4+fFyxY0P/YY4/988UXXzyyMfXsv//+NYl69+7dtyQnJ1cGJ7Vdu3bdUlRUlB58zoABA2rO6dChg0tLSysZMmRIzb6ddtppC8CKFStqzjvrrLNG9+nT50/p6emXdOzY8fIPPvhgVEFBQVZwvb169VoT2q/75JNPnjd79uxhmzZtStqyZUviJ598MnzSpEnzkRahxLsVpe7itXqXfvVVdAMRERGRZuvcuXPVueee+8szzzzz0ZIlSx4cN27cVw8++OCEwKBM534dm1laWho2x0pNTfUFHpsZiYmJvuDjZoZzbqsBeUlJSduUCd7nH8SHz+czgKuuumrYAw88cNCRRx45//HHH3/87bffvm+fffaZX1VVtVU3mZSUlMrQ+C666KIfk5KSqm+55ZYdb7vttiHV1dUJl1566aL67o00jLqatKLUkSMpevkVShcsiHYoIiIi0sIGDRq0bt68eTsOGjSoGGDJkiWd8NYY4e23396uzpNb0WeffdZn++23X37PPffMCezLz8/Pbsi5KSkpvokTJ371wgsv7JqUlFQ9duzYhdnZ2VWtF237osS7FaWNHAlA6YIFOJ8PS9APDCIiIvHm559/Tj3ssMNOPO644+aPHTt2TdeuXcvfeeedns8999y4UaNGfZ+dnV3Vr1+/Fffee+/ew4YN27hs2bL0W265Zb9oxTtgwIANs2bN2uWOO+4YOHz48E133333iLy8vJ5du3bd1JDzL7jggi8POOCAcwAee+yxB+srLw2nxLsVdRwyBEtNxbd5MxW//ELHQYPqP0lERERiSvfu3SuGDh264oknnhhz++23Z1dXVyd07ty56KCDDpp3//33zwL4v//7v/+deeaZRx955JF/7tatW8Fll132zl//+tffRiPeW265Ze6iRYu2u+yyy04A3F577bXw4IMPnjN37tzBDTl/4sSJGwYMGLB8y5YtqaeeeurKVg63XbHg/kjtkZllAoWFhYVkZma2eP1Lf/s7SubMIfcf19P5+ONbvH4REZH2qKioiKysLIAs51xRc+oys+677rrrjffff/+mUaNGNauutsDn89G9e/e/HnXUUXMeeuihqK4GHs8OOOCAYe+9994059y8wD71fWhlqUHdTURERERi2Q8//JB21lln7bF58+aMq6++WrOZtDB1NWllqbuOBDSziYiIiMS+HXfc8ZK0tLSSiy+++JX+/fuXRTuetkaJdysLTClY/vNiqjdvJrFTpyhHJCIiIhKec+7v0Y6hLVNXk1aW1LUryX36gHNaSEdERESkHVPiHQG/9vP+KqpxiIiIiEj0KPGOgNSRgRUsNcBSREREpL1S4h0BqbuMBH5dSEdERERE2h8l3hGQssMQLCUFX1ERFUuWRDscERERaYQ77rhjoJldU9c2efLkfUeMGHFyZmbmRWZ2zQ033LBjU66VnZ19frj6DzjggMOaWv6BBx7o15DY5s+f32nMmDGT0tLSLk1OTr4iNzf3rOnTp/dsyusAOOuss0ZnZ2efn5ycfGW/fv1Of/rpp3s195wTTzxxQuhr7d69+zmNLRMtmtUkAiw5mdRhwyiZO5fSrxbQceDAaIckIiIiDfTb3/526f777//vwPM999zz7EMPPXTOtddeOyew780338ytrKxMnDx58vwrr7xyclOv9emnn/63srKypmF05syZ3c8999zfnnjiiYuaWr6oqCh50KBBa+qKLS8vL2X//ff/40477bTkwQcffLJv377F8+bN65qbm1sarvzgwYOnHH300V/dcsstX4U7fvXVV+98//33H3zeeee9euCBB6688cYbx5x22mm/GTly5F1Dhw4tbs45PXr0WPfuu+8+FnjesWPHbboTNKRMNCjxjpDUkbv4E++v6HzcpGiHIyIiIg2UnZ1dlZ2dvQW8VuGSkpLUfffdd+mwYcO2BMoMGzbsJ+AngCuvvLLJ19phhx1Kgp9ffPHFe3ft2nXj6aefntfU8hdeeOHPF1544c91xXbeeeft3aVLl8KPP/74f4F948aN29TU1/Hoo4+OnThx4pf//ve/vwI44IADXu3atevgG264YdfHH3/84+ack5iY6Au+9+E0pEyw7Ozs8ydNmvTZAw888FlgX69evc4cN27c988+++xMgOuuu26ne++9d9+CgoLs5OTkyr59+67+6KOPnu7evXtlQ6+jriYRUjpkJwCK5n0Z5UhERESkqd59991cgEMPPTS/sedefPHFI83smoaW37JlS+KsWbNGHHzwwfMTEupP2RpbPthnn322w5AhQ1aNGjXqhIyMjEt69er15/POO2+3RlUSFMeKFSt6Tpw48ZfAvqSkJDds2LBfvv76697NPWfdunXZmZmZF3Xt2vW8MWPGTPriiy+yQutrSJnG+PrrrzP+/ve/H3fYYYfN/+ijj+6ePn36I/vtt993zjlrTD1q8Y6A6XOWcePMIp4Cqn75hednfsvxE3aOdlgiIiLSSHPnzs3NysoqGjRoUNguGHXp0qVLWbdu3dY3tPzNN9+8Y1lZWcoll1zyVWuUD7Zhw4Yu77777ujDDz/80yuuuGLWzJkze91zzz2HdujQofrmm29ecOqpp+7z/PPP7xMoX1lZmXTHHXf0vvPOO2v6ks+aNevuPfbYo/Dnn39O8/l81qdPn61anLOzs4tXrFiRE+76DT1nzJgxK3baaaeXdtttt/VLlizJuP322yccfPDBf1i0aNE9ubm5FQ0t01g//vhjJ5/Pl3DGGWd8N2bMmEKAI488cm1j61Hi3cryC0uZOuMbfB06sSKjG723rOO5R99g3K7bk5uVGu3wREREpBF++OGH3P79+ze6tRvgiiuu+P6KK674vqHln3vuuV133nnnn0aOHLm5NcoHc85Znz59Vr300kvvAUyaNGn1999/3/25557b/eabb15w/fXXz/3Tn/70baD87373u0kTJkz47rTTTvsusG/EiBGNvm5jBbrM+K059thjVw4ZMuT8m266aefbbrttfkPLNNZRRx21eocddlgyYcKEs3feeeef995778UXXHDBov79+5c1ph51NWllSwqK8Tnv8bfZAwAYWrCEvIKSOs4SERGRWJSXl5e7ww47NCnxbozPPvss6/vvv9/+5JNPblAf1caWD9WpU6fNffr0WRe8b/Dgwes2btyYBbD99tuX7rvvvhsCW4cOHaq6detWHLwvJSXFBzBo0KCShIQEt3z58ozg+jZs2JDeuXPnsP2um3IOQN++fcu6d+++/pdffsluTplwfD5fTTeSDh06uEWLFj123333PbH99tuve+655/YcNmzYuZ988knnxtSpxLuVDchJJ8H/tn3btT8AwzYsoX9OWvSCEhERkUb76aef0goLCzN33333Vk+8b7311l0zMjKKL7jggp9ao3yoIUOGLF+5cmXX4H2//PJL1+zs7MLG1pWRkVHdu3fvVR988MGAwL6qqipbuHDh9iNGjFjRUucArFmzpkNBQUF2jx49ak3OG1IGYN26demBxyUlJQmbNm3aql94QkICU6ZMWf7cc8/NzMvLuy8xMbH6wQcfHFpXnaGUeLey3KxUpk0aTqIZ33b1t3gXrqBHim69iIhIPHnjjTdyAQ488MBtEu81a9Z0ePHFF7d78cUXtwNYvHhx5xdffHG74EF9//znP3dsyHzSVVVV9s4774ycOHHigkArcrAzzzxzjx122OF3DS3fkNguuOCCT/Py8nqfeuqp+3z44YfZV1xxxfD33ntv1Mknn/xFoI6FCxdmBLYXX3zx+SlTpvwcvK+ioqKmhfj3v//9pzNnzhx1ySWX7PLWW2/lHHjggYdXVFQkX3bZZTVdPUJfR0POOfzwww+6//77+3366aedH3300T777rvvZDPzXXTRRd80pkw477333q533XXX9h988EH20UcffUhZWVnH5cuXd/n222/Tn3zyyV6nnnrqPtOnT+/5xRdfZN1www1Di4uL04YNG7aurjpDqY93BEwe3ZfxQ7qRt64Ym3c/CRs3UPbtt6Tt1qTBwiIiIhIFc+fO3S4jI6M4XB/q//3vfz3//Oc//z7w/KGHHjr4oYceYq+99lrwySefvASwcePGlHXr1nUNPTfUPffcs/2mTZuyzjvvvLD9kTds2JC2bt267IaWb0hsJ5100qrly5dPv/XW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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from quantify_core.analysis import T1Analysis\n", "\n", "T1Analysis(dataset=dataset).run().display_figs_mpl()" ] }, { "cell_type": "markdown", "id": "b327656f", "metadata": {}, "source": [ "```{admonition} Analyzing Datasets\n", "More information on analyzing datasets can be found in the [user guide](\n", ")\n", "of `quantify-core`.\n", "```" ] } ], "metadata": { "file_format": "mystnb", "kernelspec": { "display_name": "python3", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.19" }, "source_map": [ 6, 54, 57, 63, 69, 79, 90, 106, 122, 135, 144, 176, 179, 191, 207, 226, 229, 237, 242, 247, 249, 256, 258, 276, 299, 317, 324, 338, 344, 348 ], "widgets": { "application/vnd.jupyter.widget-state+json": { "state": { "3107052b47cf4c89bc1e0879a57d0a11": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_596fbd0c3fad474cab0518f64c38972f", "IPY_MODEL_402a0c756aa9443c817031d7a5dda51d", "IPY_MODEL_59506183435c4ec893f8e2d5fc6629b2" ], "layout": "IPY_MODEL_adb3a201f4694ff5a2849cdc413fce65", "tabbable": null, "tooltip": null } }, "402a0c756aa9443c817031d7a5dda51d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_a1e31b77737e4a04a58c97c3c0136b41", "max": 100.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_ac49104e70804259b485805a0535117e", "tabbable": null, "tooltip": null, "value": 100.0 } }, "59506183435c4ec893f8e2d5fc6629b2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HTMLView", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_99c4d5894cc14183868de7f4bc6f30dc", "placeholder": "​", "style": "IPY_MODEL_66e0beaeb76d4da9832dd531393660f5", "tabbable": null, "tooltip": null, "value": " [ elapsed time: 00:00 | time left: 00:00 ]  last batch size: 125" } }, "596fbd0c3fad474cab0518f64c38972f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HTMLView", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_7e3b6ef033094ab9bcfad3b08a464dca", "placeholder": "​", "style": "IPY_MODEL_9f9b8a4017b1447383b42a7af02f1dbf", "tabbable": null, "tooltip": null, "value": "Completed: 100%" } }, "66e0beaeb76d4da9832dd531393660f5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "background": null, "description_width": "", "font_size": null, "text_color": null } }, "7e3b6ef033094ab9bcfad3b08a464dca": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "99c4d5894cc14183868de7f4bc6f30dc": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "9f9b8a4017b1447383b42a7af02f1dbf": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "background": null, "description_width": "", "font_size": null, "text_color": null } }, "a1e31b77737e4a04a58c97c3c0136b41": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "ac49104e70804259b485805a0535117e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "adb3a201f4694ff5a2849cdc413fce65": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } } }, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 5 }