def generate_DB_file_with_some_runs(): """ Generate a .db-file with a handful of runs with some interdependent parameters """ # This function will run often on CI and re-generate the .db-files # That should ideally be a deterministic action # (although this hopefully plays no role) np.random.seed(0) v2fixturepath = os.path.join(fixturepath, 'version2') os.makedirs(v2fixturepath, exist_ok=True) path = os.path.join(v2fixturepath, 'some_runs.db') if os.path.exists(path): os.remove(path) from qcodes.dataset.sqlite_base import connect, new_experiment from qcodes.dataset.measurements import Measurement from qcodes.dataset.experiment_container import Experiment from qcodes import Parameter conn = connect(path) exp = Experiment(path) exp._new(name='experiment_1', sample_name='no_sample_1') # Now make some parameters to use in measurements params = [] for n in range(5): params.append( Parameter(f'p{n}', label=f'Parameter {n}', unit=f'unit {n}', set_cmd=None, get_cmd=None)) # Set up an experiment meas = Measurement(exp) meas.register_parameter(params[0]) meas.register_parameter(params[1]) meas.register_parameter(params[2], basis=(params[0], )) meas.register_parameter(params[3], basis=(params[1], )) meas.register_parameter(params[4], setpoints=(params[2], params[3])) # Make a number of identical runs for _ in range(10): with meas.run() as datasaver: for x in np.random.rand(10): for y in np.random.rand(10): z = np.random.rand() datasaver.add_result((params[2], x), (params[3], y), (params[4], z))
def generate_DB_file_with_empty_runs(): """ Generate a DB file that holds empty runs and runs with no interdependencies """ v2fixturepath = os.path.join(fixturepath, 'version2') os.makedirs(v2fixturepath, exist_ok=True) path = os.path.join(v2fixturepath, 'empty_runs.db') if os.path.exists(path): os.remove(path) from qcodes.dataset.sqlite_base import connect from qcodes.dataset.measurements import Measurement from qcodes.dataset.experiment_container import Experiment from qcodes import Parameter from qcodes.dataset.data_set import DataSet conn = connect(path) exp = Experiment(path) exp._new(name='experiment_1', sample_name='no_sample_1') # Now make some parameters to use in measurements params = [] for n in range(5): params.append(Parameter(f'p{n}', label=f'Parameter {n}', unit=f'unit {n}', set_cmd=None, get_cmd=None)) # truly empty run, no layouts table, no nothing dataset = DataSet(path, conn=conn) dataset._new('empty_dataset', exp_id=exp.exp_id) # empty run meas = Measurement(exp) with meas.run() as datasaver: pass # run with no interdeps meas = Measurement(exp) for param in params: meas.register_parameter(param) with meas.run() as datasaver: pass with meas.run() as datasaver: for _ in range(10): res = tuple((p, 0.0) for p in params) datasaver.add_result(*res)