Files
sf-op/script/test/WireScanTest2.py
2017-05-05 12:57:55 +02:00

37 lines
1.5 KiB
Python

root = "2017/05/04/20170504_182411_WireScan.h5|/"
wire = "x"
blms = ["",""]
cycles = 3
calc_values = []
for i in range(len(blms)):
path_back = root + "background/blm" + str(i+1)
bg = get_attributes(path_back)["Mean"]
for cycle in range (cycles):
pos = load_data(root + wire+"_" + ("%04d" % (cycle+1)) + "/w_pos")
path = root + wire+"_" + ("%04d" % (cycle+1)) + "/blm" + str(i+1)
data = load_data(path)
sp = blm_remove_spikes(data)
sig = sp if bg is None else [v-bg for v in sp]
rms_com, rms = profile_rms_stats(pos, sig,noise_std=0, n_sigma=3.5)
#set_attribute(path, "RMS", float("nan") if (rms is None) else rms)
#set_attribute(path, "RMS centroid", float("nan") if (rms_com is None) else rms_com)
print [rms_com, rms]
off, amp, com, sigma = profile_gauss_stats(pos, sig, off=None, amp=None, com=None, sigma=None)
#set_attribute(path, "Gauss COM", float("nan") if (com is None) else com)
#set_attribute(path, "Gauss Sigma", float("nan") if (sigma is None) else sigma)
print [off, amp, com, sigma]
calc_values.append([rms_com, rms, com, sigma])
from mathutils import Gaussian
g = Gaussian(amp, com, sigma)
gauss = [g.value(v)+off for v in pos]
plot([data, sp, sig, gauss], ["data", "sp", "signal", "gauss", ], xdata = pos, title="Fit blm" + str(i+1) + " - " + str(cycle+1))