Dato un certo run, vogliamo impacchettare tutto in un dataframe. Vogliamo scrivere un dataframe_from_run(DATADIR, NRUN)

In [1]:
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)
(1835, 50)
(1889, 50)
(1908, 50)
(1897, 50)
(1763, 50)
(1814, 50)
(1766, 50)
(1939, 50)
(1693, 50)
(1709, 50)

Ora spostiamo tutto in un modulo (file con estensione .py) e riscriviamo da 0