Example on how to Export

from a Local SQLite database to an shared SQLite database or netcdf/CSV file

[1]:
import os
from qdatalib.tolib import Qdatalib
from qcodes.tests.instrument_mocks import DummyInstrument, DummyInstrumentWithMeasurement
from qcodes import load_or_create_experiment, initialise_or_create_database_at
from qcodes.utils.dataset.doNd import do1d, do2d

Instantiate Qdatalib

To use Qdatalib you need an instance. If you have not setup Qdatalib yet see the example: setting_up_qdatalib

[2]:
qdatalib = Qdatalib()
local_path_db = qdatalib.db_local

To illustrate we run a dummy experiment

[3]:
initialise_or_create_database_at(local_path_db)
exp = load_or_create_experiment(experiment_name='qdatalib',
                          sample_name="no sample")
dac = DummyInstrument('dac', gates=['ch1', 'ch2'])
dmm = DummyInstrumentWithMeasurement('dmm', setter_instr=dac)

data = do1d(dac.ch1, 0, 10, 10, 0.01, dmm.v1, dmm.v2, do_plot=False)
run_id = data[0].run_id
Upgrading database; v0 -> v1: : 0it [00:00, ?it/s]
Upgrading database; v1 -> v2: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 500.99it/s]
Upgrading database; v2 -> v3: : 0it [00:00, ?it/s]
Upgrading database; v3 -> v4: : 0it [00:00, ?it/s]
Upgrading database; v4 -> v5: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 334.15it/s]
Upgrading database; v5 -> v6: : 0it [00:00, ?it/s]
Upgrading database; v6 -> v7: 100%|██████████████████████████████████████████████████████| 1/1 [00:00<00:00, 90.95it/s]
Upgrading database; v7 -> v8: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 501.11it/s]
Upgrading database; v8 -> v9: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 334.05it/s]

Extract to Shared SQLite file

Passing - run_id = data[0].run_id - scientist = ‘John doe’ - tag = ‘double dot’, - note = ‘This happened’, - dict_exstra = {‘my_field’: ‘Group A’, ‘my_Score’: 10000}

[5]:
scientist = 'John doe'
tag = 'double dot',
note = 'This happened',
dict_exstra = {'my_field': 'Group NB', 'my_Score': 2, 'Presented':'group meeting June 24, 2021'}


qdatalib.extract_run_into_db_and_catalog_by_id(run_id=run_id,
                                                   scientist=scientist,
                                                   tag=tag,
                                                   note=note,
                                                   dict_exstra =  dict_exstra)
Upgrading database; v0 -> v1: : 0it [00:00, ?it/s]
Upgrading database; v1 -> v2: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 334.13it/s]
Upgrading database; v2 -> v3: : 0it [00:00, ?it/s]
Upgrading database; v3 -> v4: : 0it [00:00, ?it/s]
Upgrading database; v4 -> v5: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 501.11it/s]
Upgrading database; v5 -> v6: : 0it [00:00, ?it/s]
Upgrading database; v6 -> v7: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 178.75it/s]
Upgrading database; v7 -> v8: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 501.29it/s]
Upgrading database; v8 -> v9: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 333.99it/s]

Extract to Shared netcdf file

[6]:
qdatalib.extract_run_into_nc_and_catalog(run_id=run_id,scientist=scientist,
                                                   tag=tag, note=note,
                                                   dict_exstra = dict_exstra)

We can now setup and run another experiment, exporting to the same mongodb database

[7]:
db_local = os.path.join(qdatalib.lib_dir, 'qdatalib_localB.db')
db_shared = os.path.join(qdatalib.lib_dir, 'sharedB.db')
qdatalib.set_db_local(db_local)

initialise_or_create_database_at(db_local)
exp = load_or_create_experiment(experiment_name='qdatalibB',
                          sample_name="no sampleB")


data = do1d(dac.ch1, 0, 10, 10, 0.01, dmm.v1, dmm.v2, do_plot=False)
run_id = data[0].run_id

scientist = 'Jane doe'
tag = 'sigle dot',
note = 'This happened again',
dict_exstra = {'my_field': 'Group C', 'my_Score': 10, 'Presented':'group meeting July 24, 2021'}


qdatalib.extract_run_into_db_and_catalog_by_id(run_id=run_id,
                                                   scientist=scientist,
                                                   tag=tag,
                                                   note=note,
                                                   dict_exstra =  dict_exstra)
Upgrading database; v0 -> v1: : 0it [00:00, ?it/s]
Upgrading database; v1 -> v2: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 501.35it/s]
Upgrading database; v2 -> v3: : 0it [00:00, ?it/s]
Upgrading database; v3 -> v4: : 0it [00:00, ?it/s]
Upgrading database; v4 -> v5: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 334.02it/s]
Upgrading database; v5 -> v6: : 0it [00:00, ?it/s]
Upgrading database; v6 -> v7: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 195.98it/s]
Upgrading database; v7 -> v8: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 334.05it/s]
Upgrading database; v8 -> v9: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 334.29it/s]
Starting experimental run with id: 1.

Finaly we can also export to csv

[8]:
qdatalib.extract_run_into_csv_and_catalog(run_id=run_id,
                                                   scientist=scientist,
                                                   tag=tag,
                                                   note=note,
                                                   dict_exstra =  dict_exstra)
[ ]: