pyerrors/examples/07_data_management.ipynb

16 KiB

None <html> <head> </head>

Data management

In [1]:
import numpy as np
import pandas as pd
import pyerrors as pe
In [2]:
correlator_data = pe.input.json.load_json("./data/correlator_test")
my_correlator = pe.Corr(correlator_data)
my_correlator.gamma_method()
Data has been written using pyerrors 2.0.0.
Format version 0.1
Written by fjosw on 2022-01-06 11:11:19 +0100 on host XPS139305, Linux-5.11.0-44-generic-x86_64-with-glibc2.29

Description:  Test data for the correlator example
In [3]:
import autograd.numpy as anp
def func_exp(a, x):
    return a[1] * anp.exp(-a[0] * x)
In [4]:
rows = []
for t_start in range(12, 17):
    for t_stop in range(30, 35):
        fr = my_correlator.fit(func_exp, [t_start, t_stop], silent=True)
        fr.gamma_method()
        row = {"t_start": t_start,
               "t_stop": t_stop,
               "datapoints": t_stop - t_start + 1,
               "chisquare_by_dof": fr.chisquare_by_dof,
               "mass": fr[0]}
        rows.append(row)
my_df = pd.DataFrame(rows)
In [5]:
my_df
Out[5]:
t_start t_stop datapoints chisquare_by_dof mass
0 12 30 19 0.057872 0.2218(12)
1 12 31 20 0.063951 0.2221(11)
2 12 32 21 0.064960 0.2223(11)
3 12 33 22 0.066495 0.2224(10)
4 12 34 23 0.066606 0.2225(10)
5 13 30 18 0.051577 0.2215(12)
6 13 31 19 0.060901 0.2219(11)
7 13 32 20 0.063551 0.2221(12)
8 13 33 21 0.066406 0.2223(12)
9 13 34 22 0.067237 0.2224(12)
10 14 30 17 0.052349 0.2213(13)
11 14 31 18 0.063640 0.2218(13)
12 14 32 19 0.066883 0.2220(14)
13 14 33 20 0.070019 0.2223(15)
14 14 34 21 0.070775 0.2224(15)
15 15 30 16 0.056088 0.2213(16)
16 15 31 17 0.067552 0.2218(17)
17 15 32 18 0.070170 0.2221(18)
18 15 33 19 0.072516 0.2224(18)
19 15 34 20 0.072509 0.2225(18)
20 16 30 15 0.059969 0.2214(21)
21 16 31 16 0.070874 0.2220(20)
22 16 32 17 0.072437 0.2223(21)
23 16 33 18 0.073684 0.2225(21)
24 16 34 19 0.072767 0.2227(20)
In [6]:
pe.input.pandas.to_sql(my_df, "mass_table", "my_db.sqlite")
In [8]:
new_df = df = pe.input.pandas.read_sql(f"SELECT t_start, t_stop, mass FROM mass_table WHERE t_start > 13"
                                       ,"my_db.sqlite"
                                       ,auto_gamma=True)
In [9]:
new_df
Out[9]:
t_start t_stop mass
0 14 30 0.2213(13)
1 14 31 0.2218(13)
2 14 32 0.2220(14)
3 14 33 0.2223(15)
4 14 34 0.2224(15)
5 15 30 0.2213(16)
6 15 31 0.2218(17)
7 15 32 0.2221(18)
8 15 33 0.2224(18)
9 15 34 0.2225(18)
10 16 30 0.2214(21)
11 16 31 0.2220(20)
12 16 32 0.2223(21)
13 16 33 0.2225(21)
14 16 34 0.2227(20)
In [ ]:

</html>