LFR standalone test routines : Bruno's tests¶

  1. Data source
  2. Calibration main stuff
  3. Transfer Functions @F0
  4. Transfer Functions @F1
  5. Transfer Functions @F2
  6. Transfer Functions @F3
  7. End
In [1]:
#%matplotlib inline
%matplotlib notebook

import sys
import os

import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (10, 8)
import numpy as np
import glob

from lib_lfr.load_routines import get_lfr_decom_l1_swf, get_lfr_decom_l1_cwf, get_lfr_decom_l1_asm, \
                                  get_lfr_decom_l1_bp2, get_lfr_decom_l1_bp1
from lib_lfr.calib_routines import calib_one_freq_sinus_swf, calib_one_freq_sinus_cwf, calib_one_freq_sinus_asm
from lib_lfr.bp_routines import sm_3b2e_bp1
from lib_lfr.global_params import *

from lib_signal.spectra import computeFFT

hostname = os.environ['HOSTNAME']
print(hostname)
dir_root = '/WIN/Users/chust/DD CHUST' if hostname == 'PC-CHUST2.lpp.polytechnnique.fr' else \
           '/home/chust/DD pc-p-chust' if hostname == 'pc-p-chust' else \
           '/home/thomas/Labo' if  hostname == 'pc-tango2' else 'ERROR!'  
dir_DATA1 = '/DATA1' if hostname == 'PC-CHUST2.lpp.polytechnnique.fr' else \
           '/home/chust/DATA' if hostname in ['pc-p-chust', 'juno'] else \
           '/home/thomas/Labo/DATA' if hostname == 'pc-tango2' else 'ERROR!'
dir_DATA3 = '/run/media/chust/Samsung_T5'

#dir_data = dir_root + '/Missions/Solar Orbiter/LFR/Ground Segment/Calibration/calib 3'
#dir_data = dir_DATA1 + '/SO/Tests/2022_03_10_Bruno_FSW_3.3.0.7'
dir_data = dir_DATA1 + '/SO/Tests'

dir_plots = '/home/chust/Plots'   
dir_storage = '/home/chust/Storage'   

print('dir_root:', dir_root)
print('dir_data:', dir_data)
/home/chust/venv_py3/lib64/python3.10/site-packages/spacepy/time.py:2365: UserWarning: Leapseconds may be out of date. Use spacepy.toolbox.update(leapsecs=True)
  warnings.warn('Leapseconds may be out of date.'
pc-p-chust
dir_root: /home/chust/DD pc-p-chust
dir_data: /home/chust/DATA/SO/Tests
In [ ]:
import sys
print(sys.path)
In [ ]:
#del sys.modules['lib_lfr.load_routines']
#from lib_lfr.load_routines import get_lfr_decom_l1_asm, get_lfr_decom_l1_swf
#from lib_lfr.load_routines import get_lfr_decom_l1_cwf
#from lib_lfr.load_routines import get_lfr_decom_l1_bp2, get_lfr_decom_l1_bp1

del sys.modules['lib_lfr.bp_routines']
from lib_lfr.bp_routines import sm_3b2e_bp1

#del sys.modules['lib_lfr.calib_routines']
#from lib_lfr.calib_routines import calib_one_freq_sinus_asm
#from lib_lfr.calib_routines import calib_one_freq_sinus_cwf

Data source previous next¶

  1. ftp://ftp.lpp.polytechnique.fr/katra/temp/LFR_Calibration
  2. https://ao.lpp.polytechnique.fr/remote.php/webdav/CTC.zip
  3. https://hephaistos.lpp.polytechnique.fr/redmine/issues/3936#

Calibration main stuff start¶

Routines for transfer functions next¶

In [2]:
def df(freq, F, dtype):
    if dtype == 'CWF':
        if F == 1:
            if freq in [0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1]:
                return 0.01/4
            if freq in [0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.,]:
                return 0.2/4
            return 1.        
        if F == 2:
            if freq in [0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1]:
                return 0.01/4
            if freq in [0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875]:
                return 1/32.
            return 1/20.
        if F == 3:
            if freq in [0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1]:
                return 0.01/4
            if freq in [0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875]:
                return 1/32.
            #if freq in [0.2, 0.4, 0.6, 0.8, 1., 1.2, 1.4, 1.6, 1.8]:
                return 0.2/4         
            return 1/20.        
    if dtype == 'SWF':
        if F == 0:
            if freq in [12., 36., 60., 84.]:
                return 12.
            if freq in [24., 72.]:
                return 24.
            if freq in [48.]:
                return 48.
            return 96.
        if F == 1:            
            if freq%16 == 0:
                return 16.
            if freq%4 == 0:
                return 4.
            if freq%2 == 0:
                return 2.
            if freq%3 == 0:
                return 3.
            if freq%5 == 0:
                return 5.
            if freq%7 == 0:
                return 7.
            if freq%11 == 0:
                return 11.
            if freq == 1.:
                return 2.
            if is_prime(int(freq)):
                return freq         
            
def fig_stepSWF(stepswf, signals, F, nwidth=128*2, freq_range=None):
    isignals = [name2index_wf(ch) for (ch, a) in signals]
    fig=plt.figure()
    for i in isignals:
        nn = int(nwidth) if nwidth <= 1024 else 1024
        index=np.arange(1024-nn, 1024+nn)
        plt.plot(index, stepswf['data_block'][1024-nn:1024+nn,i], linewidth=2, label=chs_wf[i], color=colors_wf[i])
    plt.legend(loc='best')                        
    plt.xlabel('Time (index)', fontsize=12)
    plt.ylabel('Waveform (count)', fontsize=14)
    plt.title("SWF @F%d for this step (zoom in the middle)"%F , fontsize=14)      
    fig=plt.figure()
    for i in isignals:
        fft = computeFFT(stepswf['data_block'][:,i], fs=LFR_Fs[F], window=False, removeMean=False)        
        plt.plot(fft[0], fft[1], marker=markers_wf[i],label=chs_wf[i], color=colors_wf[i])
    plt.semilogy()
    plt.legend(loc='best')   
    if freq_range == None:
        xrange = (0,LFR_Fs[F]/2)
    else:
        xrange = freq_range     
    plt.xlim(freq_range)        
    plt.xlabel('Frequency (Hz)', fontsize=12)
    plt.ylabel('Modulus (count)', fontsize=14)
    plt.title("corresponding 2048-point FFT", fontsize=14)       
    plt.show()    

def fig_stepCWF(stepcwf, signals, F, i1=None, i2=None):    
    isignals = [name2index_wf(ch) for (ch, a) in signals]
    fig=plt.figure()
    for i in isignals:
        plt.plot(stepcwf['relative_time'][:], stepcwf['data_block'][:,i], linewidth=2, 
                 label=chs_wf[i], color=colors_wf[i])
    plt.legend(loc='best')                        
    plt.xlabel('Relative time (s)', fontsize=12)
    plt.ylabel('Waveform (count)', fontsize=14)
    plt.title("CWF @F%d retained for this step"%F, fontsize=14)       
    fig=plt.figure()
    for i in isignals:
        fft = computeFFT(stepcwf['data_block'][i1:i2,i], fs=LFR_Fs[F], window=False, removeMean=False)                
        plt.plot(fft[0], fft[1], marker=markers_wf[i],label=chs_wf[i], color=colors_wf[i])
        print('comp: {:2s}  offset: {:.2f} counts'.format(index2name_wf(i), fft[1][0]))
    plt.semilogy()
    #plt.loglog()    
    plt.legend(loc='best')    
    plt.xlim((0, LFR_Fs[F]/2))        
    plt.xlabel('Frequency (Hz)', fontsize=12)
    plt.ylabel('Modulus (count)', fontsize=14)
    plt.title("corresponding %d-point FFT"%len(stepcwf['data_block'][i1:i2,0]), fontsize=14)      
    plt.show()  
    
def buildCalib_Bruno(files, freqs, datatype='SWF_F0', echo=True, fig=False, icwf_offset=0, i1=0, i2=None,                    
                     signals=[('B1', 1.), ('B2', 1.), ('B3', 1.), ('E1', 1.), ('E2', 1.), ('V', 1.)]):
    F = int(datatype[-1]) 
    dtype = datatype[:3] 
    if echo: 
        print("Number of files: {}".format(len(files)))
        print("Number of freqs: {}".format(len(freqs)))        
    calib = []    
    for istep, (file, freq) in enumerate(zip(files, freqs)):
        if dtype == 'SWF':         
            swf_l1 = get_lfr_decom_l1_swf(file)                   
            if echo:
                print()
                print('Snapshot/Step index: {} (freq = {}Hz)'.format(istep, freq))            
            if fig: fig_stepSWF(swf_l1, signals, F)
            calib.append( calib_one_freq_sinus_swf(swf_l1, freq, df_asked=df(freq, F, dtype), signals=signals, 
                                                   calib_max=False, echo=echo) )
        elif dtype == 'CWF':     
            cwf_l1 = get_lfr_decom_l1_cwf(file)
            cwf_l1['data_block'] = cwf_l1['data_block'][icwf_offset:, :] 
            cwf_l1['relative_time'] = cwf_l1['relative_time'][icwf_offset:]            
            if echo:
                print()
                print('Step index: {} (freq = {}Hz)'.format(istep, freq))                
            if fig: fig_stepCWF(cwf_l1, signals, F, i1=i1, i2=i2)
            calib.append( calib_one_freq_sinus_cwf(cwf_l1, freq, df_asked=df(freq, F, dtype), signals=signals, 
                                                   calib_max=False, echo=echo) )
        elif dtype == 'ASM':     
            asm_l1 = get_lfr_decom_l1_asm(file)
            #asm_l1['asm_idl'] = asm_l1['asm_idl'][i1:i2, ...] 
            #asm_l1['relative_time'] = asm_l1['relative_time'][i1:i2] 
            #asm_l1['packet_headers'] = asm_l1['packet_headers'][i1*3:i2*3, :]             
            if echo:
                print()
                print('Step index: {} (freq = {}Hz)'.format(istep, freq))                
            #if fig: fig_stepASM(cwf_l1, signals, F, i1=i1, i2=i2)
            calib.append( calib_one_freq_sinus_asm(asm_l1, freq, signals=signals, echo=echo, iasm=i1) )  
            
    return calib
            
def fig_TF_LFR_allRel(calib, echo=True, fname=None, logx=None, dB=None, unwrap=True,
                      phi_range=None, rho_range=None, ampl_range=None, freq_range=None,
                      figsize=(14,16)):
    F = int(calib[0]['datatype'][-1]) 
    dtype = calib[0]['datatype'][:3]
    if echo:
        print("nb of frequencies:  %d"%len(calib))
        print('calib[0]:')
        print(calib[0])
    chs = calib[0]['comp'] 
    icomp = [name2index_sm(ch) for ch in chs]        
    f_injected = np.array([cal['f_injected'] for cal in calib])
    calib_V2count = np.array([cal['calib_V2count'] for cal in calib])
    cross_norm = np.array([cal['cross_norm'] for cal in calib])
    status_auto = [cal['status_auto'] for cal in calib]
    status_param = [cal['status_param'] for cal in calib]        
    ncomp = len(icomp)   
    fig1, axarr1 = plt.subplots(3, 1, figsize=figsize)
    fig1.subplots_adjust(hspace=.08)    
    axarr1[0].set_title("LFR Transfer Functions @F%d (%s)"%(F,dtype), fontsize=18)
    for j in range(ncomp):
        if dB:
            axarr1[0].plot(f_injected, 20*np.log10(calib_V2count[:,j]), linewidth=2, marker=markers_sm[icomp[j]], 
                           label=chs_sm[icomp[j]], color=colors_sm[icomp[j]])
        else:    
            axarr1[0].plot(f_injected, calib_V2count[:,j], linewidth=2, marker=markers_sm[icomp[j]], 
                           label=chs_sm[icomp[j]], color=colors_sm[icomp[j]])                    
    #axarr1[0].semilogy()
    #axarr1[0].loglog()  
    if logx:
        for j in range(0,2): axarr1[j].semilogx()        
    xrange = (0,LFR_Fs[F]/2) if freq_range == None else freq_range
    if ampl_range == None: ampl_range = [[4000,9000], [1000,9000], [10,9000]][F]                  
             
    if dB:
        axarr1[0].set_ylim(np.rint(20*np.log10(ampl_range)+np.array([-0.5,0.5])))
        axarr1[0].set_ylabel('Amplitude (dB[count/V])', fontsize=14)
    else:
        axarr1[0].set_ylim(ampl_range)
        axarr1[0].set_ylabel('Amplitude (count/V)', fontsize=14)        
    cross_names = [chs_sm[i]+chs_sm[j] for i in icomp for j in icomp if j > i ]
    ncomp_cross = len(cross_names)    
    cross_markers = ncomp_cross*['']
    phi_cross = np.array([[np.angle(cross_n[l], deg=False) for l in range(ncomp_cross)] for cross_n in cross_norm])  
    rho_cross = np.array([[abs(cross_n[l]) for l in range(ncomp_cross)] for cross_n in cross_norm])
    for l in range(ncomp_cross):
        cross_markers[l] = '8' if 'B' not in cross_names[l] else '+'
        if 'B' in cross_names[l] and ('E' in cross_names[l] or 'V' in cross_names[l]): cross_markers[l] = ' '             
        phi_cross[:,l] = np.rad2deg(np.unwrap(phi_cross[:,l]) if unwrap else phi_cross[:,l])
        axarr1[1].plot(f_injected, phi_cross[:,l], linewidth=2, label=cross_names[l], marker=cross_markers[l])  
        axarr1[2].plot(f_injected, rho_cross[:,l]-1+l, linewidth=2, label=cross_names[l], marker=cross_markers[l])                  
    axarr1[1].set_ylabel('Relative phase (°)', fontsize=14)
    axarr1[2].set_ylabel('Correlation coefficient (rho-1+i)', fontsize=14)
    axarr1[2].set_xlabel('Frequency (Hz)', fontsize=12)                
    for j in range(0,3):
        axarr1[j].set_xlim(xrange)
        axarr1[j].legend(loc='best')   
    axarr1[1].set_ylim([-200,+200]) 
    axarr1[2].set_ylim([-1, ncomp_cross])     
    if phi_range != None: axarr1[1].set_ylim(phi_range)
    if rho_range != None: axarr1[2].set_ylim(rho_range)        
    if fname != None:
        fname = fname.replace('.svg','_F%d.svg'%F)
        fig1.savefig(fname.replace('.svg','_dBlog.svg') if (dB and logx) else \
                     fname.replace('.svg','_dB.svg') if dB else fname.replace('.svg','_logx.svg') if logx else \
                     fname, bbox_inches='tight', pad_inches=0.2)            
    plt.show()        
    if echo:
        print("Transfert fonction amplitudes (count/V):")                
        str_head = "     Freq     "
        str_cal = "{:9.3f} Hz => ["
        str_s_auto = "["                
        for j in range(ncomp):
            str_head += "      {:2s}"
            str_cal += " {:7.2f}"
            str_s_auto += " {:s}"                                                
        str_head += "        auto status " + (ncomp)*" " + " param status"   
        str_cal += " ] "
        str_s_auto += " ] "
        str_s_param = (6-ncomp)*" " + "  [ {:s} ]"
        print(str_head.format(*chs)) 
        for f, cal , s_auto, s_param in zip(f_injected, calib_V2count, status_auto, status_param):
            print(str_cal.format(f, *cal) + str_s_auto.format(*s_auto) + str_s_param.format(s_param))  
        str_head_rho = "     Freq        "
        str_head_phi = "     Freq        "
        str_rho = "{:9.3f} Hz => ["
        str_phi = "{:9.3f} Hz => ["        
        for l in range(ncomp_cross):
            str_head_rho += "  {:4s}"
            str_head_phi += "    {:4s}"            
            str_rho += " {:5.3f}"
            str_phi += " {:7.2f}"
        str_rho += " ] "
        str_phi += " ]"
        print()            
        print("Normalized crosscorrelation coefficients:")                      
        print(str_head_rho.format(*cross_names))
        for f, rho in zip(f_injected, rho_cross):        
            print(str_rho.format(f, *rho))  
        print()    
        print("Relative phases (°):")                          
        print(str_head_phi.format(*cross_names))                
        for f, phi in zip(f_injected, phi_cross):        
            print(str_phi.format(f, *phi))
            
def fig_diff_TF_LFR_allrel(calib1, calib2, echo=True, fname=None, logx=None, dB=None,
                           phi_range=None, rho_range=None, ampl_range=None, freq_range=None,
                           figsize=(14,16)):
    F = int(calib1[0]['datatype'][-1]) 
    dtype1 = calib1[0]['datatype'][:3]
    dtype2 = calib2[0]['datatype'][:3]
    if echo:
        print("nb of frequencies:  %d"%len(calib1))
        print('calib1[0]:')
        print(calib1[0])
        print('calib2[0]:')
        print(calib2[0])        
    chs = calib1[0]['comp'] 
    icomp = [name2index_sm(ch) for ch in chs]        
    f_injected = np.array([cal['f_injected'] for cal in calib1])
    calib_V2count1 = np.array([cal['calib_V2count'] for cal in calib1])
    calib_V2count2 = np.array([cal['calib_V2count'] for cal in calib2])
    cross_norm1 = np.array([cal['cross_norm'] for cal in calib1])
    cross_norm2 = np.array([cal['cross_norm'] for cal in calib2])   
    ncomp = len(icomp)   
    fig1, axarr1 = plt.subplots(3, 1, figsize=figsize)
    fig1.subplots_adjust(hspace=.08)    
    axarr1[0].set_title("LFR TF relative differences between %s and %s @F%d"%(dtype1, dtype2, F), fontsize=18)
    for j in range(ncomp):
        if dB:
            axarr1[0].plot(f_injected, 20*np.log10(calib_V2count1[:,j])-20*np.log10(calib_V2count2[:,j]), 
                           linewidth=2, marker=markers_sm[icomp[j]], label=chs_sm[icomp[j]], color=colors_sm[icomp[j]])
        else:    
            axarr1[0].plot(f_injected, 100*(calib_V2count1[:,j]-calib_V2count2[:,j])/calib_V2count2[:,j], linewidth=2, 
                           marker=markers_sm[icomp[j]], label=chs_sm[icomp[j]], color=colors_sm[icomp[j]])                    
    #axarr1[0].semilogy()
    #axarr1[0].loglog()  
    if logx:
        for j in range(0,2): axarr1[j].semilogx()        
    xrange = (0,LFR_Fs[F]/2) if freq_range == None else freq_range
    if ampl_range == None: ampl_range = [-10,+10] if not dB else [-6, 6]               
             
    if dB:
        axarr1[0].set_ylim(np.rint(20*np.log10(ampl_range)+np.array([-0.5,0.5])))
        axarr1[0].set_ylabel('delta amplitude (dB)', fontsize=14)
    else:
        axarr1[0].set_ylim(ampl_range)
        axarr1[0].set_ylabel('delta amplitude (%)', fontsize=14)        
    cross_names = [chs_sm[i]+chs_sm[j] for i in icomp for j in icomp if j > i ]
    ncomp_cross = len(cross_names)    
    cross_markers = ncomp_cross*['']
    phi_cross1 = np.array([[np.angle(cross_n[l], deg=True) for l in range(ncomp_cross)] for cross_n in cross_norm1])  
    phi_cross2 = np.array([[np.angle(cross_n[l], deg=True) for l in range(ncomp_cross)] for cross_n in cross_norm2])  
    rho_cross1 = np.array([[abs(cross_n[l]) for l in range(ncomp_cross)] for cross_n in cross_norm1])
    rho_cross2 = np.array([[abs(cross_n[l]) for l in range(ncomp_cross)] for cross_n in cross_norm2])
    for l in range(ncomp_cross):
        cross_markers[l] = '8' if 'B' not in cross_names[l] else '+'
        if 'B' in cross_names[l] and ('E' in cross_names[l] or 'V' in cross_names[l]): cross_markers[l] = ' '             
        axarr1[1].plot(f_injected, phi_cross1[:,l]-phi_cross2[:,l], linewidth=2, 
                       label=cross_names[l], marker=cross_markers[l])  
        axarr1[2].plot(f_injected, 100*(rho_cross1[:,l]-rho_cross2[:,l])/rho_cross2[:,l], linewidth=2, 
                       label=cross_names[l], marker=cross_markers[l])                  
    axarr1[1].set_ylabel('delta phi (°)', fontsize=14)
    axarr1[2].set_ylabel('delta rho (%)', fontsize=14)
    axarr1[2].set_xlabel('Frequency (Hz)', fontsize=12)                
    for j in range(0,3):
        axarr1[j].set_xlim(xrange)
        axarr1[j].legend(loc='best')   
    axarr1[1].set_ylim(-200,+200)  
    axarr1[2].set_ylim(-1,+1)  
    if phi_range != None: axarr1[1].set_ylim(phi_range)
    if rho_range != None: axarr1[2].set_ylim(rho_range)
    if fname != None:
        fname = fname.replace('.svg','_F%d.svg'%F)
        fig1.savefig(fname.replace('.svg','_dBlog.svg') if (dB and logx) else \
                     fname.replace('.svg','_dB.svg') if dB else fname.replace('.svg','_logx.svg') if logx else \
                     fname, bbox_inches='tight', pad_inches=0.2)            
    plt.show()      
    

Routines for basic parameters start next¶

In [ ]:
def compare_bp2_asm_old(file_bp2, file_asm, l_bp2=0, l_asm=0, dl_bp2=1, ifreq_bp2=None, echo=False):    
    bp2 = get_lfr_decom_l1_bp2(file_bp2)
    asm = get_lfr_decom_l1_asm(file_asm)
    if echo:
        print('bp2 mode:', bp2['mode'], '@F%d'%(LFR_Fs2F(bp2['fe'])))
        print('bp2 time:', bp2['relative_time'] + bp2['start_time'])
        print('asm time:', asm['relative_time'] + asm['start_time'])
        print()
        print('l_bp2: %s and dl_bp2: %s, l_asm: %s'%(l_bp2, dl_bp2, l_asm))
    
    nfreq_bp2, dim_bp2, _ = bp2['bp2_idl'][l_bp2, ...].shape    
    nfreq_asm, dim_asm, _ = asm['asm_idl'][l_asm, ...].shape
    n_asm_ave = int(nfreq_asm/nfreq_bp2)
    if echo:
        print()
        print('dim_bp2: %d, dim_asm: %d'%(dim_bp2, dim_asm))
        print('nfreq_bp2: %d, nfreq_asm: %d => n_asm_ave = %d'%(nfreq_bp2, nfreq_asm, n_asm_ave))
        print()
    
    asm_idl_ave = np.zeros((nfreq_bp2, dim_asm, dim_asm), dtype=complex)
    for i in range(nfreq_bp2):
        asm_idl_ave[i, ...] = np.sum(asm['asm_idl'][l_asm, i*n_asm_ave:i*n_asm_ave+n_asm_ave, ...], 
                                     axis=0) / n_asm_ave    
        
    bp2_idl_ave =  np.sum(bp2['bp2_idl'][l_bp2:l_bp2+dl_bp2, ...], axis=0) / dl_bp2    
        
    diff = (asm_idl_ave - bp2_idl_ave) / asm_idl_ave
    q = abs(diff)
    imax = np.nanargmax(q)
    imin = np.nanargmin(q)       
    if echo:
        print('max relative difference: %5.2f %% for:'%(100*q.flatten()[imax]))
        print(asm_idl_ave.flatten()[imax], bp2_idl_ave.flatten()[imax])    
        print('min relative difference: %5.2e %% for:'%(100*q.flatten()[imin]))
        print(asm_idl_ave.flatten()[imin], bp2_idl_ave.flatten()[imin])     
        
    if echo and ifreq_bp2 != None:
        print()
        print('bp2[\'freq\']'+'[ifreq_bp2=%d] : %d Hz'%(ifreq_bp2, bp2['freq'][ifreq_bp2]))
        print('asm_idl_ave[ifreq_bp2=%d, ...]'%(ifreq_bp2))
        print(asm_idl_ave[ifreq_bp2, ...])
        print()
        print('corresponding relative difference')
        print(100*abs(diff[ifreq_bp2, ...])) 
        print('max: %5.2f %%'%(np.max(100*abs(diff[ifreq_bp2, ...]))))
              
    return 100*q.flatten()[imax] 

def diff(item1, item2, first=True, relative=True, digit=17, outputs=1, echo=False):
    diff = (item1 - item2) / (item1 if first else item2) if relative else item1 - item2
    q = abs(diff)*100 if relative else abs(diff)
    imax = np.nanargmax(q)
    imin = np.nanargmin(q)         
    if echo:        
        format_item1_item2 = '(item1 {}:.{}f{}   item2 {}:.{}f{})'.format('{', str(digit), '}', '{', str(digit), '}')
        format_max_diff = 'max relative difference: %.3f %%' if relative else 'max difference: %.3f'
        format_min_diff = 'min relative difference: %.3e %%' if relative else 'min difference: %.3e'        
        print(format_max_diff%(q.flatten()[imax]))
        print(format_item1_item2.format(item1.flatten()[imax], item2.flatten()[imax]))  
        print(format_min_diff%(q.flatten()[imin]))
        print(format_item1_item2.format(item1.flatten()[imin], item2.flatten()[imin]))          
    return q.flatten()[imax] if outputs == 1 else (q.flatten()[imax], imax) 

def compare_bp1_bp2(file_bp1, file_bp2, l_bp1=0, l_bp2=0, ifreq_bp1=None, echo=False):    
    bp1 = get_lfr_decom_l1_bp1(file_bp1)
    bp2 = get_lfr_decom_l1_bp2(file_bp2)
    if echo:
        print('bp1 mode:', bp1['mode'], '@F%d'%(LFR_Fs2F(bp1['fe'])))
        print('bp1 time:', bp1['relative_time'] + bp1['start_time'])
        print('bp2 mode:', bp2['mode'], '@F%d'%(LFR_Fs2F(bp2['fe'])))
        print('bp2 time:', bp2['relative_time'] + bp2['start_time'])
        print()
        print('l_bp1: %d, l_bp2: %d'%(l_bp1, l_bp2))
    
    nspec_bp1, nfreq_bp1 = bp1['dop'].shape    
    nspec_bp2, nfreq_bp2, dim_bp2, _ = bp2['bp2_idl'].shape    
    if echo:
        print()
        print('nspec_bp1: %3d, nfreq_bp1: %3d'%(nspec_bp1, nfreq_bp1))
        print('nspec_bp2: %3d, nfreq_bp2: %3d'%(nspec_bp2, nfreq_bp2))
        print()
        
    bp1_from_bp2 = sm_3b2e_bp1(bp2['bp2_idl'], echo=echo, k45_pe=1.+1.j)    
    
    if ifreq_bp1 == None:
        i1, i2 = 0, nfreq_bp1
        if echo: print('\n#### compare for all frequencies ####')
    else:
        i1, i2 = ifreq_bp1, ifreq_bp1+1
        if echo: 
            print('\n#### compare for bp1[\'freq\']'+'[ifreq_bp1=%d] : %d Hz ###'% \
                  (ifreq_bp1, bp1['freq'][ifreq_bp1]))    
    
    if echo: print('\nDifference for trace_sm_b:')
    d_psd_b = diff(bp1['psd_be'][l_bp1,i1:i2,0], bp1_from_bp2['psd_b_bp1'][l_bp2,i1:i2], digit=10, echo=echo) 

    if echo: print('\nDifference for trace_sm_e:')
    d_psd_e = diff(bp1['psd_be'][l_bp1,i1:i2,1], bp1_from_bp2['psd_e_bp1'][l_bp2,i1:i2], digit=10, echo=echo) 

    if echo: print('\nDifference for degree_polar_3b:')
    d_dop = diff(bp1['dop'][l_bp1,i1:i2], bp1_from_bp2['dop_bp1'][l_bp2,i1:i2], digit=10, echo=echo)

    if echo: print('\nDifference for wave_ellipti_3b:')
    d_ellip = diff(bp1['ellip'][l_bp1,i1:i2], bp1_from_bp2['ellip_bp1'][l_bp2,i1:i2], digit=10, echo=echo)

    if echo: print('\nDifference for wave_nvector_3b:')
    d_nvec, imax = diff(bp1['nvec'][l_bp1,i1:i2,:], bp1_from_bp2['nvec_bp1'][l_bp2,i1:i2,:], 
                        relative=False, outputs=2, digit=10, echo=echo)    
    if echo: print('imax corresponding nvec component:',  imax%3)    
    
    if echo: print('\nDifference for sx:')
    d_sx = diff(bp1['sx'][l_bp1,i1:i2,0], bp1_from_bp2['sx_bp1'][l_bp2,i1:i2], digit=10, echo=echo)
    
    if echo: print('\nDifference for sx arg:')
    d_sx_arg, imax = diff(bp1['sx'][l_bp1,i1:i2,1], bp1_from_bp2['sx_arg_bp1'][l_bp2,i1:i2], 
                          relative=False, digit=10, outputs=2, echo=echo)
    if echo:        
        format_item1_item2 = '(item1 {}:.{}f{}   item2 {}:.{}f{})'.format('{', str(10), '}', '{', str(10), '}')
        format_max_diff = 'max difference: %.2f'
        print('corresponding sx:' )
        print(format_item1_item2.format(bp1['sx'][l_bp1,i1:i2,0].flatten()[imax], 
                                        bp1_from_bp2['sx'][l_bp2,i1:i2].flatten()[imax]))
        
    if echo: print('\nDifference for vphi:')
    d_vphi = diff(bp1['vphi'][l_bp1,i1:i2,0], bp1_from_bp2['vphi_bp1'][l_bp2,i1:i2], digit=10, echo=echo)
   
    if echo: print('\nDifference for vphi arg:')
    d_vphi_arg, imax = diff(bp1['vphi'][l_bp1,i1:i2,1], bp1_from_bp2['vphi_arg_bp1'][l_bp2,i1:i2], 
                            relative=False, digit=10, outputs=2, echo=echo)
    if echo:                
        print('correponding vphi:' )
        print(format_item1_item2.format(bp1['vphi'][l_bp1,i1:i2,0].flatten()[imax], 
                                        bp1_from_bp2['vphi'][l_bp2,i1:i2].flatten()[imax]))
        
    return d_psd_b, d_psd_e, d_dop, d_ellip, d_nvec, d_sx, d_sx_arg, d_vphi, d_vphi_arg    
    
def compare_bp1_asm(file_bp1, file_asm, l_bp1=0, l_asm=0, ifreq_bp1=None, echo=False):    
    bp1 = get_lfr_decom_l1_bp1(file_bp1)
    asm = get_lfr_decom_l1_asm(file_asm)
    if echo:
        print('bp1 mode:', bp1['mode'], '@F%d'%(LFR_Fs2F(bp1['fe'])))
        print('bp1 time:', bp1['relative_time'] + bp1['start_time'])
        print('asm mode:', asm['mode'], '@F%d'%(LFR_Fs2F(asm['fe'])))
        print('asm time:', asm['relative_time'] + asm['start_time'])
        print()
        print('l_bp1: %d, l_asm: %d'%(l_bp1, l_asm))
    
    nspec_bp1, nfreq_bp1 = bp1['dop'].shape    
    nspec_asm, nfreq_asm, dim_asm, _ = asm['asm_idl'].shape   
    n_asm_ave = int(nfreq_asm/nfreq_bp1)
    if echo:
        print()
        print('nspec_bp1: %3d, nfreq_bp1: %3d'%(nspec_bp1, nfreq_bp1))
        print('nspec_asm: %3d, nfreq_asm: %3d'%(nspec_asm, nfreq_asm))
        print('\nn_asm_ave = nfreq_asm/nfreq_bp1 = %d'%(n_asm_ave))        
        print()        
    asm_idl_ave = np.zeros((nspec_asm, nfreq_bp1, dim_asm, dim_asm), dtype=complex)
    for i in range(nfreq_bp1):
        asm_idl_ave[:, i, ...] = np.sum(asm['asm_idl'][:, i*n_asm_ave:i*n_asm_ave+n_asm_ave, ...], 
                                        axis=1) / n_asm_ave                    
    bp1_from_asm = sm_3b2e_bp1(asm_idl_ave, echo=echo, k45_pe=1.+1.j)  
    
    if ifreq_bp1 == None:
        i1, i2 = 0, nfreq_bp1
        if echo: print('\n#### compare for all frequencies ####')        
    else:
        i1, i2 = ifreq_bp1, ifreq_bp1+1
        if echo: print('\n#### compare for bp1[\'freq\']'+'[ifreq_bp1=%d] : %d Hz ###'% \
                       (ifreq_bp1, bp1['freq'][ifreq_bp1]))    

    if echo: print('\nDifference for trace_sm_b:')
    d_psd_b = diff(bp1['psd_be'][l_bp1,i1:i2,0], bp1_from_asm['psd_b_bp1'][l_asm,i1:i2], digit=10, echo=echo) 

    if echo: print('\nDifference for trace_sm_e:')
    d_psd_e = diff(bp1['psd_be'][l_bp1,i1:i2,1], bp1_from_asm['psd_e_bp1'][l_asm,i1:i2], digit=10, echo=echo) 

    if echo: print('\nDifference for degree_polar_3b:')
    d_dop = diff(bp1['dop'][l_bp1,i1:i2], bp1_from_asm['dop_bp1'][l_asm,i1:i2], digit=10, echo=echo)  

    if echo: print('\nDifference for wave_ellipti_3b:')
    d_ellip = diff(bp1['ellip'][l_bp1,i1:i2], bp1_from_asm['ellip_bp1'][l_asm,i1:i2], digit=10, echo=echo)

    if echo: print('\nDifference for wave_nvector_3b:')
    d_nvec, imax = diff(bp1['nvec'][l_bp1,i1:i2,:], bp1_from_asm['nvec_bp1'][l_asm,i1:i2,:], 
                        relative=False, outputs=2, digit=10, echo=echo)    
    if echo: print('imax corresponding nvec component:',  imax%3)
       
    if echo: print('\nDifference for sx:')
    d_sx = diff(bp1['sx'][l_bp1,i1:i2,0], bp1_from_asm['sx_bp1'][l_asm,i1:i2], digit=10, echo=echo)
    
    if echo: print('\nDifference for sx arg:')
    d_sx_arg, imax = diff(bp1['sx'][l_bp1,i1:i2,1], bp1_from_asm['sx_arg_bp1'][l_asm,i1:i2], 
                          relative=False, digit=10, outputs=2, echo=echo)
    if echo:        
        format_item1_item2 = '(item1 {}:.{}f{}   item2 {}:.{}f{})'.format('{', str(10), '}', '{', str(10), '}')
        format_max_diff = 'max difference: %.2f'
        print('corresponding sx:' )
        print(format_item1_item2.format(bp1['sx'][l_bp1,i1:i2,0].flatten()[imax], 
                                        bp1_from_asm['sx'][l_asm,i1:i2].flatten()[imax]))
              
    if echo: print('\nDifference for vphi bp1:')
    d_vphi = diff(bp1['vphi'][l_bp1,i1:i2,0], bp1_from_asm['vphi_bp1'][l_asm,i1:i2], digit=10, echo=echo)
    
    if echo: print('\nDifference for vphi arg:')
    d_vphi_arg, imax = diff(bp1['vphi'][l_bp1,i1:i2,1], bp1_from_asm['vphi_arg_bp1'][l_asm,i1:i2], 
                            relative=False, digit=10, outputs=2, echo=echo)
    if echo:                
        print('correponding vphi:' )
        print(format_item1_item2.format(bp1['vphi'][l_bp1,i1:i2,0].flatten()[imax], 
                                        bp1_from_asm['vphi'][l_asm,i1:i2].flatten()[imax]))    
                 
    return d_psd_b, d_psd_e, d_dop, d_ellip, d_nvec, d_sx, d_sx_arg, d_vphi, d_vphi_arg
    
def compare_bp2_asm(file_bp2, file_asm, l_bp2=0, l_asm=0, ifreq_bp2=None, echo=False):    
    bp2 = get_lfr_decom_l1_bp2(file_bp2)
    asm = get_lfr_decom_l1_asm(file_asm)
    if echo:
        print('bp2 mode:', bp2['mode'], '@F%d'%(LFR_Fs2F(bp2['fe'])))
        print('bp2 time:', bp2['relative_time'] + bp2['start_time'])
        print('asm mode:', asm['mode'], '@F%d'%(LFR_Fs2F(asm['fe'])))
        print('asm time:', asm['relative_time'] + asm['start_time'])
        print()
        print('l_bp2: %d, l_asm: %d'%(l_bp2, l_asm))
    
    nspec_bp2, nfreq_bp2, dim_bp2, _ = bp2['bp2_idl'].shape    
    nspec_asm, nfreq_asm, dim_asm, _ = asm['asm_idl'].shape               
    n_asm_ave = int(nfreq_asm/nfreq_bp2)
    if echo:
        print()
        print('nspec_bp2: %3d, nfreq_bp2: %3d'%(nspec_bp2, nfreq_bp2))
        print('nspec_asm: %3d, nfreq_asm: %3d'%(nspec_asm, nfreq_asm))
        print('\nn_asm_ave = nfreq_asm/nfreq_bp2 = %d'%(n_asm_ave))        
        print()        
    asm_idl_ave = np.zeros((nspec_asm, nfreq_bp2, dim_asm, dim_asm), dtype=complex)
    for i in range(nfreq_bp2):
        asm_idl_ave[:, i, ...] = np.sum(asm['asm_idl'][:, i*n_asm_ave:i*n_asm_ave+n_asm_ave, ...], 
                                        axis=1) / n_asm_ave             
    bp1_from_bp2 = sm_3b2e_bp1(bp2['bp2_idl'], echo=echo, k45_pe=1.+1.j)     
    bp1_from_asm = sm_3b2e_bp1(asm_idl_ave, echo=echo, k45_pe=1.+1.j)      
    
    if ifreq_bp2 == None:
        i1, i2 = 0, nfreq_bp2
        if echo: print('\n#### compare for all frequencies ####')        
    else:
        i1, i2 = ifreq_bp2, ifreq_bp2+1
        if echo: print('\n#### compare for bp2[\'freq\']'+'[ifreq_bp2=%d] : %d Hz ###'% \
                       (ifreq_bp2, bp2['freq'][ifreq_bp2]))   
            
    if echo: print('\nDifference for tensor elements bp2:')
    d_sm = diff(bp2['bp2_idl'][l_bp2,i1:i2,...], asm_idl_ave[l_asm,i1:i2,...], digit=10, echo=echo) 
    
    if echo: print('\nDifference for trace_sm_b:')
    d_psd_b = diff(bp1_from_bp2['psd_b_bp1'][l_bp2,i1:i2], bp1_from_asm['psd_b_bp1'][l_asm,i1:i2], 
                   digit=10, echo=echo) 

    if echo: print('\nDifference for trace_sm_e:')
    d_psd_e = diff(bp1_from_bp2['psd_e_bp1'][l_bp2,i1:i2], bp1_from_asm['psd_e_bp1'][l_asm,i1:i2], 
                   digit=10, echo=echo) 
    
    if echo: print('\nDifference for degree_polar_3b:')
    d_dop = diff(bp1_from_bp2['dop_bp1'][l_bp2,i1:i2], bp1_from_asm['dop_bp1'][l_asm,i1:i2], 
                 digit=10, echo=echo)  

    if echo: print('\nDifference for wave_ellipti_3b:')
    d_ellip = diff(bp1_from_bp2['ellip_bp1'][l_bp2,i1:i2], bp1_from_asm['ellip_bp1'][l_asm,i1:i2], 
                   digit=10, echo=echo)
   
    if echo: print('\nDifference for wave_nvector_3b:')
    d_nvec, imax = diff(bp1_from_bp2['nvec_bp1'][l_bp2,i1:i2,:], bp1_from_asm['nvec_bp1'][l_asm,i1:i2,:], 
                        relative=False, outputs=2, digit=10, echo=echo)
    if echo: print('imax corresponding nvec component:',  imax%3)        

    if echo: print('\nDifference for sx:')
    d_sx = diff(bp1_from_bp2['sx'][l_bp2,i1:i2], bp1_from_asm['sx'][l_asm,i1:i2], 
                digit=10, echo=echo)
    
    if echo: print('\nDifference for sx.real:')
    d_sx = diff(bp1_from_bp2['sx_bp1'][l_bp2,i1:i2], bp1_from_asm['sx_bp1'][l_asm,i1:i2], 
                digit=10, echo=echo)

    if echo: print('\nDifference for sx arg:')
    d_sx_arg, imax = diff(bp1_from_bp2['sx_arg_bp1'][l_bp2,i1:i2], bp1_from_asm['sx_arg_bp1'][l_asm,i1:i2], 
                          relative=False, digit=10, outputs=2, echo=echo)
    if echo:        
        format_item1_item2 = '(item1 {}:.{}f{}   item2 {}:.{}f{})'.format('{', str(10), '}', '{', str(10), '}')
        format_max_diff = 'max difference: %.2f'
        print('corresponding sx:' )
        print(format_item1_item2.format(bp1_from_bp2['sx'][l_bp2,i1:i2].flatten()[imax], 
                                        bp1_from_asm['sx'][l_asm,i1:i2].flatten()[imax]))   

    if echo: print('\nDifference for vphi:')
    d_vphi = diff(bp1_from_bp2['vphi'][l_bp2,i1:i2], bp1_from_asm['vphi'][l_asm,i1:i2], 
                  digit=10, echo=echo)
    
    if echo: print('\nDifference for vphi.real:')
    d_vphi = diff(bp1_from_bp2['vphi_bp1'][l_bp2,i1:i2], bp1_from_asm['vphi_bp1'][l_asm,i1:i2], 
                  digit=10, echo=echo)    

    if echo: print('\nDifference for vphi arg:')
    d_vphi_arg, imax = diff(bp1_from_bp2['vphi_arg_bp1'][l_bp2,i1:i2], bp1_from_asm['vphi_arg_bp1'][l_asm,i1:i2], 
                            relative=False, digit=10, outputs=2, echo=echo)
    if echo:                
        print('correponding vphi:' )
        print(format_item1_item2.format(bp1_from_bp2['vphi'][l_bp2,i1:i2].flatten()[imax], 
                                        bp1_from_asm['vphi'][l_asm,i1:i2].flatten()[imax]))         
        
    return d_sm, d_psd_b, d_psd_e, d_dop, d_ellip, d_nvec, d_sx, d_sx_arg, d_vphi, d_vphi_arg

1) Transfer Functions @F0¶

