Dato un certo run, vogliamo impacchettare tutto in un dataframe.
Vogliamo scrivere un dataframe_from_run(DATADIR, NRUN)
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from glob import glob
def dataframe_from_run(path, nrun):
# fnames all in
#fnames = glob(path + '/*'+str(nrun)+'*.dat')
fnames = glob(path + '/*multi_00006*.dat')
alldata=[]
for f in fnames:
dd = np.loadtxt(f)
alldata.append(dd)
print(dd.shape)
nomi=[]
for i in range(4):
nomi.append('tele%d'%i)
for i in range(2):
nomi.append('bc%d'%i)
for i in range(12):
nomi.append('clu%d'%i)
for v in ['baseline', 'ph', 'time']:
for i in range(8):
nomi.append('%s%d'%(v,i))
for i in range(5):
nomi.append('gonio%d'%i)
nomi += ['step', 'event_n', 'event_time']
df = pd.DataFrame(np.concatenate(alldata), columns=nomi)
# clean
df=df[(df.tele0>-5) & (df.tele1>-5) & (df.tele2>-5) & (df.tele3>-5) & (df.bc0>-15) & (df.bc0<15) & (df.bc1>-15) & (df.bc1<15)]
return df
datadir='axial_example'
nrun = 300097
df = dataframe_from_run(datadir,300097)
Ora spostiamo tutto in un modulo (file con estensione .py) e riscriviamo da 0