From 29a5126377313a8fca0318e41328751b214b7139 Mon Sep 17 00:00:00 2001 From: Ivan Usov Date: Mon, 5 Oct 2020 17:23:26 +0200 Subject: [PATCH] Add peak fit controls --- pyzebra/app/panel_ccl_integrate.py | 85 ++++++++++++++++++++++++++++-- 1 file changed, 80 insertions(+), 5 deletions(-) diff --git a/pyzebra/app/panel_ccl_integrate.py b/pyzebra/app/panel_ccl_integrate.py index 4949202..c4fba7f 100644 --- a/pyzebra/app/panel_ccl_integrate.py +++ b/pyzebra/app/panel_ccl_integrate.py @@ -201,6 +201,27 @@ def create(): window_size_spinner = Spinner(title="Window size:", value=7, step=2, low=1, default_size=145) poly_order_spinner = Spinner(title="Poly order:", value=3, low=0, default_size=145) + centre_guess = Spinner(default_size=100) + centre_vary = Toggle(default_size=100, active=True) + centre_min = Spinner(default_size=100) + centre_max = Spinner(default_size=100) + sigma_guess = Spinner(default_size=100) + sigma_vary = Toggle(default_size=100, active=True) + sigma_min = Spinner(default_size=100) + sigma_max = Spinner(default_size=100) + ampl_guess = Spinner(default_size=100) + ampl_vary = Toggle(default_size=100, active=True) + ampl_min = Spinner(default_size=100) + ampl_max = Spinner(default_size=100) + slope_guess = Spinner(default_size=100) + slope_vary = Toggle(default_size=100, active=True) + slope_min = Spinner(default_size=100) + slope_max = Spinner(default_size=100) + offset_guess = Spinner(default_size=100) + offset_vary = Toggle(default_size=100, active=True) + offset_min = Spinner(default_size=100) + offset_max = Spinner(default_size=100) + fit_output_textinput = TextAreaInput(title="Fit results:", width=600, height=400) def peakfind_all_button_callback(): @@ -232,10 +253,34 @@ def create(): det_data = pyzebra.fitccl( det_data, meas, - guess=[None, None, None, None, None], - vary=[True, True, True, True, True], - constraints_min=[None, None, None, None, None], - constraints_max=[None, None, None, None, None], + guess=[ + centre_guess.value, + sigma_guess.value, + ampl_guess.value, + slope_guess.value, + offset_guess.value, + ], + vary=[ + centre_vary.active, + sigma_vary.active, + ampl_vary.active, + slope_vary.active, + offset_vary.active, + ], + constraints_min=[ + centre_min.value, + sigma_min.value, + ampl_min.value, + slope_min.value, + offset_min.value, + ], + constraints_max=[ + centre_max.value, + sigma_max.value, + ampl_max.value, + slope_max.value, + offset_max.value, + ], ) sel_ind = meas_table_source.selected.indices[-1] @@ -275,12 +320,42 @@ def create(): peakfind_all_button, ) + div_1 = Div(text="Guess:") + div_2 = Div(text="Vary:") + div_3 = Div(text="Min:") + div_4 = Div(text="Max:") + div_5 = Div(text="Gauss Centre:") + div_6 = Div(text="Gauss Sigma:") + div_7 = Div(text="Gauss Ampl.:") + div_8 = Div(text="Slope:") + div_9 = Div(text="Offset:") + fitpeak_controls = column( + row( + column( + Spacer(height=36), + div_1, + Spacer(height=12), + div_2, + Spacer(height=12), + div_3, + Spacer(height=12), + div_4, + ), + column(div_5, centre_guess, centre_vary, centre_min, centre_max), + column(div_6, sigma_guess, sigma_vary, sigma_min, sigma_max), + column(div_7, ampl_guess, ampl_vary, ampl_min, ampl_max), + column(div_8, slope_guess, slope_vary, slope_min, slope_max), + column(div_9, offset_guess, offset_vary, offset_min, offset_max), + ), + row(fit_all_button), + ) + upload_div = Div(text="Or upload .ccl file:") tab_layout = column( row(proposal_textinput, ccl_file_select), row(column(Spacer(height=5), upload_div), upload_button), row(meas_table, plot, Spacer(width=30), fit_output_textinput), - row(findpeak_controls, column(fit_all_button), column(save_button)), + row(findpeak_controls, Spacer(width=30), fitpeak_controls, column(save_button)), ) return Panel(child=tab_layout, title="ccl integrate")