start next

CTC-5100¶

In [ ]:
case = 'ctc-5100'
dir_Packets = dir_data + "/2017_01_06_ctc-5100/decom"
files = glob.glob(dir_Packets + '/*.sf0')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))    
In [ ]:
freqs_F0 = [f for f in range(1632, 9985, 96)] + [f for f in range(10080,12288,96)[0::3]] 
calib_SWF_F0 = buildCalib_Bruno(files, freqs_F0, datatype='SWF_F0', echo=False, fig=False)
In [ ]:
pname = case + '_' + os.path.basename(files[0]).replace('.sf0','_SWF.svg')
fig_TF_LFR_allRel(calib_SWF_F0, echo=False, ampl_range=[0,10000], freq_range=[1500,12200], unwrap=False, 
                  fname=dir_plots+'/'+pname, dB=False, logx=False,  phi_range=[-180,180])
In [ ]:
signals_ASM = [('B1', 1.), ('B2', 1.), ('B3', 1.), ('E1', 1.), ('E2', 1.)]
freqs_F0_ASM = [f for f in range(1632, 9985, 96)] 
calib_SWF_F0_5 = buildCalib_Bruno(files, freqs_F0_ASM, datatype='SWF_F0', echo=False, fig=False, signals=signals_ASM )
In [ ]:
pname = case + '_' + os.path.basename(files[0]).replace('.sf0','_SWF_5.svg')
fig_TF_LFR_allRel(calib_SWF_F0_5, echo=False, ampl_range=[4000,10000], freq_range=[1500,10500], unwrap=False, 
                  fname=dir_plots+'/'+pname, dB=False, logx=False,  phi_range=[-180,180])
In [ ]:
dir_Packets = dir_data + "/2017_01_06_ctc-5100/decom"
files = glob.glob(dir_Packets + '/*.af0')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))    
In [ ]:
signals_ASM = [('B1', 1.), ('B2', 1.), ('B3', 1.), ('E1', 1.), ('E2', 1.)]
freqs_F0_ASM = [f for f in range(1632, 9985, 96)] 
calib_ASM_F0 = buildCalib_Bruno(files[:88], freqs_F0_ASM, datatype='ASM_F0', echo=False, fig=False, 
                                signals=signals_ASM, i1=4 )
