|
9 | 9 | }, |
10 | 10 | "source": [ |
11 | 11 | "# Example on how to Export\n", |
12 | | - "## from a Local SQLite database to an shared SQLite database or netcdf file" |
| 12 | + "## from a Local SQLite database to an shared SQLite database or netcdf/CSV file" |
13 | 13 | ] |
14 | 14 | }, |
15 | 15 | { |
|
22 | 22 | }, |
23 | 23 | "outputs": [], |
24 | 24 | "source": [ |
25 | | - "import pymongo\n", |
26 | | - "import tempfile\n", |
27 | 25 | "import os\n", |
28 | | - "import time\n", |
29 | | - "import pandas as pd\n", |
30 | 26 | "from qdatalib.tolib import Qdatalib\n", |
31 | 27 | "from qcodes.tests.instrument_mocks import DummyInstrument, DummyInstrumentWithMeasurement\n", |
32 | 28 | "from qcodes import load_or_create_experiment, initialise_or_create_database_at\n", |
33 | | - "from qcodes.utils.dataset.doNd import do1d, do2d\n", |
34 | | - "from qcodes.dataset.plotting import plot_dataset" |
35 | | - ] |
36 | | - }, |
37 | | - { |
38 | | - "cell_type": "code", |
39 | | - "execution_count": 2, |
40 | | - "metadata": { |
41 | | - "slideshow": { |
42 | | - "slide_type": "skip" |
43 | | - } |
44 | | - }, |
45 | | - "outputs": [ |
46 | | - { |
47 | | - "name": "stdout", |
48 | | - "output_type": "stream", |
49 | | - "text": [ |
50 | | - "[WinError 183] Cannot create a file when that file already exists: 'C:\\\\Users\\\\rbcma\\\\AppData\\\\Local\\\\Temp\\\\qdatalib'\n" |
51 | | - ] |
52 | | - } |
53 | | - ], |
54 | | - "source": [ |
55 | | - "# Can be ignored, Setting up temporary files and folder to be used in the example\n", |
56 | | - "TEMP_PATH = tempfile.gettempdir()\n", |
57 | | - "my_path = os.path.join(TEMP_PATH,'qdatalib')\n", |
58 | | - "try:\n", |
59 | | - " os.mkdir(my_path)\n", |
60 | | - "except Exception as e:\n", |
61 | | - " print(e)\n", |
62 | | - " \n", |
63 | | - "\n", |
64 | | - "\n" |
| 29 | + "from qcodes.utils.dataset.doNd import do1d, do2d" |
65 | 30 | ] |
66 | 31 | }, |
67 | 32 | { |
68 | 33 | "cell_type": "markdown", |
69 | | - "metadata": { |
70 | | - "slideshow": { |
71 | | - "slide_type": "slide" |
72 | | - } |
73 | | - }, |
| 34 | + "metadata": {}, |
74 | 35 | "source": [ |
75 | | - "## To use QDataLib we first need a conextion to a MongoDB database" |
| 36 | + "### Instantiate Qdatalib\n", |
| 37 | + "To use Qdatalib you need an instance. If you have not setup Qdatalib yet see the example: setting_up_qdatalib" |
76 | 38 | ] |
77 | 39 | }, |
78 | 40 | { |
79 | 41 | "cell_type": "code", |
80 | | - "execution_count": 3, |
| 42 | + "execution_count": 2, |
81 | 43 | "metadata": { |
82 | 44 | "slideshow": { |
83 | 45 | "slide_type": "-" |
84 | 46 | } |
85 | 47 | }, |
86 | 48 | "outputs": [], |
87 | 49 | "source": [ |
88 | | - "client = pymongo.MongoClient(\"mongodb+srv://rbch:test4RBCH@test.2smqf.mongodb.net/testdb?retryWrites=true&w=majority\")\n", |
89 | | - "db = client['testdb']\n", |
90 | | - "collection = db[\"testcol\"]" |
| 50 | + "qdatalib = Qdatalib()\n", |
| 51 | + "local_path_db = qdatalib.db_local" |
91 | 52 | ] |
92 | 53 | }, |
93 | 54 | { |
94 | 55 | "cell_type": "markdown", |
95 | | - "metadata": { |
96 | | - "slideshow": { |
97 | | - "slide_type": "slide" |
98 | | - } |
99 | | - }, |
100 | | - "source": [ |
101 | | - "## Then we need a and instace of the class Qdatalib\n", |
102 | | - "\n", |
103 | | - "### Passing\n", |
104 | | - "- collection: The collection used to keep track of your data files\n", |
105 | | - "- db_local: The SQLite database to export from\n", |
106 | | - "- db_shared: The SQLite database to export to\n", |
107 | | - "- shared_dir: The Directory where other dataformats should be stored \n" |
108 | | - ] |
109 | | - }, |
110 | | - { |
111 | | - "cell_type": "code", |
112 | | - "execution_count": 4, |
113 | | - "metadata": { |
114 | | - "slideshow": { |
115 | | - "slide_type": "-" |
116 | | - } |
117 | | - }, |
118 | | - "outputs": [], |
| 56 | + "metadata": {}, |
119 | 57 | "source": [ |
120 | | - "shared_dir = \"C:\\\\Users\\\\rbcma\\\\Spin Qubit Dropbox\\\\qdatalib QDev\\\\Test\"\n", |
121 | | - "shared_path_db = os.path.join(shared_dir,'shared.db')\n", |
122 | | - "local_path_db = os.path.join(my_path, 'qdatalib_tutorial.db')\n", |
123 | | - "\n", |
124 | | - "qdatalib = Qdatalib(collection,\n", |
125 | | - " local_path_db,\n", |
126 | | - " shared_path_db,\n", |
127 | | - " shared_dir)" |
| 58 | + "#### To illustrate we run a dummy experiment" |
128 | 59 | ] |
129 | 60 | }, |
130 | 61 | { |
131 | 62 | "cell_type": "code", |
132 | | - "execution_count": 5, |
133 | | - "metadata": { |
134 | | - "slideshow": { |
135 | | - "slide_type": "slide" |
136 | | - } |
137 | | - }, |
138 | | - "outputs": [], |
139 | | - "source": [ |
140 | | - "#Setting up a Dummy experiment\n", |
141 | | - "\n", |
142 | | - "initialise_or_create_database_at(local_path_db)\n", |
143 | | - "exp = load_or_create_experiment(experiment_name='qdatalib',\n", |
144 | | - " sample_name=\"no sample\")\n", |
145 | | - "dac = DummyInstrument('dac', gates=['ch1', 'ch2'])\n", |
146 | | - "dmm = DummyInstrumentWithMeasurement('dmm', setter_instr=dac)" |
147 | | - ] |
148 | | - }, |
149 | | - { |
150 | | - "cell_type": "markdown", |
| 63 | + "execution_count": 3, |
151 | 64 | "metadata": { |
152 | 65 | "slideshow": { |
153 | 66 | "slide_type": "slide" |
154 | 67 | } |
155 | 68 | }, |
156 | | - "source": [ |
157 | | - "#### To illustrate we run a dummy experiment\n" |
158 | | - ] |
159 | | - }, |
160 | | - { |
161 | | - "cell_type": "code", |
162 | | - "execution_count": 6, |
163 | | - "metadata": { |
164 | | - "slideshow": { |
165 | | - "slide_type": "-" |
166 | | - } |
167 | | - }, |
168 | 69 | "outputs": [ |
169 | 70 | { |
170 | 71 | "name": "stdout", |
171 | 72 | "output_type": "stream", |
172 | 73 | "text": [ |
173 | | - "Starting experimental run with id: 13. \n" |
| 74 | + "Upgrading database; v0 -> v1: : 0it [00:00, ?it/s]\n", |
| 75 | + "Upgrading database; v1 -> v2: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 500.99it/s]\n", |
| 76 | + "Upgrading database; v2 -> v3: : 0it [00:00, ?it/s]\n", |
| 77 | + "Upgrading database; v3 -> v4: : 0it [00:00, ?it/s]\n", |
| 78 | + "Upgrading database; v4 -> v5: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 334.15it/s]\n", |
| 79 | + "Upgrading database; v5 -> v6: : 0it [00:00, ?it/s]\n", |
| 80 | + "Upgrading database; v6 -> v7: 100%|██████████████████████████████████████████████████████| 1/1 [00:00<00:00, 90.95it/s]\n", |
| 81 | + "Upgrading database; v7 -> v8: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 501.11it/s]\n", |
| 82 | + "Upgrading database; v8 -> v9: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 334.05it/s]\n" |
174 | 83 | ] |
175 | 84 | } |
176 | 85 | ], |
177 | 86 | "source": [ |
| 87 | + "initialise_or_create_database_at(local_path_db)\n", |
| 88 | + "exp = load_or_create_experiment(experiment_name='qdatalib',\n", |
| 89 | + " sample_name=\"no sample\")\n", |
| 90 | + "dac = DummyInstrument('dac', gates=['ch1', 'ch2'])\n", |
| 91 | + "dmm = DummyInstrumentWithMeasurement('dmm', setter_instr=dac)\n", |
| 92 | + "\n", |
178 | 93 | "data = do1d(dac.ch1, 0, 10, 10, 0.01, dmm.v1, dmm.v2, do_plot=False)\n", |
179 | | - "run_id = data[0].run_id\n" |
| 94 | + "run_id = data[0].run_id" |
180 | 95 | ] |
181 | 96 | }, |
182 | 97 | { |
|
198 | 113 | }, |
199 | 114 | { |
200 | 115 | "cell_type": "code", |
201 | | - "execution_count": 7, |
| 116 | + "execution_count": 5, |
202 | 117 | "metadata": { |
203 | 118 | "slideshow": { |
204 | 119 | "slide_type": "-" |
|
210 | 125 | "output_type": "stream", |
211 | 126 | "text": [ |
212 | 127 | "Upgrading database; v0 -> v1: : 0it [00:00, ?it/s]\n", |
213 | | - "Upgrading database; v1 -> v2: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 251.10it/s]\n", |
| 128 | + "Upgrading database; v1 -> v2: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 334.13it/s]\n", |
214 | 129 | "Upgrading database; v2 -> v3: : 0it [00:00, ?it/s]\n", |
215 | 130 | "Upgrading database; v3 -> v4: : 0it [00:00, ?it/s]\n", |
216 | | - "Upgrading database; v4 -> v5: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 200.44it/s]\n", |
| 131 | + "Upgrading database; v4 -> v5: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 501.11it/s]\n", |
217 | 132 | "Upgrading database; v5 -> v6: : 0it [00:00, ?it/s]\n", |
218 | | - "Upgrading database; v6 -> v7: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 143.24it/s]\n", |
219 | | - "Upgrading database; v7 -> v8: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 250.56it/s]\n", |
220 | | - "Upgrading database; v8 -> v9: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 200.59it/s]\n" |
| 133 | + "Upgrading database; v6 -> v7: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 178.75it/s]\n", |
| 134 | + "Upgrading database; v7 -> v8: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 501.29it/s]\n", |
| 135 | + "Upgrading database; v8 -> v9: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 333.99it/s]\n" |
221 | 136 | ] |
222 | 137 | } |
223 | 138 | ], |
224 | 139 | "source": [ |
225 | 140 | "scientist = 'John doe'\n", |
226 | 141 | "tag = 'double dot',\n", |
227 | 142 | "note = 'This happened',\n", |
228 | | - "dict_exstra = {'my_field': 'Group K', 'my_Score': 2, 'Presented':'group meeting June 24, 2021'}\n", |
| 143 | + "dict_exstra = {'my_field': 'Group NB', 'my_Score': 2, 'Presented':'group meeting June 24, 2021'}\n", |
229 | 144 | "\n", |
230 | 145 | "\n", |
231 | 146 | "qdatalib.extract_run_into_db_and_catalog_by_id(run_id=run_id,\n", |
232 | 147 | " scientist=scientist,\n", |
233 | 148 | " tag=tag,\n", |
234 | 149 | " note=note,\n", |
235 | | - " dict_exstra = {'my_field': 'Group DD', 'my_Score': 2, 'Presented':'group meeting June 24, 2021'})" |
| 150 | + " dict_exstra = dict_exstra)" |
236 | 151 | ] |
237 | 152 | }, |
238 | 153 | { |
|
248 | 163 | }, |
249 | 164 | { |
250 | 165 | "cell_type": "code", |
251 | | - "execution_count": 8, |
| 166 | + "execution_count": 6, |
252 | 167 | "metadata": { |
253 | 168 | "slideshow": { |
254 | 169 | "slide_type": "-" |
|
261 | 176 | " dict_exstra = dict_exstra)" |
262 | 177 | ] |
263 | 178 | }, |
| 179 | + { |
| 180 | + "cell_type": "markdown", |
| 181 | + "metadata": {}, |
| 182 | + "source": [ |
| 183 | + "We can now setup and run another experiment, exporting to the same mongodb database " |
| 184 | + ] |
| 185 | + }, |
| 186 | + { |
| 187 | + "cell_type": "code", |
| 188 | + "execution_count": 7, |
| 189 | + "metadata": {}, |
| 190 | + "outputs": [ |
| 191 | + { |
| 192 | + "name": "stdout", |
| 193 | + "output_type": "stream", |
| 194 | + "text": [ |
| 195 | + "Upgrading database; v0 -> v1: : 0it [00:00, ?it/s]\n", |
| 196 | + "Upgrading database; v1 -> v2: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 501.35it/s]\n", |
| 197 | + "Upgrading database; v2 -> v3: : 0it [00:00, ?it/s]\n", |
| 198 | + "Upgrading database; v3 -> v4: : 0it [00:00, ?it/s]\n", |
| 199 | + "Upgrading database; v4 -> v5: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 334.02it/s]\n", |
| 200 | + "Upgrading database; v5 -> v6: : 0it [00:00, ?it/s]\n", |
| 201 | + "Upgrading database; v6 -> v7: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 195.98it/s]\n", |
| 202 | + "Upgrading database; v7 -> v8: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 334.05it/s]\n", |
| 203 | + "Upgrading database; v8 -> v9: 100%|█████████████████████████████████████████████████████| 1/1 [00:00<00:00, 334.29it/s]\n", |
| 204 | + "Starting experimental run with id: 1. \n" |
| 205 | + ] |
| 206 | + } |
| 207 | + ], |
| 208 | + "source": [ |
| 209 | + "db_local = os.path.join(qdatalib.lib_dir, 'qdatalib_localB.db')\n", |
| 210 | + "db_shared = os.path.join(qdatalib.lib_dir, 'sharedB.db')\n", |
| 211 | + "qdatalib.set_db_local(db_local)\n", |
| 212 | + "\n", |
| 213 | + "initialise_or_create_database_at(db_local)\n", |
| 214 | + "exp = load_or_create_experiment(experiment_name='qdatalibB',\n", |
| 215 | + " sample_name=\"no sampleB\")\n", |
| 216 | + "\n", |
| 217 | + "\n", |
| 218 | + "data = do1d(dac.ch1, 0, 10, 10, 0.01, dmm.v1, dmm.v2, do_plot=False)\n", |
| 219 | + "run_id = data[0].run_id\n", |
| 220 | + "\n", |
| 221 | + "scientist = 'Jane doe'\n", |
| 222 | + "tag = 'sigle dot',\n", |
| 223 | + "note = 'This happened again',\n", |
| 224 | + "dict_exstra = {'my_field': 'Group C', 'my_Score': 10, 'Presented':'group meeting July 24, 2021'}\n", |
| 225 | + "\n", |
| 226 | + "\n", |
| 227 | + "qdatalib.extract_run_into_db_and_catalog_by_id(run_id=run_id,\n", |
| 228 | + " scientist=scientist,\n", |
| 229 | + " tag=tag,\n", |
| 230 | + " note=note,\n", |
| 231 | + " dict_exstra = dict_exstra)" |
| 232 | + ] |
| 233 | + }, |
| 234 | + { |
| 235 | + "cell_type": "markdown", |
| 236 | + "metadata": {}, |
| 237 | + "source": [ |
| 238 | + "Finaly we can also export to csv" |
| 239 | + ] |
| 240 | + }, |
| 241 | + { |
| 242 | + "cell_type": "code", |
| 243 | + "execution_count": 8, |
| 244 | + "metadata": {}, |
| 245 | + "outputs": [], |
| 246 | + "source": [ |
| 247 | + "qdatalib.extract_run_into_csv_and_catalog(run_id=run_id,\n", |
| 248 | + " scientist=scientist,\n", |
| 249 | + " tag=tag,\n", |
| 250 | + " note=note,\n", |
| 251 | + " dict_exstra = dict_exstra)" |
| 252 | + ] |
| 253 | + }, |
264 | 254 | { |
265 | 255 | "cell_type": "code", |
266 | 256 | "execution_count": null, |
|
0 commit comments