Startup
This commit is contained in:
@@ -1,18 +1,18 @@
|
||||
import numpy as np
|
||||
|
||||
|
||||
def ext(x, y):
|
||||
def extremum(x, y):
|
||||
"""
|
||||
Return extremum coordinates of quadratic fit
|
||||
"""
|
||||
p = np.polyfit(x, y, 2)
|
||||
f = np.poly1d(p)
|
||||
x_fit = 1.0 #np.linspace(min(x), max(x), 100)
|
||||
#y_fit = 2.0 #f(x_fit)
|
||||
if p[0] != 0:
|
||||
x_ext = -p[1]/2/p[0]
|
||||
y_ext = f(x_ext)
|
||||
else:
|
||||
x_ext = None
|
||||
y_ext = None
|
||||
return (x_ext, y_ext, x_ext)
|
||||
x_fit = np.linspace(min(x), max(x), 100)
|
||||
y_fit = f(x_fit)
|
||||
return (x_ext, y_ext, x_fit, y_fit)
|
||||
@@ -4,10 +4,9 @@ def hfitoff(data, xdeg):
|
||||
ret = call_jep("CPython/hfitoff", "hfitoff", [to_npa(data),to_npa(xdeg)])
|
||||
return (ret[0], ret[1], ret[2],ret[3], ret[4].data, ret[5].data)
|
||||
|
||||
def ext(x, y):
|
||||
ret = call_jep("CPython/ext", "ext", [to_npa(x),to_npa(y)])
|
||||
#return (ret[0], ret[1], ret[2].data, ret[3].data)
|
||||
return (ret[0], ret[1], ret[2])
|
||||
def extremum(x, y):
|
||||
ret = call_jep("CPython/extremum", "extremum", [to_npa(x),to_npa(y)])
|
||||
return (ret[0], ret[1], ret[2].data, ret[3].data)
|
||||
|
||||
def gfitoff(x, y, off=None, amp=None, com=None, sigma=None):
|
||||
ret = call_jep("CPython/gfitoff", "gfitoff", [to_npa(x), to_npa(y), off, amp, com, sigma])
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import ch.psi.pshell.epics.Positioner as Positioner
|
||||
import ch.psi.pshell.epics.ChannelDouble as ChannelDouble
|
||||
|
||||
dry_run = False
|
||||
do_elog = True
|
||||
dry_run = True
|
||||
do_elog = FalseTrue
|
||||
|
||||
if get_exec_pars().source == CommandSource.ui:
|
||||
station = "STEST01"
|
||||
|
||||
@@ -63,7 +63,7 @@ dx = camtool.stream.getChild("x_fit_standard_deviation")
|
||||
#Creating averagers
|
||||
x_averager = create_averager(x, nb, -1) # -1 event based, waits for the next value
|
||||
dx_averager = create_averager(dx, nb, -1)
|
||||
dx_averager.monitored=True # not blocking, will return last nb values
|
||||
dx_averager.monitored = True # not blocking, will return last nb values
|
||||
|
||||
#Record callback: uptate of output plot
|
||||
def after_sample(record, scan):
|
||||
@@ -93,10 +93,12 @@ save_dataset(get_exec_pars().group + "/p", p)
|
||||
save_dataset(get_exec_pars().group + "/dp", dp)
|
||||
try:
|
||||
run("CPython/wrapper")
|
||||
(ph_p_max, p_max, ph_p_fit, p_fit) = ext(ph[i_max-5:i_max+6], p[i_max-5:i_max+6])
|
||||
(ph_dp_min, dp_min, ph_dp_fit, dp_fit) = ext(ph[i_min-5:i_min+6], dp[i_min-5:i_min+6])
|
||||
#plt.getSeries(2).appendData(ph_p_fit, p_fit)
|
||||
#plt.getSeries(3).appendData(ph_dp_fit, dp_fit)
|
||||
i_max = p.index(max(p))
|
||||
i_min = dp.index(min(dp))
|
||||
(ph_p_max, p_max, ph_p_fit, p_fit) = extremum(ph[i_max-5:i_max+6], p[i_max-5:i_max+6])
|
||||
(ph_dp_min, dp_min, ph_dp_fit, dp_fit) = extremum(ph[i_min-5:i_min+6], dp[i_min-5:i_min+6])
|
||||
plt.getSeries(2).appendData(ph_p_fit, p_fit)
|
||||
plt.getSeries(3).appendData(ph_dp_fit, dp_fit)
|
||||
except:
|
||||
raise Exception("Fit failure")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user