In [ ]:
pname = case + '_' + os.path.basename(files[0]).replace('.af0','_ASM.svg')
fig_TF_LFR_allRel(calib_ASM_F0, echo=False, ampl_range=[4000,10000], freq_range=[1500,10500], unwrap=False, 
                  fname=dir_plots+'/'+pname, dB=False, logx=False,  phi_range=[-180,180])
In [ ]:
pname = case + '_' + 'diff_ASM-SWF_zoom.svg'
fig_diff_TF_LFR_allrel(calib_ASM_F0, calib_SWF_F0_5, echo=False, ampl_range=[-0.1, 0.05], freq_range=[1500,10500], 
                       fname=dir_plots+'/'+pname, dB=False, logx=False, rho_range=[-0.0001,0.0001], phi_range=[-0.1,0.1])
In [ ]:
pname = case + '_' + 'diff_ASM-SWF.svg'
fig_diff_TF_LFR_allrel(calib_ASM_F0, calib_SWF_F0_5, echo=False, ampl_range=[-1., 1], freq_range=[1500,10500], 
                       fname=dir_plots+'/'+pname, dB=False, logx=False, rho_range=[-10.,1.], phi_range=[-360.,100.])

CTC-510¶

In [ ]:
case = 'ctc-510'
dir_Packets = dir_data + "/2018_12_03_ctc-510_EM-FSW_3.2.0.24_sansV/decom"
files = glob.glob(dir_Packets + '/*.sf0')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))    
In [ ]:
outsideFrq1 = [ 12., 24., 36., 48., 60., 72., 84., 96., 192., 288., 384., 480., 576., 672., 768., 864., 960., 
               1056., 1152., 1248., 1344., 1440., 1536.]

outsideFrq2 = [10080., 10176., 10272., 10368., 10464., 10560., 10656., 10752., 10848., 10944., 11040., 11136., 
               11232., 11328., 11424., 11520.,11616., 11712., 11808., 11904., 12000., 12096., 12192., 12288., 
               13056., 13824., 14592., 15360., 16128., 16896., 17664., 18432., 19200., 19968., 20736., 21504., 
               22272., 23040., 23808., 24576., 25344., 26112., 26880., 27648., 28416., 29184., 29952., 30720.]

insideFrqs =  np.arange(1632, 9985, 96)

print(len(outsideFrq1) + len(outsideFrq2) + len(insideFrqs) )
In [ ]:
freqs_F0 = outsideFrq1 + [f for f in range(1632, 9985, 96)] + outsideFrq2
calib_SWF_F0 = buildCalib_Bruno(files, freqs_F0, datatype='SWF_F0', echo=False, fig=False)
In [ ]:
pname = case + '_' + os.path.basename(files[0]).replace('.sf0','_SWF.svg')
fig_TF_LFR_allRel(calib_SWF_F0, echo=False, ampl_range=[0,10000], freq_range=[0,12288 - 96], unwrap=False, 
                  fname=dir_plots+'/'+pname, dB=False, logx=False,  phi_range=[-180,180])
In [ ]:
signals_ASM = [('B1', 1.), ('B2', 1.), ('B3', 1.), ('E1', 1.), ('E2', 1.)]
freqs_F0_ASM = [f for f in range(1632, 9985, 96)] 
calib_SWF_F0_5 = buildCalib_Bruno(files[23:23+88], freqs_F0_ASM, datatype='SWF_F0', echo=False, fig=False, signals=signals_ASM )
In [ ]:
pname = case + '_' + os.path.basename(files[0]).replace('.sf0','_SWF_5.svg')
fig_TF_LFR_allRel(calib_SWF_F0_5, echo=False, ampl_range=[4000,10000], freq_range=[1500,10500], unwrap=False, 
                  fname=dir_plots+'/'+pname, dB=False, logx=False,  phi_range=[-180,180])
In [ ]:
files = glob.glob(dir_Packets + '/*.af0')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))    
In [ ]:
signals_ASM = [('B1', 1.), ('B2', 1.), ('B3', 1.), ('E1', 1.), ('E2', 1.)]
freqs_F0_ASM = [f for f in range(1632, 9985, 96)] 
calib_ASM_F0 = buildCalib_Bruno(files[23:23+88], freqs_F0_ASM, datatype='ASM_F0', echo=False, fig=False, 
                                signals=signals_ASM, i1=3 )
In [ ]:
pname = case + '_' + os.path.basename(files[0]).replace('.af0','_ASM.svg')
fig_TF_LFR_allRel(calib_ASM_F0, echo=False, ampl_range=[4000,10000], freq_range=[1500,10500], unwrap=False, 
                  fname=dir_plots+'/'+pname, dB=False, logx=False,  phi_range=[-180,180])
In [ ]:
pname = case + '_' + 'diff_ASM-SWF_zoom.svg'
fig_diff_TF_LFR_allrel(calib_ASM_F0, calib_SWF_F0_5, echo=False, ampl_range=[-0.1, 0.05], freq_range=[1500,10500], 
                       fname=dir_plots+'/'+pname, dB=False, logx=False, rho_range=[-0.0001,0.0001], phi_range=[-0.1,0.1])
In [ ]:
pname = case + '_' + 'diff_ASM-SWF.svg'
fig_diff_TF_LFR_allrel(calib_ASM_F0, calib_SWF_F0_5, echo=False, ampl_range=[-1., 1], freq_range=[1500,10500], 
                       fname=dir_plots+'/'+pname, dB=False, logx=False, rho_range=[-10.,1.], phi_range=[-5.,1.])

CTC-900¶

In [ ]:
case = 'ctc-900'
dir_Packets = dir_data + "/2022_03_22_ctc-900_EM-FSW_3.3.0.7_unitaires_ALE/decom"
files = glob.glob(dir_Packets + '/*.sf0')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))    
In [ ]:
freqs_F0 = np.arange(1632, 9985, 96)
print(len(freqs_F0))
print(freqs_F0)
In [ ]:
#signals_ASM = [('B1', 1.), ('B2', 1.), ('B3', 1.), ('E1', 1.), ('E2', 1.)]
signals_ASM = [('B1', 1.5), ('B2', 2.), ('B3', 2.5), ('E1', .5), ('E2', 1.)]
freqs_F0 = [f for f in range(1632, 9985, 96)] 
calib_SWF_F0_5 = buildCalib_Bruno(files, freqs_F0, datatype='SWF_F0', echo=False, fig=False, signals=signals_ASM)
In [ ]:
pname = case + '_' + os.path.basename(files[0]).replace('.sf0','_SWF_5.svg')
fig_TF_LFR_allRel(calib_SWF_F0_5, echo=False, ampl_range=[4000,10000], freq_range=[1500,10500], unwrap=False, 
                  fname=dir_plots+'/'+pname, dB=False, logx=False,  phi_range=[-180,180], figsize=(14,16))
In [ ]:
files = glob.glob(dir_Packets + '/*.af0')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))    
In [ ]:
iasm = 3
#signals_ASM = [('B1', 1.), ('B2', 1.), ('B3', 1.), ('E1', 1.), ('E2', 1.)]
signals_ASM = [('B1', 1.5), ('B2', 2.), ('B3', 2.5), ('E1', .5), ('E2', 1.)]
freqs_F0_ASM = [f for f in range(1632, 9985, 96)] 
calib_ASM_F0 = buildCalib_Bruno(files, freqs_F0_ASM, datatype='ASM_F0', echo=False, fig=False, 
                                signals=signals_ASM, i1=iasm)
In [ ]:
pname = case + '_' + os.path.basename(files[0]).replace('.af0','_ASM.svg')
fig_TF_LFR_allRel(calib_ASM_F0, echo=False, ampl_range=[4000,10000], freq_range=[1500,10500], unwrap=False, 
                  fname=dir_plots+'/'+pname, dB=False, logx=False,  phi_range=[-180,180], figsize=(14,16))
In [ ]:
pname = case + '_' + 'diff_ASM-SWF.svg'
fig_diff_TF_LFR_allrel(calib_ASM_F0, calib_SWF_F0_5, echo=False, ampl_range=[-1., 1], freq_range=[1500,10500], 
                       fname=dir_plots+'/'+pname, dB=False, logx=False, rho_range=[-10.,1.], 
                       phi_range=[-5.,1.], figsize=(14,16))
In [ ]:
pname = case + '_' + 'diff_ASM-SWF_zoom.svg'
fig_diff_TF_LFR_allrel(calib_ASM_F0, calib_SWF_F0_5, echo=False, ampl_range=[-0.1, 0.05], freq_range=[1500,10500], 
                       fname=dir_plots+'/'+pname, dB=False, logx=False, rho_range=[-0.0001,0.0001], 
                       phi_range=[-0.1,0.1], figsize=(14,16))

Computation of BP1 : BP2 versus ASM¶

In [ ]:
dir_Packets = dir_data + "/2018_12_03_ctc-510_EM-FSW_3.2.0.24_sansV/decom"
files = glob.glob(dir_Packets + '/*L.1f0')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))    
files_bp1 = files
In [ ]:
files = glob.glob(dir_Packets + '/*L.2f0')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))    
files_bp2 = files
In [ ]:
files = glob.glob(dir_Packets + '/*L.af0')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))   
files_asm = files    
In [ ]:
outsideFrq1 = [ 12., 24., 36., 48., 60., 72., 84., 96., 192., 288., 384., 480., 576., 672., 768., 864., 960., 
               1056., 1152., 1248., 1344., 1440., 1536.]

outsideFrq2 = [10080., 10176., 10272., 10368., 10464., 10560., 10656., 10752., 10848., 10944., 11040., 11136., 
               11232., 11328., 11424., 11520.,11616., 11712., 11808., 11904., 12000., 12096., 12192., 12288., 
               13056., 13824., 14592., 15360., 16128., 16896., 17664., 18432., 19200., 19968., 20736., 21504., 
               22272., 23040., 23808., 24576., 25344., 26112., 26880., 27648., 28416., 29184., 29952., 30720.]

insideFrqs =  np.arange(1632, 9985, 96)

print("all files:", len(outsideFrq1) + len(outsideFrq2) + len(insideFrqs))
print("outside Frq1 files:", len(outsideFrq1))
print("outside Frq2 files:", len(outsideFrq2))

freqs_F0 = insideFrqs
print("inside F0 freqs files:", len(freqs_F0))
freqs_F0
In [ ]:
#head_format = 10*'{:>11s},'
#data_format = 10*'{:11.5f},'
#units = [' '] + 10*['(%)']
heads = 'k', 'd_sm', 'd_psd_b', 'd_psd_e', 'd_dop', 'd_ellip', 'd_nvec', 'd_sx', 'd_sx_arg', 'd_vphi', 'd_vphi_arg'
units = [' ', '(%)', '(%)', '(%)', '(%)', '(%)', ' ', '(%)', ' ', '(%)', ' ']
head_format = '{:>3s},{:>8s},{:>8s},{:>8s},{:>8s},{:>8s},{:>8s},{:>8s},{:>11s},{:>8s},{:>11s}'
unit_format = '{:3s} {:>8s} {:>8s} {:>8s} {:>8s} {:>8s} {:>8s} {:>8s} {:>11s} {:>8s} {:>11s}'
data_format = '{:3d},{:8.2f},{:8.2f},{:8.2f},{:8.2f},{:8.2f},{:8.3f},{:8.2f},{:11d},{:8.2f},{:11d}'
k = 0
d = compare_bp2_asm(files_bp2[k], files_asm[k], l_bp2=1, l_asm=7+2, ifreq_bp2=None, echo=True)
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
print(data_format.format(k, *d))
print()
d = compare_bp2_asm(files_bp2[k], files_asm[k], l_bp2=0, l_asm=2+2, ifreq_bp2=None, echo=True)
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
print(data_format.format(k, *d))
In [ ]:
k = 1
d = compare_bp2_asm(files_bp2[k], files_asm[k], l_bp2=1, l_asm=7, ifreq_bp2=None, echo=True)
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
print(data_format.format(k, *d))
print()
d = compare_bp2_asm(files_bp2[k], files_asm[k], l_bp2=0, l_asm=2, ifreq_bp2=None, echo=True)
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
print(data_format.format(k, *d))
In [ ]:
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
for k, (f_bp2, f_asm) in enumerate(zip(files_bp2, files_asm)):
    d = compare_bp2_asm(f_bp2, f_asm, l_bp2=0, l_asm=2, ifreq_bp2=None, echo=False)
    print(data_format.format(k, *d))    
In [ ]:
k = 114
d = compare_bp2_asm(files_bp2[k], files_asm[k], l_bp2=0, l_asm=2, ifreq_bp2=None, echo=True)
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
print(data_format.format(k, *d))
In [ ]:
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
for k, (f_bp2, f_asm) in enumerate(zip(files_bp2, files_asm)):
    d = compare_bp2_asm(f_bp2, f_asm, l_bp2=1, l_asm=7, ifreq_bp2=None, echo=False)
    print(data_format.format(k, *d))    
In [ ]:
k = 37
d = compare_bp2_asm(files_bp2[k], files_asm[k], l_bp2=1, l_asm=7, ifreq_bp2=None, echo=True)
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
print(data_format.format(k, *d))
print()
In [ ]:
 
