-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProcess.py
76 lines (59 loc) · 2.42 KB
/
Process.py
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
def process(folder):
time_list = []
CH2_list = []
CH3_list = []
for file_name in os.listdir(folder):
if file_name.endswith(".csv"):
file_path = os.path.join(folder, file_name)
time, CH2, CH3 = get_data2(file_path)
time_list.append(time)
CH2_list.append(CH2)
CH3_list.append(CH3)
time_avg = time_list[0]
#do sigma clipping
# https://docs.astropy.org/en/latest/api/astropy.stats.sigma_clip.html
# cenfunc = center value of the clipping (median or mean)
sigma_val = 1
CH2_clipped = sigma_clip(CH2_list, sigma=sigma_val, axis=0, cenfunc=np.mean)
CH3_clipped = sigma_clip(CH3_list, sigma=sigma_val, axis=0, cenfunc=np.mean)
CH2_avg = np.mean(CH2_clipped, axis=0)
CH3_avg = np.mean(CH3_clipped, axis=0)
n =200
CH3_dy = np.diff(CH3_avg)
CH3_baseline = np.mean(CH3_avg[:n])
CH2_dy = np.diff(CH2_avg)
CH2_baseline = np.mean(CH2_avg[:n])
CH2_norm = CH2_avg - CH2_baseline
CH3_norm = CH3_avg - CH3_baseline
plt.figure(figsize=(15, 6), dpi=200)
plt.plot(time_list[0],CH2_list[0]-CH2_baseline,label='Raw data wf1', color='gray', alpha=0.3)
plt.plot(time_avg, CH2_norm, label='Normalized Data', color=[0/235,141/235,235/235],linewidth=1)
plt.fill_between(time_avg, CH2_norm, color='b', alpha=0.3)
plt.title(f"{folder}: Cathode")
plt.xlabel("Time (µs)")
plt.ylabel("Voltage (mV)")
plt.legend()
plt.show()
area_CH2 = np.trapz(CH2_norm, time_avg)
print("Cathode area =", area_CH2)
plt.figure(figsize=(15, 6),dpi=200)
plt.plot(time_list[0],CH3_list[0]-CH3_baseline,label='Raw data wf1', color='gray', alpha=0.3)
plt.plot(time_avg, CH3_norm, label='Normalized Data', color=[235/235, 80/235, 79/235],linewidth=1)
plt.fill_between(time_avg, CH3_norm, color='r', alpha=0.3)
plt.title(f"{folder}: Anode")
plt.xlabel("Time (µs)")
plt.ylabel("Voltage (mV)")
plt.legend()
plt.show()
area_CH3 = np.trapz(CH3_norm, time_avg)
print("Anode area =", area_CH3)
plt.figure(figsize=(10, 6),dpi=200)
plt.plot(time_avg, CH2_norm, label='Cathode', color=[0/235,141/235,235/235],linewidth=1)
plt.plot(time_avg, CH3_norm, label='Anode', color=[235/235, 80/235, 79/235],linewidth=1)
plt.title(f"{folder}")
plt.xlabel("Time (µs)")
plt.ylabel("Voltage (mV)")
plt.ylim(-20,15)
plt.xlim(-250,850)
plt.legend()
plt.show()