{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Using `datasaver_builder` and `dond_into` to streamline measurements\n", "\n", "This example notebook shows examples of how to use the `datasaver_builder` and `dond_into` extensions together. It showcases these as an intermediate abstraction layer between the low-level `Measurement` object and the high-level `doNd` routines.\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Setup\n", "\n", "Here, we call necessary imports for running this notebook, as well as setting up a database, dummy parameters, and creating an experiment object." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Main Module Imports\n", "These are the main components we'll be looking at in this notebook." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from qcodes.dataset import DataSetDefinition, LinSweeper, datasaver_builder, dond_into" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Other imports" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from itertools import product\n", "\n", "import numpy as np\n", "\n", "import qcodes as qc\n", "from qcodes.dataset import LinSweep, Measurement, plot_dataset\n", "from qcodes.parameters import Parameter, ParameterWithSetpoints\n", "from qcodes.validators import Arrays" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Set up database and experiment" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "db_path = \"measurement_extensions.db\"\n", "qc.initialise_or_create_database_at(db_path)\n", "experiment = qc.load_or_create_experiment(\"Examples\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Dummy Parameter Creation" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "set1 = Parameter(\"set1\", get_cmd = None, set_cmd=None, initial_value=0)\n", "set2 = Parameter(\"set2\", get_cmd = None, set_cmd=None, initial_value=0)\n", "set3 = Parameter(\"set3\", get_cmd = None, set_cmd=None, initial_value=0)\n", "\n", "\n", "def get_set1():\n", " return set1()\n", "\n", "\n", "def get_sum12():\n", " return set1() + set2()\n", "\n", "\n", "def get_diff13():\n", " return set1() - set3()\n", "\n", "\n", "meas1 = Parameter(\"meas1\", get_cmd=get_set1, set_cmd=False)\n", "meas2 = Parameter(\"meas2\", get_cmd=get_sum12, set_cmd=False)\n", "meas3 = Parameter(\"meas3\", get_cmd=get_diff13, set_cmd=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### ParameterWithSetpoints Creation" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "def get_setpoints_array():\n", " return np.linspace(-5, 5, 11)\n", "\n", "\n", "def get_pws_results():\n", " setpoints_arr = get_setpoints_array()\n", " return setpoints_arr**2 * set1()\n", "\n", "\n", "setpoint_array = Parameter(\"setpoints\",\n", " get_cmd = get_setpoints_array,\n", " vals=Arrays(shape=(11,))\n", " )\n", "\n", "pws = ParameterWithSetpoints(\"pws\",\n", " setpoints = (setpoint_array,),\n", " get_cmd = get_pws_results,\n", " vals=Arrays(shape=(11,))\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Using the `datasaver_builder`\n", "\n", "The `datasaver_builder` is a shortcut to creating multiple qcodes `Measurement` objects, registering the relevant parameters and dependencies, and entering the datasaver context managers.\n", "\n", "This process begins with the `DataSetDefinition`, a dataclass specifying the name of the dataset, the independent parameters, the dependent parameters, and optionally the experiment to write the dataset to. If the experiment kwarg is omitted, Qcodes will write to the default experiment. Note that the `datasaver_builder` assumes that all dependent parameters depend on all independent parameters. This is less flexible than the raw `Measurement` object, but covers the most common measurement types.\n", "\n", "Once the datasets have been defined, we enter the `datasaver_builder` by passing the list or tuple of `DataSetDefinition` objects.\n", "\n", "When we enter the context manager, we get a list of the respective datasavers, in an order which matches the order passed. These can be accessed like any other `DataSaver`, and arbitrary code can be executed in whatever order is needed. When the measurement is complete, these datasavers can then be assigned to datasets which can be plotted." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Starting experimental run with id: 1. \n", "Starting experimental run with id: 2. \n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "dataset_definition = [DataSetDefinition(name=\"dataset_1\",\n", " independent = [set1, set2],\n", " dependent= [meas2],\n", " experiment=experiment),\n", " DataSetDefinition(name=\"dataset_2\",\n", " independent = [set1, set3],\n", " dependent= [meas3],\n", " experiment=experiment)]\n", "with datasaver_builder(dataset_definition) as datasavers:\n", " for val1, val2, val3 in product(range(5), repeat=3):\n", " set1(val1)\n", " set2(val2)\n", " set3(val3)\n", " meas2_val = meas2()\n", " meas3_val = meas3()\n", " datasavers[0].add_result((set1, val1), (set2, val2), (meas2, meas2_val))\n", " datasavers[1].add_result((set1, val1), (set3, val3), (meas3, meas3_val))\n", " datasets =[datasaver.dataset for datasaver in datasavers]\n", "\n", "plot_dataset(datasets[0])\n", "plot_dataset(datasets[1])" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Using `dond_into`\n", "`dond_into` is a dond-like utility function which performs gridded measurements and writes them to a specified datasaver. Unlike `dond` however, `dond_into` can write to the same datasaver -- and thus the same dataset -- multiple times. There are caveats, though.\n", "1. `dond_into` will not stop a user from measuring the same data point more than once, which may lead to unexpected output shapes, especially when converted to an xarray.\n", "2. `dond_into` does not support `TogetherSweeps` or multiple datasets via grouping parameters. These arguments will raise Exceptions if passed.\n", "\n", "In this example, we take two slices from the same measurement function: one at low resolution, and another at high resolution. Both sets of data are then written to the same dataset.\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Starting experimental run with id: 3. \n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "core_test_measurement = Measurement(name=\"core_test_1\", exp=experiment)\n", "core_test_measurement.register_parameter(set1)\n", "core_test_measurement.register_parameter(meas1, setpoints=[set1])\n", "with core_test_measurement.run() as datasaver:\n", " sweep1 = LinSweep(set1, 0, 5, 11, 0.001)\n", " dond_into(datasaver, sweep1, meas1)\n", "\n", " sweep2 = LinSweep(set1, 10, 20, 100, 0.001)\n", " dond_into(datasaver, sweep2, meas1)\n", "\n", " dataset = datasaver.dataset\n", "plot_dataset(dataset, marker=\".\")" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Using `datasaver_builder` with `dond_into` and `LinSweeper`\n", "\n", "Put together, the `datasaver_builder` and `dond_into` extensions provide a clean way of writing flexible measurement code that too complicated for `dond` yet too simple for the full power of the `Measurement` object.\n", "\n", "In the example below, we also introduce a new class, the `LinSweeper`. This is an iterable that sets the given swept parameter according to the inputs. It is useful for building outer-loops, within which more detailed measurements or functions are called. Once again, arbitrary code blocks can be included, simplifying the equivalent of dond's `enter_actions`, `exit_actions`, and `break_conditions` kwargs. Instead of being arguments, they can be explicitly included in the measurement, and can be nested precisely where the user wants them." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Starting experimental run with id: 4. \n", "Starting experimental run with id: 5. \n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "dataset_definition = [DataSetDefinition(name=\"dataset_1\",\n", " independent = [set1, set2],\n", " dependent= [meas2]),\n", " DataSetDefinition(name=\"dataset_2\",\n", " independent = [set1, set3],\n", " dependent= [meas3])]\n", "with datasaver_builder(dataset_definition) as datasavers:\n", " for _ in LinSweeper(set1, 0, 10, 11, 0.001):\n", " sweep1 = LinSweep(set2, 0, 10, 11, 0.001)\n", " sweep2 = LinSweep(set3, -10, 0, 11, 0.001)\n", " dond_into(datasavers[0], sweep1, meas2, additional_setpoints=(set1,))\n", " dond_into(datasavers[1], sweep2, meas3, additional_setpoints=(set1,))\n", " datasets =[datasaver.dataset for datasaver in datasavers]\n", "\n", "plot_dataset(datasets[0])\n", "plot_dataset(datasets[1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Using `datasaver_builder` and `dond_into` with `ParameterWithSetpoints`\n", "\n", "One final use case includes support for the `ParameterWithSetpoints`. As seen below, the `datasaver_builder` and `dond_into` behave intuitively with these special parameters." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Starting experimental run with id: 6. \n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "dataset_definition = [DataSetDefinition(name=\"dataset_1\",\n", " independent= [set1],\n", " dependent = [pws])]\n", "with datasaver_builder(dataset_definition) as datasavers:\n", " for _ in LinSweeper(set1, 0, 10, 11, 0.001):\n", " dond_into(datasavers[0], pws, additional_setpoints=(set1,))\n", "\n", " datasets =[datasaver.dataset for datasaver in datasavers]\n", "\n", "plot_dataset(datasets[0])" ] } ], "metadata": { "kernelspec": { "display_name": "bringup-dev", "language": "python", "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.6" }, "orig_nbformat": 4, "vscode": { "interpreter": { "hash": "58ba35545862df1654293636174b4c99ecf11cb4e666dc0cc0b7e9739510814a" } } }, "nbformat": 4, "nbformat_minor": 2 }