In [ ]:
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
for k in range(88):
    d = compare_bp2_asm(files_bp2[23+k], files_asm[23+k], l_bp2=0, l_asm=2, ifreq_bp2=k//8, echo=False)
    print(data_format.format(k, *d))    
In [ ]:
k = 44
d = compare_bp2_asm(files_bp2[23+k], files_asm[23+k], l_bp2=0, l_asm=2, ifreq_bp2=k//8, echo=True)
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
print(data_format.format(k, *d))
In [ ]:
k = 0
d = compare_bp2_asm(files_bp2[23+k], files_asm[23+k], l_bp2=0, l_asm=2, ifreq_bp2=None, echo=True)
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
print(data_format.format(k, *d))

Computation of BP1 : onboard versus ASM¶

In [ ]:
heads_bp1 = 'k', 'd_psd_b', 'd_psd_e', 'd_dop', 'd_ellip', 'd_nvec', 'd_sx', 'd_sx_arg', 'd_vphi', 'd_vphi_arg'
units_bp1 = [' ', '(%)', '(%)', '(%)', '(%)', ' ', '(%)', ' ', '(%)', ' ']
head_format_bp1 = '{:>3s},{:>8s},{:>8s},{:>8s},{:>8s},{:>8s},{:>8s},{:>11s},{:>8s},{:>11s}'
unit_format_bp1 = '{:3s} {:>8s} {:>8s} {:>8s} {:>8s} {:>8s} {:>8s} {:>11s} {:>8s} {:>11s}'
data_format_bp1 = '{:3d},{:8.2f},{:8.2f},{:8.2f},{:8.2f},{:8.3f},{:8.2f},{:11.1f},{:8.2f},{:11.1f}'
k = 0
d = compare_bp1_asm(files_bp1[0], files_asm[0], l_bp1=4, l_asm=4, ifreq_bp1=None, echo=True)
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
print(data_format_bp1.format(k, *d))
print()
In [ ]:
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
for k, (f_bp1, f_asm) in enumerate(zip(files_bp1, files_asm)):
    d = compare_bp1_asm(f_bp1, f_asm, l_bp1=4, l_asm=4, ifreq_bp1=None, echo=False)
    print(data_format_bp1.format(k, *d))    
In [ ]:
k =11
d = compare_bp1_asm(files_bp1[k], files_asm[k], l_bp1=4, l_asm=4, ifreq_bp1=None, echo=True)
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
print(data_format_bp1.format(k, *d))
print()
In [ ]:
 
In [ ]:
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
for k in range(88):
    d = compare_bp1_asm(files_bp1[23+k], files_asm[23+k], l_bp1=4, l_asm=4, ifreq_bp1=k//8, echo=False)    
    print(data_format_bp1.format(k, *d))    
In [ ]:
k = 79
d = compare_bp1_asm(files_bp1[k+23], files_asm[k+23], l_bp1=4, l_asm=4, ifreq_bp1=k//8, echo=True)
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
print(data_format_bp1.format(k, *d))
print()

Computation of BP1 : onboard versus BP2¶

In [ ]:
heads_bp1 = 'k', 'd_psd_b', 'd_psd_e', 'd_dop', 'd_ellip', 'd_nvec', 'd_sx', 'd_sx_arg', 'd_vphi', 'd_vphi_arg'
units_bp1 = [' ', '(%)', '(%)', '(%)', '(%)', ' ', '(%)', ' ', '(%)', ' ']
head_format_bp1 = '{:>3s},{:>8s},{:>8s},{:>8s},{:>8s},{:>8s},{:>8s},{:>11s},{:>8s},{:>11s}'
unit_format_bp1 = '{:3s} {:>8s} {:>8s} {:>8s} {:>8s} {:>8s} {:>8s} {:>11s} {:>8s} {:>11s}'
data_format_bp1 = '{:3d},{:8.2f},{:8.2f},{:8.2f},{:8.2f},{:8.3f},{:8.2f},{:11.1f},{:8.2f},{:11.1f}'
k = 0
d = compare_bp1_bp2(files_bp1[k], files_bp2[k], l_bp1=4, l_bp2=0, ifreq_bp1=None, echo=True)
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
print(data_format_bp1.format(k, *d))
print()
In [ ]:
k = 1
d = compare_bp1_bp2(files_bp1[k], files_bp2[k], l_bp1=4-2, l_bp2=0, ifreq_bp1=None, echo=True)
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
print(data_format_bp1.format(k, *d))
print()
In [ ]:
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
for k, (f_bp1, f_bp2) in enumerate(zip(files_bp1, files_bp2)):
    d = compare_bp1_bp2(f_bp1, f_bp2, l_bp1=4-2, l_bp2=0, ifreq_bp1=None, echo=False)
    print(data_format_bp1.format(k, *d))    
In [ ]:
k = 90
d = compare_bp1_bp2(files_bp1[k], files_bp2[k], l_bp1=4-2, l_bp2=0, ifreq_bp1=None, echo=True)
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
print(data_format_bp1.format(k, *d))
print()
In [ ]:
 
In [ ]:
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
for k in range(88):
    d = compare_bp1_bp2(files_bp1[23+k], files_bp2[23+k], l_bp1=4-2, l_bp2=0, ifreq_bp1=k//8, echo=False)    
    print(data_format_bp1.format(k, *d))    
In [ ]:
k = 47
d = compare_bp1_bp2(files_bp1[k+23], files_bp2[k+23], l_bp1=4-2, l_bp2=0, ifreq_bp1=k//8, echo=True)
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
print(data_format_bp1.format(k, *d))
print()

2) Transfer Functions @F1¶

start next

CTC-5110¶

In [ ]:
case = 'ctc-5110'
dir_Packets = dir_data + "/2017_01_09_ctc-5110/decom"
files = glob.glob(dir_Packets + '/*.sf1')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))    
In [ ]:
freqs_F1 = [f for f in range(96, 1745, 16) if f != 1424] 
calib_SWF_F1 = buildCalib_Bruno(files, freqs_F1, datatype='SWF_F1', echo=False, fig=False)
In [ ]:
pname = case + '_' + os.path.basename(files[0]).replace('.sf1','_SWF.svg')
fig_TF_LFR_allRel(calib_SWF_F1, echo=False, ampl_range=[0,10000], freq_range=[0,2000], unwrap=False, 
                  fname=dir_plots+'/'+pname, dB=False, logx=False,  phi_range=[-180,180])
In [ ]:
signals_ASM = [('B1', 1.), ('B2', 1.), ('B3', 1.), ('E1', 1.), ('E2', 1.)]
freqs_F1 = [f for f in range(96, 1745, 16) if f != 1424] 
calib_SWF_F1_5 = buildCalib_Bruno(files, freqs_F1, datatype='SWF_F1', echo=False, fig=False, signals=signals_ASM )
In [ ]:
pname = case + '_' + os.path.basename(files[0]).replace('.sf1','_SWF_5.svg')
fig_TF_LFR_allRel(calib_SWF_F1_5, echo=False, ampl_range=[0,10000], freq_range=[0,2000], unwrap=False, 
                  fname=dir_plots+'/'+pname, dB=False, logx=False,  phi_range=[-180,180])
In [ ]:
dir_Packets = dir_data + "/2017_01_09_ctc-5110/decom"
files = glob.glob(dir_Packets + '/*.af1')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))    
In [ ]:
files_bis = files.copy()
files_bis.remove(files[83])
print(len(files_bis))
iasm = 3
In [ ]:
signals_ASM = [('B1', 1.), ('B2', 1.), ('B3', 1.), ('E1', 1.), ('E2', 1.)]
freqs_F1_ASM = [f for f in range(96, 1745, 16)] 
calib_ASM_F1 = buildCalib_Bruno(files, freqs_F1_ASM, datatype='ASM_F1', echo=False, fig=False, signals=signals_ASM, i1=iasm )
In [ ]:
pname = case + '_' + os.path.basename(files[0]).replace('.af1','_ASM.svg')
fig_TF_LFR_allRel(calib_ASM_F1, echo=False, ampl_range=[0,10000], freq_range=[0,2000], unwrap=False, 
                  fname=dir_plots+'/'+pname, dB=False, logx=False,  phi_range=[-180,180])
In [ ]:
signals_ASM = [('B1', 1.), ('B2', 1.), ('B3', 1.), ('E1', 1.), ('E2', 1.)]
freqs_F1_ASM_bis = [f for f in range(96, 1745, 16) if f != 1424] 
calib_ASM_F1_bis = buildCalib_Bruno(files_bis, freqs_F1_ASM_bis, datatype='ASM_F1', echo=False, fig=False, 
                                    signals=signals_ASM, i1=iasm )
In [ ]:
pname = case + '_' + os.path.basename(files[0]).replace('.af1','_ASM_bis.svg')
fig_TF_LFR_allRel(calib_ASM_F1_bis, echo=False, ampl_range=[0,10000], freq_range=[0,2000], unwrap=False, 
                  fname=dir_plots+'/'+pname, dB=False, logx=False,  phi_range=[-180,180])
In [ ]:
pname = case + '_' + 'diff_ASM-SWF.svg'
fig_diff_TF_LFR_allrel(calib_ASM_F1_bis, calib_SWF_F1_5, echo=False, ampl_range=[-10., 500], freq_range=[0,2000], 
                       fname=dir_plots+'/'+pname, dB=False, logx=False, rho_range=[-100.,100.], phi_range=[-360.,300.])
In [ ]:
pname = case + '_' + 'diff_ASM-SWF_zoom.svg'
fig_diff_TF_LFR_allrel(calib_ASM_F1_bis, calib_SWF_F1_5, echo=False, ampl_range=[-0.1, 0.05], freq_range=[0,2000], 
                       fname=dir_plots+'/'+pname, dB=False, logx=False, rho_range=[-0.01,0.0001], phi_range=[-.1,.1])

CTC-511¶

In [ ]:
case = 'ctc-511'
dir_Packets = dir_data + "/2018_12_04_ctc-511_EM-FSW_3.2.0.24_sansV/decom"
files = glob.glob(dir_Packets + '/*.sf1')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))    
In [ ]:
freqs_F1 = np.arange(96, 1745, 16)
print(len(freqs_F1))
print(freqs_F1)
In [ ]:
freqs_F1 = [f for f in range(96, 1745, 16)] 
calib_SWF_F1 = buildCalib_Bruno(files, freqs_F1, datatype='SWF_F1', echo=False, fig=False)
In [ ]:
pname = case + '_' + os.path.basename(files[0]).replace('.sf1','_SWF.svg')
fig_TF_LFR_allRel(calib_SWF_F1, echo=False, ampl_range=[0,10000], freq_range=[0,2000], unwrap=False, 
                  fname=dir_plots+'/'+pname, dB=False, logx=False,  phi_range=[-180,180])
In [ ]:
signals_ASM = [('B1', 1.), ('B2', 1.), ('B3', 1.), ('E1', 1.), ('E2', 1.)]
freqs_F1 = [f for f in range(96, 1745, 16)] 
calib_SWF_F1_5 = buildCalib_Bruno(files, freqs_F1, datatype='SWF_F1', echo=False, fig=False, signals=signals_ASM )
In [ ]:
pname = case + '_' + os.path.basename(files[0]).replace('.sf1','_SWF_5.svg')
fig_TF_LFR_allRel(calib_SWF_F1_5, echo=False, ampl_range=[0,10000], freq_range=[0,2000], unwrap=False, 
                  fname=dir_plots+'/'+pname, dB=False, logx=False,  phi_range=[-180,180])
In [ ]:
files = glob.glob(dir_Packets + '/*.af1')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))    
In [ ]:
iasm = 3
signals_ASM = [('B1', 1.), ('B2', 1.), ('B3', 1.), ('E1', 1.), ('E2', 1.)]
freqs_F1_ASM = [f for f in range(96, 1745, 16)] 
calib_ASM_F1 = buildCalib_Bruno(files, freqs_F1_ASM, datatype='ASM_F1', echo=False, fig=False, 
                                signals=signals_ASM, i1=iasm )
In [ ]:
pname = case + '_' + os.path.basename(files[0]).replace('.af1','_ASM.svg')
fig_TF_LFR_allRel(calib_ASM_F1, echo=False, ampl_range=[0,10000], freq_range=[0,2000], unwrap=False, 
                  fname=dir_plots+'/'+pname, dB=False, logx=False,  phi_range=[-180,180])
In [ ]:
pname = case + '_' + 'diff_ASM-SWF.svg'
fig_diff_TF_LFR_allrel(calib_ASM_F1, calib_SWF_F1_5, echo=False, ampl_range=[-1., 1], freq_range=[0,2000], 
                       fname=dir_plots+'/'+pname, dB=False, logx=False, rho_range=[-1.,1.], phi_range=[-3.,3.])
In [ ]:
pname = case + '_' + 'diff_ASM-SWF_zoom.svg'
fig_diff_TF_LFR_allrel(calib_ASM_F1, calib_SWF_F1_5, echo=False, ampl_range=[-0.1, 0.05], freq_range=[0,2000], 
                       fname=dir_plots+'/'+pname, dB=False, logx=False, rho_range=[-0.01,0.0001], phi_range=[-.1,.1])

CTC-901¶

In [ ]:
case = 'ctc-901'
#dir_Packets = dir_data + "/2022_03_21_ctc-901_EM-FSW_3.3.0.7_unitaires_ALE/decom"
dir_Packets = dir_data + "/2022_03_22_ctc-901_EM-FSW_3.3.0.7_unitaires_ALE/decom"
files = glob.glob(dir_Packets + '/*.sf1')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))    
In [ ]:
freqs_F1 = np.arange(96, 1745, 16)
print(len(freqs_F1))
print(freqs_F1)
In [ ]:
freqs_F1 = [f for f in range(96, 1745, 16)] 
calib_SWF_F1 = buildCalib_Bruno(files, freqs_F1, datatype='SWF_F1', echo=False, fig=False)
In [ ]:
pname = case + '_' + os.path.basename(files[0]).replace('.sf1','_SWF.svg')
fig_TF_LFR_allRel(calib_SWF_F1, echo=False, ampl_range=[0,10000], freq_range=[0,2000], unwrap=False, 
                  fname=dir_plots+'/'+pname, dB=False, logx=False,  phi_range=[-180,180])
In [ ]:
#signals_ASM = [('B1', 1.), ('B2', 1.), ('B3', 1.), ('E1', 1.), ('E2', 1.)]
signals_ASM = [('B1', 1.5), ('B2', 2.), ('B3', 2.5), ('E1', .5), ('E2', 1.)]
freqs_F1 = [f for f in range(96, 1745, 16)] 
calib_SWF_F1_5 = buildCalib_Bruno(files, freqs_F1, datatype='SWF_F1', echo=False, fig=False, signals=signals_ASM)
In [ ]:
pname = case + '_' + os.path.basename(files[0]).replace('.sf1','_SWF_5.svg')
fig_TF_LFR_allRel(calib_SWF_F1_5, echo=False, ampl_range=[0,10000], freq_range=[0,2000], unwrap=False, 
                  fname=dir_plots+'/'+pname, dB=False, logx=False,  phi_range=[-180,180], figsize=(14,16))
In [ ]:
files = glob.glob(dir_Packets + '/*.af1')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))    
In [ ]:
iasm = 3
#signals_ASM = [('B1', 1.), ('B2', 1.), ('B3', 1.), ('E1', 1.), ('E2', 1.)]
signals_ASM = [('B1', 1.5), ('B2', 2.), ('B3', 2.5), ('E1', .5), ('E2', 1.)]
freqs_F1_ASM = [f for f in range(96, 1745, 16)] 
calib_ASM_F1 = buildCalib_Bruno(files, freqs_F1_ASM, datatype='ASM_F1', echo=False, fig=False, 
                                signals=signals_ASM, i1=iasm)
In [ ]:
pname = case + '_' + os.path.basename(files[0]).replace('.af1','_ASM.svg')
fig_TF_LFR_allRel(calib_ASM_F1, echo=False, ampl_range=[0,10000], freq_range=[0,2000], unwrap=False, 
                  fname=dir_plots+'/'+pname, dB=False, logx=False,  phi_range=[-180,180], figsize=(14,16))
In [ ]:
pname = case + '_' + 'diff_ASM-SWF.svg'
fig_diff_TF_LFR_allrel(calib_ASM_F1, calib_SWF_F1_5, echo=False, ampl_range=[-1., 1], freq_range=[0,2000], 
                       fname=dir_plots+'/'+pname, dB=False, logx=False, rho_range=[-1.,1.], phi_range=[-3.,3.],
                       figsize=(14,16))
In [ ]:
pname = case + '_' + 'diff_ASM-SWF_zoom.svg'
fig_diff_TF_LFR_allrel(calib_ASM_F1, calib_SWF_F1_5, echo=False, ampl_range=[-0.1, 0.05], freq_range=[0,2000], 
                       fname=dir_plots+'/'+pname, dB=False, logx=False, rho_range=[-0.001,0.0001], 
                       phi_range=[-.1,.1], figsize=(14,16))

Computation of BP1 : BP2 versus ASM¶

In [ ]:
dir_Packets = dir_data + "/2018_12_04_ctc-511_EM-FSW_3.2.0.24_sansV/decom"
files = glob.glob(dir_Packets + '/*L.1f1')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))    
files_bp1 = files
In [ ]:
files = glob.glob(dir_Packets + '/*L.2f1')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))    
files_bp2 = files
In [ ]:
files = glob.glob(dir_Packets + '/*L.af1')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))   
files_asm = files    
In [ ]:
freqs_F1 = np.arange(96, 1745, 16)
print(len(freqs_F1))
freqs_F1
In [ ]:
#head_format = 10*'{:>11s},'
#data_format = 10*'{:11.5f},'
#units = [' '] + 10*['(%)']
heads = 'k', 'd_sm', 'd_psd_b', 'd_psd_e', 'd_dop', 'd_ellip', 'd_nvec', 'd_sx', 'd_sx_arg', 'd_vphi', 'd_vphi_arg'
units = [' ', '(%)', '(%)', '(%)', '(%)', '(%)', ' ', '(%)', ' ', '(%)', ' ']
head_format = '{:>3s},{:>8s},{:>8s},{:>8s},{:>8s},{:>8s},{:>8s},{:>8s},{:>11s},{:>8s},{:>11s}'
unit_format = '{:3s} {:>8s} {:>8s} {:>8s} {:>8s} {:>8s} {:>8s} {:>8s} {:>11s} {:>8s} {:>11s}'
data_format = '{:3d},{:8.2f},{:8.2f},{:8.2f},{:8.2f},{:8.2f},{:8.3f},{:8.2f},{:11d},{:8.2f},{:11d}'
k = 0
d = compare_bp2_asm(files_bp2[k], files_asm[k], l_bp2=1, l_asm=7+2, ifreq_bp2=None, echo=True)
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
print(data_format.format(k, *d))
print()
d = compare_bp2_asm(files_bp2[k], files_asm[k], l_bp2=0, l_asm=2+2, ifreq_bp2=None, echo=True)
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
print(data_format.format(k, *d))
In [ ]:
k = 1
d = compare_bp2_asm(files_bp2[k], files_asm[k], l_bp2=1, l_asm=7, ifreq_bp2=None, echo=True)
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
print(data_format.format(k, *d))
print()
d = compare_bp2_asm(files_bp2[k], files_asm[k], l_bp2=0, l_asm=2, ifreq_bp2=None, echo=True)
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
print(data_format.format(k, *d))
In [ ]:
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
for k, (f_bp2, f_asm) in enumerate(zip(files_bp2, files_asm)):
    d = compare_bp2_asm(f_bp2, f_asm, l_bp2=0, l_asm=2, ifreq_bp2=None, echo=False)
    print(data_format.format(k, *d))    
In [ ]:
k = 14
d = compare_bp2_asm(files_bp2[k], files_asm[k], l_bp2=0, l_asm=2, ifreq_bp2=None, echo=True)
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
print(data_format.format(k, *d))
In [ ]:
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
for k, (f_bp2, f_asm) in enumerate(zip(files_bp2, files_asm)):
    d = compare_bp2_asm(f_bp2, f_asm, l_bp2=1, l_asm=7, ifreq_bp2=None, echo=False)
    print(data_format.format(k, *d))    
In [ ]:
k = 44
d = compare_bp2_asm(files_bp2[k], files_asm[k], l_bp2=1, l_asm=7, ifreq_bp2=None, echo=True)
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
print(data_format.format(k, *d))
print()
In [ ]:
 
In [ ]:
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
for k, (f_bp2, f_asm) in enumerate(zip(files_bp2, files_asm)):
    d = compare_bp2_asm(f_bp2, f_asm, l_bp2=0, l_asm=2, ifreq_bp2=k//8, echo=False)
    print(data_format.format(k, *d))    
In [ ]:
k = 33
d = compare_bp2_asm(files_bp2[k], files_asm[k], l_bp2=0, l_asm=2, ifreq_bp2=k//8, echo=True)
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
print(data_format.format(k, *d))

Computation of BP1 : onboard versus ASM¶

In [ ]:
heads_bp1 = 'k', 'd_psd_b', 'd_psd_e', 'd_dop', 'd_ellip', 'd_nvec', 'd_sx', 'd_sx_arg', 'd_vphi', 'd_vphi_arg'
units_bp1 = [' ', '(%)', '(%)', '(%)', '(%)', ' ', '(%)', ' ', '(%)', ' ']
head_format_bp1 = '{:>3s},{:>8s},{:>8s},{:>8s},{:>8s},{:>8s},{:>8s},{:>11s},{:>8s},{:>11s}'
unit_format_bp1 = '{:3s} {:>8s} {:>8s} {:>8s} {:>8s} {:>8s} {:>8s} {:>11s} {:>8s} {:>11s}'
data_format_bp1 = '{:3d},{:8.2f},{:8.2f},{:8.2f},{:8.2f},{:8.3f},{:8.2f},{:11.1f},{:8.2f},{:11.1f}'
k = 0
d = compare_bp1_asm(files_bp1[0], files_asm[0], l_bp1=4, l_asm=4, ifreq_bp1=None, echo=True)
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
print(data_format_bp1.format(k, *d))
print()
In [ ]:
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
for k, (f_bp1, f_asm) in enumerate(zip(files_bp1, files_asm)):
    d = compare_bp1_asm(f_bp1, f_asm, l_bp1=4, l_asm=4, ifreq_bp1=None, echo=False)
    print(data_format_bp1.format(k, *d))    
In [ ]:
k = 17
d = compare_bp1_asm(files_bp1[k], files_asm[k], l_bp1=4, l_asm=4, ifreq_bp1=None, echo=True)
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
print(data_format_bp1.format(k, *d))
print()
In [ ]:
k = 40
d = compare_bp1_asm(files_bp1[k], files_asm[k], l_bp1=4, l_asm=4, ifreq_bp1=k//8, echo=True)
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
print(data_format_bp1.format(k, *d))
print()
In [ ]:
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
for k, (f_bp1, f_asm) in enumerate(zip(files_bp1, files_asm)):
    d = compare_bp1_asm(f_bp1, f_asm, l_bp1=4, l_asm=4, ifreq_bp1=k//8, echo=False)
    print(data_format_bp1.format(k, *d))    
In [ ]:
k = 91
d = compare_bp1_asm(files_bp1[k], files_asm[k], l_bp1=4, l_asm=4, ifreq_bp1=k//8, echo=True)
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
print(data_format_bp1.format(k, *d))
print()

Computation of BP1 : onboard versus BP2¶

In [ ]:
heads_bp1 = 'k', 'd_psd_b', 'd_psd_e', 'd_dop', 'd_ellip', 'd_nvec', 'd_sx', 'd_sx_arg', 'd_vphi', 'd_vphi_arg'
units_bp1 = [' ', '(%)', '(%)', '(%)', '(%)', ' ', '(%)', ' ', '(%)', ' ']
head_format_bp1 = '{:>3s},{:>8s},{:>8s},{:>8s},{:>8s},{:>8s},{:>8s},{:>11s},{:>8s},{:>11s}'
unit_format_bp1 = '{:3s} {:>8s} {:>8s} {:>8s} {:>8s} {:>8s} {:>8s} {:>11s} {:>8s} {:>11s}'
data_format_bp1 = '{:3d},{:8.2f},{:8.2f},{:8.2f},{:8.2f},{:8.3f},{:8.2f},{:11.1f},{:8.2f},{:11.1f}'
k = 0
d = compare_bp1_bp2(files_bp1[k], files_bp2[k], l_bp1=4, l_bp2=0, ifreq_bp1=None, echo=True)
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
print(data_format_bp1.format(k, *d))
print()
In [ ]:
k = 1
d = compare_bp1_bp2(files_bp1[k], files_bp2[k], l_bp1=4-2, l_bp2=0, ifreq_bp1=None, echo=True)
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
print(data_format_bp1.format(k, *d))
print()
In [ ]:
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
for k, (f_bp1, f_bp2) in enumerate(zip(files_bp1, files_bp2)):
    d = compare_bp1_bp2(f_bp1, f_bp2, l_bp1=4-2, l_bp2=0, ifreq_bp1=None, echo=False)
    print(data_format_bp1.format(k, *d))    
In [ ]:
k = 90
d = compare_bp1_bp2(files_bp1[k], files_bp2[k], l_bp1=4-2, l_bp2=0, ifreq_bp1=None, echo=True)
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
print(data_format_bp1.format(k, *d))
print()
In [ ]:
k = 90
d = compare_bp1_bp2(files_bp1[k], files_bp2[k], l_bp1=4-2, l_bp2=0, ifreq_bp1=k//8, echo=True)
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
print(data_format_bp1.format(k, *d))
print()
In [ ]:
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
for k, (f_bp1, f_bp2) in enumerate(zip(files_bp1, files_bp2)):
    d = compare_bp1_bp2(f_bp1, f_bp2, l_bp1=4-2, l_bp2=0, ifreq_bp1=k//8, echo=False)
    print(data_format_bp1.format(k, *d))    
In [ ]:
k = 28
d = compare_bp1_bp2(files_bp1[k], files_bp2[k], l_bp1=4-2, l_bp2=0, ifreq_bp1=k//8, echo=True)
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
print(data_format_bp1.format(k, *d))
print()

3) Transfer Functions @F2¶

start next¶

CTC-5120¶

In [ ]:
case = 'ctc-5120'
dir_Packets = dir_data + "/2017_01_06_ctc-5120/decom"
files = glob.glob(dir_Packets + '/*.sf2')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))    
In [ ]:
freqs_F2 = [f for f in range(7, 103, 1)]
calib_SWF_F2 = buildCalib_Bruno(files, freqs_F2, datatype='SWF_F2', echo=False, fig=False)
In [ ]:
pname = case + '_' + os.path.basename(files[0]).replace('.sf2','_SWF.svg')
fig_TF_LFR_allRel(calib_SWF_F2, echo=False, ampl_range=[0,10000], freq_range=[0,110], unwrap=False, 
                  fname=dir_plots+'/'+pname, dB=False, logx=False,  phi_range=[-180,180])
In [ ]:
signals_ASM = [('B1', 1.), ('B2', 1.), ('B3', 1.), ('E1', 1.), ('E2', 1.)]
freqs_F2 = [f for f in range(7, 103, 1)]
calib_SWF_F2_5 = buildCalib_Bruno(files, freqs_F2, datatype='SWF_F2', echo=False, fig=False, signals=signals_ASM )
In [ ]:
pname = case + '_' + os.path.basename(files[0]).replace('.sf2','_SWF_5.svg')
fig_TF_LFR_allRel(calib_SWF_F2_5, echo=False, ampl_range=[0,10000], freq_range=[0,110], unwrap=False, 
                  fname=dir_plots+'/'+pname, dB=False, logx=False,  phi_range=[-180,180])
In [ ]:
dir_Packets = dir_data + "/2017_01_06_ctc-5120/decom"
files = glob.glob(dir_Packets + '/*.af2')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))        
In [ ]:
iasm = 4
signals_ASM = [('B1', 1.), ('B2', 1.), ('B3', 1.), ('E1', 1.), ('E2', 1.)]
freqs_F2_ASM = [f for f in range(7, 103, 1)]
calib_ASM_F2 = buildCalib_Bruno(files, freqs_F2_ASM, datatype='ASM_F2', echo=False, fig=False, 
                                 signals=signals_ASM, i1=iasm )
In [ ]:
pname = case + '_' + os.path.basename(files[0]).replace('.af2','_ASM.svg')
fig_TF_LFR_allRel(calib_ASM_F2, echo=False, ampl_range=[0,10000], freq_range=[0,110], unwrap=False, 
                  fname=dir_plots+'/'+pname, dB=False, logx=False,  phi_range=[-180,180])
In [ ]:
pname = case + '_' + 'diff_ASM-SWF.svg'
fig_diff_TF_LFR_allrel(calib_ASM_F2, calib_SWF_F2_5, echo=False, ampl_range=[-1., 1], freq_range=[0,110], 
                       fname=dir_plots+'/'+pname, dB=False, logx=False, rho_range=[-.001,.003], phi_range=[-.5,1.])
In [ ]:
pname = case + '_' + 'diff_ASM-SWF_zoom.svg'
fig_diff_TF_LFR_allrel(calib_ASM_F2, calib_SWF_F2_5, echo=False, ampl_range=[-0.1, 0.05], freq_range=[0,110], 
                       fname=dir_plots+'/'+pname, dB=False, logx=False, rho_range=[-0.0001,0.0001], phi_range=[-.1,.1])

CTC-512¶

In [ ]:
case = 'ctc-512'
dir_Packets = dir_data + "/2018_12_04_ctc-512_EM-FSW_3.2.0.24/decom"
files = glob.glob(dir_Packets + '/*.sf2')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))    
In [ ]:
len(np.arange(7, 103, 1))
In [ ]:
freqs_F2 = [f for f in range(7, 103, 1)]
calib_SWF_F2 = buildCalib_Bruno(files, freqs_F2, datatype='SWF_F2', echo=False, fig=False)
In [ ]:
pname = case + '_' + os.path.basename(files[0]).replace('.sf2','_SWF.svg')
fig_TF_LFR_allRel(calib_SWF_F2, echo=False, ampl_range=[0,10000], freq_range=[0,110], unwrap=False, 
                  fname=dir_plots+'/'+pname, dB=False, logx=False,  phi_range=[-180,180])
In [ ]:
signals_ASM = [('B1', 1.), ('B2', 1.), ('B3', 1.), ('E1', 1.), ('E2', 1.)]
freqs_F2 = [f for f in range(7, 103, 1)]
calib_SWF_F2_5 = buildCalib_Bruno(files, freqs_F2, datatype='SWF_F2', echo=False, fig=False, signals=signals_ASM )
In [ ]:
pname = case + '_' + os.path.basename(files[0]).replace('.sf2','_SWF_5.svg')
fig_TF_LFR_allRel(calib_SWF_F2_5, echo=False, ampl_range=[0,10000], freq_range=[0,110], unwrap=False, 
                  fname=dir_plots+'/'+pname, dB=False, logx=False,  phi_range=[-180,180])
In [ ]:
files = glob.glob(dir_Packets + '/*.af2')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))        
In [ ]:
iasm = 1
signals_ASM = [('B1', 1.), ('B2', 1.), ('B3', 1.), ('E1', 1.), ('E2', 1.)]
freqs_F2_ASM = [f for f in range(7, 103, 1)]
calib_ASM_F2 = buildCalib_Bruno(files, freqs_F2_ASM, datatype='ASM_F2', echo=False, fig=False, 
                                 signals=signals_ASM, i1=iasm )
In [ ]:
pname = case + '_' + os.path.basename(files[0]).replace('.af2','_ASM.svg')
fig_TF_LFR_allRel(calib_ASM_F2, echo=False, ampl_range=[0,10000], freq_range=[0,110], unwrap=False, 
                  fname=dir_plots+'/'+pname, dB=False, logx=False,  phi_range=[-180,180])
