Dataset processing
In this notebook we show several methods that can be used to process datasets (currently: qcodes.DataSet
).
[1]:
import copy
import qtt
import qtt.utilities.visualization
from qtt.data import plot_dataset
from qtt.data import load_example_dataset
from qtt.dataset_processing import slice_dataset, dataset_dimension, average_dataset, process_dataarray
Load and plot a dataset
[2]:
dataset = load_example_dataset('elzerman_detuning_scan.json')
[3]:
qtt.data.plot_dataset(dataset)
_=qtt.utilities.visualization.plot_vertical_line(150e-6, color='b')
_=qtt.utilities.visualization.plot_vertical_line(350e-6, color='b')
Slice a dataset
[4]:
loading_window = slice_dataset(dataset, [150e-6, 350e-6 ], axis=1)
plot_dataset(loading_window, fig=1)
detuning_window = slice_dataset(dataset, [0.05, 0.10 ], axis=0)
plot_dataset(detuning_window, fig=2)
Average over a dimension
[5]:
averaged_dataset = average_dataset(dataset, axis=0)
plot_dataset(averaged_dataset)
Convert to dictionary format
[6]:
dataset_dictionary=qtt.data.dataset_to_dictionary(averaged_dataset)
print(dataset_dictionary)
{'extra': {'location': '2020-05-14/12-32-40_qtt_generic', '_version': '1.2.2'}, 'metadata': {}, 'arrays': {'signal': {'label': 'signal', 'name': 'signal', 'unit': 'a.u.', 'is_setpoint': False, 'full_name': 'signal', 'array_id': 'signal', 'shape': (1367,), 'ndarray': array([ 0.01288668, -0.29996808, -0.42453639, ..., 0.09534709,
0.08637174, 0.08866183]), 'set_arrays': ('time',)}, 'time': {'label': 'time', 'name': 'time', 'unit': 's', 'is_setpoint': True, 'full_name': 'time', 'array_id': 'time', 'shape': (1367,), 'ndarray': array([0.00000000e+00, 1.02400054e-06, 2.04800108e-06, ...,
1.39673671e-03, 1.39776070e-03, 1.39878469e-03]), 'set_arrays': ()}}}
Process a DataArray
[7]:
process_dataarray(dataset, 'signal', 'signal_squared', lambda x: x**2)
print(dataset)
plot_dataset(dataset, parameter_names=['signal', 'signal_squared'])
DataSet:
location = '2020-05-14/12-32-33_qtt_generic'
<Type> | <array_id> | <array.name> | <array.shape>
Setpoint | detuning | detuning | (240,)
Measured | signal | signal | (240, 1367)
Setpoint | time | time | (240, 1367)
Measured | signal_squared | signal_squared | (240, 1367)
Differentiate
This currently adds a new DataArray to the dataset.
[8]:
differentiated_dataset = qtt.data.diffDataset(dataset)
qtt.data.diffDataset(differentiated_dataset, 'x')
print(differentiated_dataset)
plot_dataset(differentiated_dataset, parameter_names=['diff_dir_x'])
DataSet:
location = '2020-05-14/12-32-33_qtt_generic'
<Type> | <array_id> | <array.name> | <array.shape>
Setpoint | detuning | detuning | (240,)
Measured | signal | signal | (240, 1367)
Setpoint | time | time | (240, 1367)
Measured | signal_squared | signal_squared | (240, 1367)
Measured | diff_dir_y | diff_dir_y | (240, 1367)
Measured | diff_dir_x | diff_dir_x | (240, 1367)
Serialization
We can convert a DataSet
to a plain dictionary and back.
[9]:
dataset_dictionary = qtt.data.dataset_to_dictionary(dataset)
print(dataset_dictionary)
dataset2 = qtt.data.dictionary_to_dataset(dataset_dictionary)
{'extra': {'location': '2020-05-14/12-32-33_qtt_generic', '_version': '1.2.2'}, 'metadata': {}, 'arrays': {'detuning': {'label': 'detuning', 'name': 'detuning', 'unit': 'mV', 'is_setpoint': True, 'full_name': 'detuning', 'array_id': 'detuning', 'shape': (240,), 'ndarray': array([-0.2 , -0.19832636, -0.19665273, -0.19497909, -0.19330543,
-0.19163179, -0.18995816, -0.18828452, -0.18661088, -0.18493724,
-0.1832636 , -0.18158996, -0.17991632, -0.17824268, -0.17656904,
-0.17489539, -0.17322175, -0.17154811, -0.16987447, -0.16820084,
-0.1665272 , -0.16485356, -0.16317992, -0.16150628, -0.15983264,
-0.158159 , -0.15648535, -0.15481171, -0.15313807, -0.15146443,
-0.14979079, -0.14811715, -0.14644352, -0.14476988, -0.14309624,
-0.1414226 , -0.13974896, -0.13807531, -0.13640167, -0.13472803,
-0.13305439, -0.13138075, -0.12970711, -0.12803347, -0.12635984,
-0.12468619, -0.12301255, -0.12133891, -0.11966527, -0.11799163,
-0.11631799, -0.11464435, -0.11297071, -0.11129707, -0.10962343,
-0.10794979, -0.10627615, -0.10460251, -0.10292887, -0.10125523,
-0.09958159, -0.09790795, -0.09623431, -0.09456067, -0.09288703,
-0.09121339, -0.08953975, -0.08786611, -0.08619247, -0.08451883,
-0.08284519, -0.08117155, -0.07949791, -0.07782426, -0.07615063,
-0.07447699, -0.07280335, -0.07112971, -0.06945607, -0.06778242,
-0.06610879, -0.06443515, -0.06276151, -0.06108787, -0.05941423,
-0.05774058, -0.05606695, -0.05439331, -0.05271966, -0.05104603,
-0.04937239, -0.04769874, -0.0460251 , -0.04435147, -0.04267782,
-0.04100418, -0.03933054, -0.0376569 , -0.03598326, -0.03430962,
-0.03263598, -0.03096234, -0.0292887 , -0.02761506, -0.02594142,
-0.02426778, -0.02259414, -0.0209205 , -0.01924686, -0.01757322,
-0.01589958, -0.01422594, -0.0125523 , -0.01087866, -0.00920502,
-0.00753138, -0.00585774, -0.0041841 , -0.00251046, -0.00083682,
0.00083682, 0.00251046, 0.0041841 , 0.00585774, 0.00753138,
0.00920502, 0.01087866, 0.0125523 , 0.01422594, 0.01589958,
0.01757322, 0.01924686, 0.0209205 , 0.02259414, 0.02426778,
0.02594142, 0.02761506, 0.0292887 , 0.03096234, 0.03263598,
0.03430962, 0.03598326, 0.0376569 , 0.03933054, 0.04100418,
0.04267782, 0.04435147, 0.0460251 , 0.04769874, 0.04937239,
0.05104603, 0.05271966, 0.05439331, 0.05606695, 0.05774058,
0.05941423, 0.06108787, 0.06276151, 0.06443515, 0.06610879,
0.06778242, 0.06945607, 0.07112971, 0.07280335, 0.07447699,
0.07615063, 0.07782426, 0.07949791, 0.08117155, 0.08284519,
0.08451883, 0.08619247, 0.08786611, 0.08953975, 0.09121339,
0.09288703, 0.09456067, 0.09623431, 0.09790795, 0.09958159,
0.10125523, 0.10292887, 0.10460251, 0.10627615, 0.10794979,
0.10962343, 0.11129707, 0.11297071, 0.11464435, 0.11631799,
0.11799163, 0.11966527, 0.12133891, 0.12301255, 0.12468619,
0.12635984, 0.12803347, 0.12970711, 0.13138075, 0.13305439,
0.13472803, 0.13640167, 0.13807531, 0.13974896, 0.1414226 ,
0.14309624, 0.14476988, 0.14644352, 0.14811715, 0.14979079,
0.15146443, 0.15313807, 0.15481171, 0.15648535, 0.158159 ,
0.15983264, 0.16150628, 0.16317992, 0.16485356, 0.1665272 ,
0.16820084, 0.16987447, 0.17154811, 0.17322175, 0.17489539,
0.17656904, 0.17824268, 0.17991632, 0.18158996, 0.1832636 ,
0.18493724, 0.18661088, 0.18828452, 0.18995816, 0.19163179,
0.19330543, 0.19497909, 0.19665273, 0.19832636, 0.2 ]), 'set_arrays': ()}, 'signal': {'label': 'signal', 'name': 'signal', 'unit': 'a.u.', 'is_setpoint': False, 'full_name': 'signal', 'array_id': 'signal', 'shape': (240, 1367), 'ndarray': array([[-0.04470825, -0.46432495, -0.56243896, ..., 0.08163452,
0.04119873, 0.07385254],
[-0.00152588, -0.33325195, -0.3894043 , ..., 0.15380859,
-0.00259399, 0.08255005],
[ 0.18203735, -0.2507019 , -0.31784058, ..., 0.00106812,
0.04760742, 0.0227356 ],
...,
[ 0.06408691, -0.4637146 , -0.40924072, ..., 0.2116394 ,
0.16784668, 0.21575928],
[ 0.01800537, -0.32394409, -0.49179077, ..., 0.12954712,
0.03738403, 0.16204834],
[ 0.21179199, -0.02929688, -0.46127319, ..., -0.06973267,
0.10284424, -0.05752563]]), 'set_arrays': ('detuning', 'time')}, 'time': {'label': 'time', 'name': 'time', 'unit': 's', 'is_setpoint': True, 'full_name': 'time', 'array_id': 'time', 'shape': (240, 1367), 'ndarray': array([[0.00000000e+00, 1.02400054e-06, 2.04800108e-06, ...,
1.39673671e-03, 1.39776070e-03, 1.39878469e-03],
[0.00000000e+00, 1.02400054e-06, 2.04800108e-06, ...,
1.39673671e-03, 1.39776070e-03, 1.39878469e-03],
[0.00000000e+00, 1.02400054e-06, 2.04800108e-06, ...,
1.39673671e-03, 1.39776070e-03, 1.39878469e-03],
...,
[0.00000000e+00, 1.02400054e-06, 2.04800108e-06, ...,
1.39673671e-03, 1.39776070e-03, 1.39878469e-03],
[0.00000000e+00, 1.02400054e-06, 2.04800108e-06, ...,
1.39673671e-03, 1.39776070e-03, 1.39878469e-03],
[0.00000000e+00, 1.02400054e-06, 2.04800108e-06, ...,
1.39673671e-03, 1.39776070e-03, 1.39878469e-03]]), 'set_arrays': ('detuning',)}, 'signal_squared': {'label': 'signal', 'name': 'signal_squared', 'unit': 'a.u.', 'is_setpoint': False, 'full_name': 'signal_squared', 'array_id': 'signal_squared', 'shape': (240, 1367), 'ndarray': array([[1.99882779e-03, 2.15597660e-01, 3.16337589e-01, ...,
6.66419510e-03, 1.69733539e-03, 5.45419753e-03],
[2.32830644e-06, 1.11056864e-01, 1.51635706e-01, ...,
2.36570835e-02, 6.72880560e-06, 6.81451056e-03],
[3.31375981e-02, 6.28514448e-02, 1.01022632e-01, ...,
1.14087015e-06, 2.26646662e-03, 5.16907312e-04],
...,
[4.10713255e-03, 2.15031230e-01, 1.67477969e-01, ...,
4.47912375e-02, 2.81725079e-02, 4.65520658e-02],
[3.24193388e-04, 1.04939775e-01, 2.41858163e-01, ...,
1.67824561e-02, 1.39756594e-03, 2.62596644e-02],
[4.48558480e-02, 8.58306885e-04, 2.12772959e-01, ...,
4.86264471e-03, 1.05769373e-02, 3.30919866e-03]]), 'set_arrays': ('detuning', 'time')}, 'diff_dir_y': {'label': 'diff_dir_y', 'name': 'diff_dir_y', 'unit': None, 'is_setpoint': False, 'full_name': 'diff_dir_y', 'array_id': 'diff_dir_y', 'shape': (240, 1367), 'ndarray': array([[ 0.02467441, 0.02317244, 0.02378851, ..., -0.00312518,
-0.00098616, -0.00793283],
[ 0.0235369 , 0.02001656, 0.01507552, ..., -0.00694358,
-0.00068102, -0.007965 ],
[ 0.01254013, 0.01410833, 0.0027335 , ..., -0.00931459,
-0.00212355, -0.00249565],
...,
[ 0.0170326 , 0.01147505, -0.02129182, ..., -0.0197943 ,
0.00859477, -0.00990452],
[ 0.01980447, 0.03466332, -0.01652782, ..., -0.03326314,
0.00596913, -0.02698303],
[ 0.02312505, 0.04703598, -0.009843 , ..., -0.03772412,
0.0043794 , -0.03545641]]), 'set_arrays': ('detuning', 'time')}, 'diff_dir_x': {'label': 'diff_dir_x', 'name': 'diff_dir_x', 'unit': None, 'is_setpoint': False, 'full_name': 'diff_dir_x', 'array_id': 'diff_dir_x', 'shape': (240, 1367), 'ndarray': array([[-6.75441402e-03, -1.24756511e-02, -1.79746588e-02, ...,
-2.15791755e-03, -2.39050588e-03, -2.04945350e-03],
[-6.93263137e-03, -1.22906849e-02, -1.75441497e-02, ...,
-2.50083812e-03, -2.57659379e-03, -2.06919546e-03],
[-4.35955638e-03, -7.98710219e-03, -1.18201167e-02, ...,
-1.93977093e-03, -1.46484033e-03, -7.57196835e-04],
...,
[-7.32889263e-03, -9.56584479e-03, -9.78552642e-03, ...,
1.50182692e-03, 8.72919536e-04, -7.45698221e-05],
[-5.63340545e-03, -8.27244296e-03, -9.04882311e-03, ...,
-7.22117700e-05, -1.01094416e-03, -2.03497390e-03],
[-4.53192539e-03, -7.33912314e-03, -8.56147986e-03, ...,
-8.64665655e-04, -2.00935238e-03, -3.08634345e-03]]), 'set_arrays': ('detuning', 'time')}}}
[ ]: