Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
import h5py
import matplotlib.pyplot as plt
import numpy as np
import sys
import re
import ast
from scipy.optimize import curve_fit
import os
from scipy import interpolate
# Solo levanto algunos experimentos
Calib_Files = """000002552-UV_Scan.h5"""
#carpeta pc nico labo escritorio:
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20210723_UVCalibrationCheck\Data
def SeeKeys(files):
for i, fname in enumerate(files.split()):
data = h5py.File(fname, 'r') # Leo el h5: Recordar que nuestros datos estan en 'datasets'
print(fname)
print(list(data['datasets'].keys()))
def GetXToInterpolate(vec):
return np.arange(min(vec), max(vec), 1e-2*np.abs((vec[1]-vec[0])))
def Test_Calibrate_amplitudes(PD_UV_counts, Calibration_freqs, Calibration_amps, Calibration_PD_Value, Experiment_frequencies):
Interpolation_functions = []
Interpolation_functions_2 = []
Calibration_freqs = Calibration_freqs[0:int(len(PD_UV_counts)/len(Calibration_amps))]
n = len(Calibration_freqs)
PD_split = np.matrix([PD_UV_counts[i * n:(i + 1) * n] for i in range((len(PD_UV_counts) + n - 1) // n )])
PD_T = np.transpose(PD_split)
amps = Calibration_amps
for i in range(len(PD_T)):
#PD_values = np.array(PD_T[i][0])[0]
PD_values = np.array(PD_T[i])[0]
f = interpolate.interp1d(PD_values, amps, kind='cubic')
g = interpolate.interp1d(amps, PD_values, kind='cubic')
Interpolation_functions.append(f)
Interpolation_functions_2.append(g)
Calibrated_Amplitudes = []
for fi in Interpolation_functions:
try:
Calibrated_Amplitudes.append(float(fi(Calibration_PD_Value)))
except:
Calibrated_Amplitudes.append(0)
print('no, rey')
Function_Calibs_vs_freq = interpolate.interp1d(Calibration_freqs, Calibrated_Amplitudes, kind='quadratic')
Experiment_amps = []
for freq in Experiment_frequencies:
calibamp = Function_Calibs_vs_freq(freq)
Experiment_amps.append(calibamp)
fs = GetXToInterpolate(Calibration_freqs)
plt.figure()
plt.plot(Calibration_freqs, Calibrated_Amplitudes, 'o')
plt.plot(fs, Function_Calibs_vs_freq(fs))
ExpectedFluo = []
i = 0
while i < len(Experiment_amps):
if Experiment_amps[i] == 0:
ExpectedFluo.append(0)
else:
ExpectedFluo.append(Interpolation_functions_2[i](Experiment_amps[i]))
i = i + 1
return Experiment_amps, ExpectedFluo
#%%
for i, fname in enumerate(Calib_Files.split()):
print(SeeKeys(Calib_Files))
print(i)
print(fname)
data = h5py.File(fname, 'r') # Leo el h5: Recordar que nuestros datos estan en 'datasets'
print(list(data['datasets'].keys()))
meas = np.array(data['datasets']['measurements'])
freqs = np.array(data['datasets']['UV_Frequencies'])
meas_eff = np.zeros(len(freqs))
for i in range(len(meas)):
meas_eff[i%len(freqs)] = meas_eff[i%len(freqs)] + meas[i]
plt.plot(freqs, meas_eff, 'o')