In [ ]:
pname = case + '_' + 'diff_ASM-SWF.svg'
fig_diff_TF_LFR_allrel(calib_ASM_F2, calib_SWF_F2_5, echo=False, ampl_range=[-1., 1], freq_range=[0,110], 
                       fname=dir_plots+'/'+pname, dB=False, logx=False, rho_range=[-.001,.003], phi_range=[-1.5,.1])
In [ ]:
pname = case + '_' + 'diff_ASM-SWF_zoom.svg'
fig_diff_TF_LFR_allrel(calib_ASM_F2, calib_SWF_F2_5, echo=False, ampl_range=[-0.1, 0.05], freq_range=[0,110], 
                       fname=dir_plots+'/'+pname, dB=False, logx=False, rho_range=[-0.0001,0.0001], phi_range=[-.1,.1])
In [ ]:
 
In [ ]:
case = 'F2-64Hz-2Vpp_on_E1E2B1B2B3-UnitKCOEFFMatrices'
dir_Packets = dir_data + "/F2-64Hz-2Vpp_on_E1E2B1B2B3-UnitKCOEFFMatrices/decom"
files = glob.glob(dir_Packets + '/*.sf2')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))    
In [ ]:
signals_ASM = [('B1', 2.), ('B2', 2.), ('B3', 2.), ('E1', 2.), ('E2', 2.)]
freqs_F2 = [f for f in range(64, 64+1, 1)]
calib_SWF_F2_5 = buildCalib_Bruno(files, freqs_F2, datatype='SWF_F2', echo=True, fig=False, signals=signals_ASM)
In [ ]:
calib_SWF_F2_5
In [ ]:
files = glob.glob(dir_Packets + '/*.af2')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))        
In [ ]:
iasm = 7
signals_ASM = [('B1', 2.), ('B2', 2.), ('B3', 2.), ('E1', 2.), ('E2', 2.)]
freqs_F2_ASM = [f for f in range(64, 64+1, 1)]
calib_ASM_F2 = buildCalib_Bruno(files, freqs_F2_ASM, datatype='ASM_F2', echo=True, fig=False, signals=signals_ASM, 
                                i1=iasm )
In [ ]:
calib_ASM_F2

CTC-902¶

In [3]:
case = 'ctc-902'
dir_Packets = dir_data + "/2022_03_23_ctc-902_EM-FSW_3.3.0.7_unitaires_ALE/decom"
files = glob.glob(dir_Packets + '/*.sf2')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))    
96
2022_03_23_09_21_35_packet_record_NORMAL.sf2
2022_03_23_09_22_29_packet_record_NORMAL.sf2
2022_03_23_09_23_23_packet_record_NORMAL.sf2
2022_03_23_09_24_17_packet_record_NORMAL.sf2
2022_03_23_09_25_11_packet_record_NORMAL.sf2
2022_03_23_09_26_05_packet_record_NORMAL.sf2
2022_03_23_09_26_59_packet_record_NORMAL.sf2
2022_03_23_09_27_53_packet_record_NORMAL.sf2
2022_03_23_09_28_47_packet_record_NORMAL.sf2
2022_03_23_09_29_41_packet_record_NORMAL.sf2
2022_03_23_09_30_35_packet_record_NORMAL.sf2
2022_03_23_09_31_29_packet_record_NORMAL.sf2
2022_03_23_09_32_23_packet_record_NORMAL.sf2
2022_03_23_09_33_17_packet_record_NORMAL.sf2
2022_03_23_09_34_11_packet_record_NORMAL.sf2
2022_03_23_09_35_05_packet_record_NORMAL.sf2
2022_03_23_09_35_59_packet_record_NORMAL.sf2
2022_03_23_09_36_53_packet_record_NORMAL.sf2
2022_03_23_09_37_47_packet_record_NORMAL.sf2
2022_03_23_09_38_41_packet_record_NORMAL.sf2
2022_03_23_09_39_35_packet_record_NORMAL.sf2
2022_03_23_09_40_29_packet_record_NORMAL.sf2
2022_03_23_09_41_23_packet_record_NORMAL.sf2
2022_03_23_09_42_17_packet_record_NORMAL.sf2
2022_03_23_09_43_11_packet_record_NORMAL.sf2
2022_03_23_09_44_05_packet_record_NORMAL.sf2
2022_03_23_09_44_59_packet_record_NORMAL.sf2
2022_03_23_09_45_53_packet_record_NORMAL.sf2
2022_03_23_09_46_47_packet_record_NORMAL.sf2
2022_03_23_09_47_41_packet_record_NORMAL.sf2
2022_03_23_09_48_35_packet_record_NORMAL.sf2
2022_03_23_09_49_29_packet_record_NORMAL.sf2
2022_03_23_09_50_23_packet_record_NORMAL.sf2
2022_03_23_09_51_17_packet_record_NORMAL.sf2
2022_03_23_09_52_11_packet_record_NORMAL.sf2
2022_03_23_09_53_05_packet_record_NORMAL.sf2
2022_03_23_09_53_59_packet_record_NORMAL.sf2
2022_03_23_09_54_53_packet_record_NORMAL.sf2
2022_03_23_09_55_47_packet_record_NORMAL.sf2
2022_03_23_09_56_41_packet_record_NORMAL.sf2
2022_03_23_09_57_35_packet_record_NORMAL.sf2
2022_03_23_09_58_29_packet_record_NORMAL.sf2
2022_03_23_09_59_23_packet_record_NORMAL.sf2
2022_03_23_10_00_17_packet_record_NORMAL.sf2
2022_03_23_10_01_11_packet_record_NORMAL.sf2
2022_03_23_10_02_05_packet_record_NORMAL.sf2
2022_03_23_10_02_59_packet_record_NORMAL.sf2
2022_03_23_10_03_53_packet_record_NORMAL.sf2
2022_03_23_10_04_47_packet_record_NORMAL.sf2
2022_03_23_10_05_41_packet_record_NORMAL.sf2
2022_03_23_10_06_35_packet_record_NORMAL.sf2
2022_03_23_10_07_29_packet_record_NORMAL.sf2
2022_03_23_10_08_23_packet_record_NORMAL.sf2
2022_03_23_10_09_17_packet_record_NORMAL.sf2
2022_03_23_10_10_11_packet_record_NORMAL.sf2
2022_03_23_10_11_05_packet_record_NORMAL.sf2
2022_03_23_10_11_59_packet_record_NORMAL.sf2
2022_03_23_10_12_53_packet_record_NORMAL.sf2
2022_03_23_10_13_47_packet_record_NORMAL.sf2
2022_03_23_10_14_41_packet_record_NORMAL.sf2
2022_03_23_10_15_35_packet_record_NORMAL.sf2
2022_03_23_10_16_29_packet_record_NORMAL.sf2
2022_03_23_10_17_23_packet_record_NORMAL.sf2
2022_03_23_10_18_17_packet_record_NORMAL.sf2
2022_03_23_10_19_11_packet_record_NORMAL.sf2
2022_03_23_10_20_05_packet_record_NORMAL.sf2
2022_03_23_10_20_59_packet_record_NORMAL.sf2
2022_03_23_10_21_53_packet_record_NORMAL.sf2
2022_03_23_10_22_47_packet_record_NORMAL.sf2
2022_03_23_10_23_41_packet_record_NORMAL.sf2
2022_03_23_10_24_35_packet_record_NORMAL.sf2
2022_03_23_10_25_29_packet_record_NORMAL.sf2
2022_03_23_10_26_23_packet_record_NORMAL.sf2
2022_03_23_10_27_17_packet_record_NORMAL.sf2
2022_03_23_10_28_11_packet_record_NORMAL.sf2
2022_03_23_10_29_05_packet_record_NORMAL.sf2
2022_03_23_10_29_59_packet_record_NORMAL.sf2
2022_03_23_10_30_53_packet_record_NORMAL.sf2
2022_03_23_10_31_47_packet_record_NORMAL.sf2
2022_03_23_10_32_41_packet_record_NORMAL.sf2
2022_03_23_10_33_35_packet_record_NORMAL.sf2
2022_03_23_10_34_29_packet_record_NORMAL.sf2
2022_03_23_10_35_23_packet_record_NORMAL.sf2
2022_03_23_10_36_17_packet_record_NORMAL.sf2
2022_03_23_10_37_11_packet_record_NORMAL.sf2
2022_03_23_10_38_05_packet_record_NORMAL.sf2
2022_03_23_10_38_59_packet_record_NORMAL.sf2
2022_03_23_10_39_53_packet_record_NORMAL.sf2
2022_03_23_10_40_47_packet_record_NORMAL.sf2
2022_03_23_10_41_41_packet_record_NORMAL.sf2
2022_03_23_10_42_35_packet_record_NORMAL.sf2
2022_03_23_10_43_29_packet_record_NORMAL.sf2
2022_03_23_10_44_23_packet_record_NORMAL.sf2
2022_03_23_10_45_17_packet_record_NORMAL.sf2
2022_03_23_10_46_11_packet_record_NORMAL.sf2
2022_03_23_10_47_05_packet_record_NORMAL.sf2
In [4]:
len(np.arange(7, 103, 1))
Out[4]:
96
In [ ]:
freqs_F2 = [f for f in range(7, 103, 1)]
calib_SWF_F2 = buildCalib_Bruno(files, freqs_F2, datatype='SWF_F2', echo=False, fig=False)
In [ ]:
pname = case + '_' + os.path.basename(files[0]).replace('.sf2','_SWF.svg')
fig_TF_LFR_allRel(calib_SWF_F2, echo=False, ampl_range=[0,10000], freq_range=[0,110], unwrap=False, 
                  fname=dir_plots+'/'+pname, dB=False, logx=False,  phi_range=[-180,180])
In [5]:
#signals_ASM = [('B1', 1.), ('B2', 1.), ('B3', 1.), ('E1', 1.), ('E2', 1.)]
signals_ASM = [('B1', 1.5), ('B2', 2.), ('B3', 2.5), ('E1', .5), ('E2', 1.)]
freqs_F2 = [f for f in range(7, 103, 1)]
calib_SWF_F2_5 = buildCalib_Bruno(files, freqs_F2, datatype='SWF_F2', echo=False, fig=False, signals=signals_ASM )
In [7]:
pname = case + '_' + os.path.basename(files[0]).replace('.sf2','_SWF_5.svg')
fig_TF_LFR_allRel(calib_SWF_F2_5, echo=False, ampl_range=[0,10000], freq_range=[0,110], unwrap=False, 
                  fname=dir_plots+'/'+pname, dB=False, logx=False,  phi_range=[-180,180], figsize=(14,16))
In [8]:
files = glob.glob(dir_Packets + '/*.af2')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))        
96
2022_03_23_09_21_35_packet_record_NORMAL.af2
2022_03_23_09_22_29_packet_record_NORMAL.af2
2022_03_23_09_23_23_packet_record_NORMAL.af2
2022_03_23_09_24_17_packet_record_NORMAL.af2
2022_03_23_09_25_11_packet_record_NORMAL.af2
2022_03_23_09_26_05_packet_record_NORMAL.af2
2022_03_23_09_26_59_packet_record_NORMAL.af2
2022_03_23_09_27_53_packet_record_NORMAL.af2
2022_03_23_09_28_47_packet_record_NORMAL.af2
2022_03_23_09_29_41_packet_record_NORMAL.af2
2022_03_23_09_30_35_packet_record_NORMAL.af2
2022_03_23_09_31_29_packet_record_NORMAL.af2
2022_03_23_09_32_23_packet_record_NORMAL.af2
2022_03_23_09_33_17_packet_record_NORMAL.af2
2022_03_23_09_34_11_packet_record_NORMAL.af2
2022_03_23_09_35_05_packet_record_NORMAL.af2
2022_03_23_09_35_59_packet_record_NORMAL.af2
2022_03_23_09_36_53_packet_record_NORMAL.af2
2022_03_23_09_37_47_packet_record_NORMAL.af2
2022_03_23_09_38_41_packet_record_NORMAL.af2
2022_03_23_09_39_35_packet_record_NORMAL.af2
2022_03_23_09_40_29_packet_record_NORMAL.af2
2022_03_23_09_41_23_packet_record_NORMAL.af2
2022_03_23_09_42_17_packet_record_NORMAL.af2
2022_03_23_09_43_11_packet_record_NORMAL.af2
2022_03_23_09_44_05_packet_record_NORMAL.af2
2022_03_23_09_44_59_packet_record_NORMAL.af2
2022_03_23_09_45_53_packet_record_NORMAL.af2
2022_03_23_09_46_47_packet_record_NORMAL.af2
2022_03_23_09_47_41_packet_record_NORMAL.af2
2022_03_23_09_48_35_packet_record_NORMAL.af2
2022_03_23_09_49_29_packet_record_NORMAL.af2
2022_03_23_09_50_23_packet_record_NORMAL.af2
2022_03_23_09_51_17_packet_record_NORMAL.af2
2022_03_23_09_52_11_packet_record_NORMAL.af2
2022_03_23_09_53_05_packet_record_NORMAL.af2
2022_03_23_09_53_59_packet_record_NORMAL.af2
2022_03_23_09_54_53_packet_record_NORMAL.af2
2022_03_23_09_55_47_packet_record_NORMAL.af2
2022_03_23_09_56_41_packet_record_NORMAL.af2
2022_03_23_09_57_35_packet_record_NORMAL.af2
2022_03_23_09_58_29_packet_record_NORMAL.af2
2022_03_23_09_59_23_packet_record_NORMAL.af2
2022_03_23_10_00_17_packet_record_NORMAL.af2
2022_03_23_10_01_11_packet_record_NORMAL.af2
2022_03_23_10_02_05_packet_record_NORMAL.af2
2022_03_23_10_02_59_packet_record_NORMAL.af2
2022_03_23_10_03_53_packet_record_NORMAL.af2
2022_03_23_10_04_47_packet_record_NORMAL.af2
2022_03_23_10_05_41_packet_record_NORMAL.af2
2022_03_23_10_06_35_packet_record_NORMAL.af2
2022_03_23_10_07_29_packet_record_NORMAL.af2
2022_03_23_10_08_23_packet_record_NORMAL.af2
2022_03_23_10_09_17_packet_record_NORMAL.af2
2022_03_23_10_10_11_packet_record_NORMAL.af2
2022_03_23_10_11_05_packet_record_NORMAL.af2
2022_03_23_10_11_59_packet_record_NORMAL.af2
2022_03_23_10_12_53_packet_record_NORMAL.af2
2022_03_23_10_13_47_packet_record_NORMAL.af2
2022_03_23_10_14_41_packet_record_NORMAL.af2
2022_03_23_10_15_35_packet_record_NORMAL.af2
2022_03_23_10_16_29_packet_record_NORMAL.af2
2022_03_23_10_17_23_packet_record_NORMAL.af2
2022_03_23_10_18_17_packet_record_NORMAL.af2
2022_03_23_10_19_11_packet_record_NORMAL.af2
2022_03_23_10_20_05_packet_record_NORMAL.af2
2022_03_23_10_20_59_packet_record_NORMAL.af2
2022_03_23_10_21_53_packet_record_NORMAL.af2
2022_03_23_10_22_47_packet_record_NORMAL.af2
2022_03_23_10_23_41_packet_record_NORMAL.af2
2022_03_23_10_24_35_packet_record_NORMAL.af2
2022_03_23_10_25_29_packet_record_NORMAL.af2
2022_03_23_10_26_23_packet_record_NORMAL.af2
2022_03_23_10_27_17_packet_record_NORMAL.af2
2022_03_23_10_28_11_packet_record_NORMAL.af2
2022_03_23_10_29_05_packet_record_NORMAL.af2
2022_03_23_10_29_59_packet_record_NORMAL.af2
2022_03_23_10_30_53_packet_record_NORMAL.af2
2022_03_23_10_31_47_packet_record_NORMAL.af2
2022_03_23_10_32_41_packet_record_NORMAL.af2
2022_03_23_10_33_35_packet_record_NORMAL.af2
2022_03_23_10_34_29_packet_record_NORMAL.af2
2022_03_23_10_35_23_packet_record_NORMAL.af2
2022_03_23_10_36_17_packet_record_NORMAL.af2
2022_03_23_10_37_11_packet_record_NORMAL.af2
2022_03_23_10_38_05_packet_record_NORMAL.af2
2022_03_23_10_38_59_packet_record_NORMAL.af2
2022_03_23_10_39_53_packet_record_NORMAL.af2
2022_03_23_10_40_47_packet_record_NORMAL.af2
2022_03_23_10_41_41_packet_record_NORMAL.af2
2022_03_23_10_42_35_packet_record_NORMAL.af2
2022_03_23_10_43_29_packet_record_NORMAL.af2
2022_03_23_10_44_23_packet_record_NORMAL.af2
2022_03_23_10_45_17_packet_record_NORMAL.af2
2022_03_23_10_46_11_packet_record_NORMAL.af2
2022_03_23_10_47_05_packet_record_NORMAL.af2
In [9]:
iasm = 3
#signals_ASM = [('B1', 1.), ('B2', 1.), ('B3', 1.), ('E1', 1.), ('E2', 1.)]
signals_ASM = [('B1', 1.5), ('B2', 2.), ('B3', 2.5), ('E1', .5), ('E2', 1.)]
freqs_F2_ASM = [f for f in range(7, 103, 1)]
calib_ASM_F2 = buildCalib_Bruno(files, freqs_F2_ASM, datatype='ASM_F2', echo=False, fig=False, 
                                 signals=signals_ASM, i1=iasm )
In [10]:
pname = case + '_' + os.path.basename(files[0]).replace('.af2','_ASM.svg')
fig_TF_LFR_allRel(calib_ASM_F2, echo=False, ampl_range=[0,10000], freq_range=[0,110], unwrap=False, 
                  fname=dir_plots+'/'+pname, dB=False, logx=False,  phi_range=[-180,180], figsize=(14,16))
In [11]:
pname = case + '_' + 'diff_ASM-SWF.svg'
fig_diff_TF_LFR_allrel(calib_ASM_F2, calib_SWF_F2_5, echo=False, ampl_range=[-1., 1], freq_range=[0,110], 
                       fname=dir_plots+'/'+pname, dB=False, logx=False, rho_range=[-.001,.003], 
                       phi_range=[-1.5,.1], figsize=(14,16))
In [12]:
pname = case + '_' + 'diff_ASM-SWF_zoom.svg'
fig_diff_TF_LFR_allrel(calib_ASM_F2, calib_SWF_F2_5, echo=False, ampl_range=[-0.1, 0.05], freq_range=[0,110], 
                       fname=dir_plots+'/'+pname, dB=False, logx=False, rho_range=[-0.0001,0.0001], 
                       phi_range=[-.1,.1], figsize=(14,16))
In [ ]:
 
In [ ]:
 
In [ ]:
 

Computation of BP1 : BP2 versus ASM¶

In [ ]:
dir_Packets = dir_data + "/2018_12_04_ctc-512_EM-FSW_3.2.0.24/decom"
files = glob.glob(dir_Packets + '/*L.1f2')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))    
files_bp1 = files
In [ ]:
files = glob.glob(dir_Packets + '/*L.2f2')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))    
files_bp2 = files
In [ ]:
files = glob.glob(dir_Packets + '/*L.af2')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))   
files_asm = files    
In [ ]:
freqs_F2 = np.arange(7, 103, 1)
print(len(freqs_F2))
freqs_F2
In [ ]:
#head_format = 10*'{:>11s},'
#data_format = 10*'{:11.5f},'
#units = [' '] + 10*['(%)']
heads = 'k', 'd_sm', 'd_psd_b', 'd_psd_e', 'd_dop', 'd_ellip', 'd_nvec', 'd_sx', 'd_sx_arg', 'd_vphi', 'd_vphi_arg'
units = [' ', '(%)', '(%)', '(%)', '(%)', '(%)', ' ', '(%)', ' ', '(%)', ' ']
head_format = '{:>3s},{:>8s},{:>8s},{:>8s},{:>8s},{:>8s},{:>8s},{:>8s},{:>11s},{:>8s},{:>11s}'
unit_format = '{:3s} {:>8s} {:>8s} {:>8s} {:>8s} {:>8s} {:>8s} {:>8s} {:>11s} {:>8s} {:>11s}'
data_format = '{:3d},{:8.2f},{:8.2f},{:8.2f},{:8.2f},{:8.2f},{:8.3f},{:8.2f},{:11d},{:8.2f},{:11d}'
k = 0
d = compare_bp2_asm(files_bp2[k], files_asm[k], l_bp2=1, l_asm=9, ifreq_bp2=None, echo=True)
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
print(data_format.format(k, *d))
print()
d = compare_bp2_asm(files_bp2[k], files_asm[k], l_bp2=0, l_asm=4, ifreq_bp2=None, echo=True)
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
print(data_format.format(k, *d))
In [ ]:
k = 1
d = compare_bp2_asm(files_bp2[k], files_asm[k], l_bp2=1, l_asm=9-3, ifreq_bp2=None, echo=True)
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
print(data_format.format(k, *d))
print()
d = compare_bp2_asm(files_bp2[k], files_asm[k], l_bp2=0, l_asm=4-3, ifreq_bp2=None, echo=True)
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
print(data_format.format(k, *d))
In [ ]:
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
for k, (f_bp2, f_asm) in enumerate(zip(files_bp2, files_asm)):
    d = compare_bp2_asm(f_bp2, f_asm, l_bp2=0, l_asm=4-3, ifreq_bp2=None, echo=False)
    print(data_format.format(k, *d))    
In [ ]:
k = 67
d = compare_bp2_asm(files_bp2[k], files_asm[k], l_bp2=0, l_asm=4-3, ifreq_bp2=None, echo=True)
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
print(data_format.format(k, *d))
In [ ]:
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
for k, (f_bp2, f_asm) in enumerate(zip(files_bp2, files_asm)):
    d = compare_bp2_asm(f_bp2, f_asm, l_bp2=1, l_asm=9-3, ifreq_bp2=None, echo=False)
    print(data_format.format(k, *d))    
In [ ]:
k = 42
d = compare_bp2_asm(files_bp2[k], files_asm[k], l_bp2=1, l_asm=9-3, ifreq_bp2=None, echo=True)
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
print(data_format.format(k, *d))
print()
In [ ]:
 
In [ ]:
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
for k, (f_bp2, f_asm) in enumerate(zip(files_bp2, files_asm)):
    d = compare_bp2_asm(f_bp2, f_asm, l_bp2=0, l_asm=4-3, ifreq_bp2=k//8, echo=False)
    print(data_format.format(k, *d))    
In [ ]:
k =63
d = compare_bp2_asm(files_bp2[k], files_asm[k], l_bp2=0, l_asm=4-3, ifreq_bp2=k//8, echo=True)
print()
print(head_format.format(*heads))
print(unit_format.format(*units))
print(data_format.format(k, *d))

Computation of BP1 : onboard versus ASM¶

In [ ]:
heads_bp1 = 'k', 'd_psd_b', 'd_psd_e', 'd_dop', 'd_ellip', 'd_nvec', 'd_sx', 'd_sx_arg', 'd_vphi', 'd_vphi_arg'
units_bp1 = [' ', '(%)', '(%)', '(%)', '(%)', ' ', '(%)', ' ', '(%)', ' ']
head_format_bp1 = '{:>3s},{:>8s},{:>8s},{:>8s},{:>8s},{:>8s},{:>8s},{:>11s},{:>8s},{:>11s}'
unit_format_bp1 = '{:3s} {:>8s} {:>8s} {:>8s} {:>8s} {:>8s} {:>8s} {:>11s} {:>8s} {:>11s}'
data_format_bp1 = '{:3d},{:8.2f},{:8.2f},{:8.2f},{:8.2f},{:8.3f},{:8.2f},{:11.1f},{:8.2f},{:11.1f}'
k = 0
d = compare_bp1_asm(files_bp1[0], files_asm[0], l_bp1=4, l_asm=4, ifreq_bp1=None, echo=True)
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
print(data_format_bp1.format(k, *d))
print()
In [ ]:
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
for k, (f_bp1, f_asm) in enumerate(zip(files_bp1, files_asm)):
    d = compare_bp1_asm(f_bp1, f_asm, l_bp1=4, l_asm=4, ifreq_bp1=None, echo=False)
    print(data_format_bp1.format(k, *d))    
In [ ]:
k = 17
d = compare_bp1_asm(files_bp1[k], files_asm[k], l_bp1=4, l_asm=4, ifreq_bp1=None, echo=True)
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
print(data_format_bp1.format(k, *d))
print()
In [ ]:
 
In [ ]:
k = 17
d = compare_bp1_asm(files_bp1[k], files_asm[k], l_bp1=4, l_asm=4, ifreq_bp1=k//8, echo=True)
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
print(data_format_bp1.format(k, *d))
print()
In [ ]:
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
for k, (f_bp1, f_asm) in enumerate(zip(files_bp1, files_asm)):
    d = compare_bp1_asm(f_bp1, f_asm, l_bp1=4, l_asm=4, ifreq_bp1=k//8, echo=False)
    print(data_format_bp1.format(k, *d))    
In [ ]:
k = 63
d = compare_bp1_asm(files_bp1[k], files_asm[k], l_bp1=4, l_asm=4, ifreq_bp1=k//8, echo=True)
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
print(data_format_bp1.format(k, *d))
print()
In [ ]:
k = 63
d = compare_bp1_asm(files_bp1[k], files_asm[k], l_bp1=1, l_asm=1, ifreq_bp1=k//8, echo=True)
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
print(data_format_bp1.format(k, *d))
print()

Computation of BP1 : onboard versus BP2¶

In [ ]:
heads_bp1 = 'k', 'd_psd_b', 'd_psd_e', 'd_dop', 'd_ellip', 'd_nvec', 'd_sx', 'd_sx_arg', 'd_vphi', 'd_vphi_arg'
units_bp1 = [' ', '(%)', '(%)', '(%)', '(%)', ' ', '(%)', ' ', '(%)', ' ']
head_format_bp1 = '{:>3s},{:>8s},{:>8s},{:>8s},{:>8s},{:>8s},{:>8s},{:>11s},{:>8s},{:>11s}'
unit_format_bp1 = '{:3s} {:>8s} {:>8s} {:>8s} {:>8s} {:>8s} {:>8s} {:>11s} {:>8s} {:>11s}'
data_format_bp1 = '{:3d},{:8.2f},{:8.2f},{:8.2f},{:8.2f},{:8.3f},{:8.2f},{:11.1f},{:8.2f},{:11.1f}'
k = 0
d = compare_bp1_bp2(files_bp1[k], files_bp2[k], l_bp1=4, l_bp2=0, ifreq_bp1=None, echo=True)
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
print(data_format_bp1.format(k, *d))
print()
In [ ]:
k = 1
d = compare_bp1_bp2(files_bp1[k], files_bp2[k], l_bp1=4-3, l_bp2=0, ifreq_bp1=None, echo=True)
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
print(data_format_bp1.format(k, *d))
print()
In [ ]:
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
for k, (f_bp1, f_bp2) in enumerate(zip(files_bp1, files_bp2)):
    d = compare_bp1_bp2(f_bp1, f_bp2, l_bp1=4-3, l_bp2=0, ifreq_bp1=None, echo=False)
    print(data_format_bp1.format(k, *d))    
In [ ]:
k = 56
d = compare_bp1_bp2(files_bp1[k], files_bp2[k], l_bp1=4-3, l_bp2=0, ifreq_bp1=None, echo=True)
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
print(data_format_bp1.format(k, *d))
print()
In [ ]:
 
In [ ]:
k = 56
d = compare_bp1_bp2(files_bp1[k], files_bp2[k], l_bp1=4-3, l_bp2=0, ifreq_bp1=k//8, echo=True)
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
print(data_format_bp1.format(k, *d))
print()
In [ ]:
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
for k, (f_bp1, f_bp2) in enumerate(zip(files_bp1, files_bp2)):
    d = compare_bp1_bp2(f_bp1, f_bp2, l_bp1=4-3, l_bp2=0, ifreq_bp1=k//8, echo=False)
    print(data_format_bp1.format(k, *d))    
In [ ]:
k = 63
d = compare_bp1_bp2(files_bp1[k], files_bp2[k], l_bp1=4-3, l_bp2=0, ifreq_bp1=k//8, echo=True)
print()
print(head_format_bp1.format(*heads_bp1))
print(unit_format_bp1.format(*units_bp1))
print(data_format_bp1.format(k, *d))
print()
In [ ]:
 

4) Transfer Functions @F3¶

start next¶

CTC-5130¶

In [ ]:
case = 'ctc-5130'
dir_Packets = dir_data + "/2017_01_09_ctc-5130/decom"
files = glob.glob(dir_Packets + '/*.cf3')
files.sort()
print(len(files))
for file in files:
    print(os.path.basename(file))    
In [ ]:
freqs_F3 = [f for f in range(1, 17, 1)]
calib_CWF_F3 = buildCalib_Bruno(files, freqs_F3, datatype='CWF_F3', echo=False, fig=False, icwf_offset=16*4,
                             signals=[('E1', 1.), ('E2', 1.), ('V', 1.)], i1=4*16, i2=4*16+100*16)
In [ ]:
pname = case + '_' + os.path.basename(files[0]).replace('.cf3','_CWF.svg')
fig_TF_LFR_allRel(calib_CWF_F3, echo=False, ampl_range=[0.8,12000], freq_range=[0,17], 
                  fname=dir_plots+'/'+pname, dB=True, logx=False,  phi_range=[-360,50], rho_range=[-0.5, 2.5])
In [ ]:
pname = case + '_' + os.path.basename(files[0]).replace('.cf3','_CWF.svg')
fig_TF_LFR_allRel(calib_CWF_F3, echo=False, ampl_range=[-100,9500], freq_range=[0,17], 
                  fname=dir_plots+'/'+pname, dB=False, logx=False,  phi_range=[-360,50], rho_range=[-0.5, 2.5])

End start¶

In [ ]:
 

Divers¶

In [ ]: