Skip to content

Commit e9207b1

Browse files
committed
update and fixes of new amplitude feature
* panel of amplitude (realtive, absolute) at main cursor now is hidden until main marker is shown, and hidden if markers are cleared. * panel now shows absolute intensity at main marker if there is no background model selected; else it switches to relative (peak-background) * exposed amplitude measurement is update with any related parameter change.
1 parent c2bc375 commit e9207b1

File tree

1 file changed

+29
-4
lines changed

1 file changed

+29
-4
lines changed

lib/ui/SpectrumWidgets.py

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1522,6 +1522,8 @@ def __init__(self, plotting_widget, spect_xtal):
15221522
# and depart here from concept of using more mild colors in UI.
15231523
# Milder versions of these makes it less visible
15241524
# The avg curves is mildified a bit
1525+
self.m_abs_value = None
1526+
self.m_bkgd_value = None
15251527
self.pw = plotting_widget
15261528
self.pm = self.pw.pos_markers
15271529
if self.pw.canvas.dark_mode:
@@ -1577,10 +1579,21 @@ def update_peak(self, *args, **kwargs):
15771579
poly1 = np.polynomial.polynomial.polyfit(xses1, ys1, order)
15781580
y_pos = np.polynomial.polynomial.polyval(m_pos, poly1)
15791581
self.m_abs_value = y_pos
1582+
# make some better resollution linspace, as peaks
1583+
# often are sharper than sampled:
15801584
xses_hr = np.linspace(data_x[i1_min], data_x[i1_max])
15811585
self.m_avg_curve.setData(
15821586
xses_hr,
15831587
np.polynomial.polynomial.polyval(xses_hr, poly1))
1588+
self.update_peak_height()
1589+
1590+
def update_peak_height(self):
1591+
if self.m_abs_value is None:
1592+
return
1593+
if self.m_bkgd_value is not None:
1594+
self.pw.amp_val_w.setValue(self.m_abs_value - self.m_bkgd_value)
1595+
else:
1596+
self.pw.amp_val_w.setValue(self.m_abs_value)
15841597

15851598
def prepare_to_destroy(self):
15861599
self.pm.m_line.sigPositionChanged.disconnect(self.update_peak)
@@ -1667,9 +1680,9 @@ def update_background(self):
16671680
num=512)
16681681
y = self.get_background(x_pos1, x_pos2, y_pos1, y_pos2, x_linespace)
16691682
self.setData(x_linespace, y)
1670-
self.pw.amp_val_w.setValue(
1671-
self.m_abs_value - self.get_background(x_pos1, x_pos2, y_pos1,
1672-
y_pos2, m_pos))
1683+
self.m_bkgd_value = self.get_background(x_pos1, x_pos2, y_pos1,
1684+
y_pos2, m_pos)
1685+
self.update_peak_height()
16731686

16741687
def prepare_to_destroy(self):
16751688
self.pm.bg1_line.sigPositionChanged.disconnect(self.update_background)
@@ -1779,7 +1792,8 @@ def update_background(self, *args, slope=None):
17791792
num=512)
17801793
b = y_pos - x_pos * m
17811794
self.setData(x_linespace, x_linespace * m + b)
1782-
self.pw.amp_val_w.setValue(self.m_abs_value - y_pos_main)
1795+
self.m_bkgd_value = y_pos_main
1796+
self.update_peak_height()
17831797

17841798
def prepare_to_destroy(self):
17851799
self.pm.bg2_line.sigPositionChanged.disconnect(self.update_background)
@@ -2057,6 +2071,7 @@ def __init__(self, wds_tree_model, wds_tree_selection_model):
20572071
self.pos_markers = PositionMarkers()
20582072
self.bkgd_helper_widget = QWidget(self.splitter)
20592073
self.amplitude_widget = QWidget(self.splitter)
2074+
self.amplitude_widget.setVisible(False)
20602075
self.splitter.insertWidget(0, self.amplitude_widget)
20612076
self.backgrounds = []
20622077
self._setup_wds_additions()
@@ -2194,6 +2209,12 @@ def set_background_model(self, *args):
21942209
bkg = ExponentialBackground(self, combi)
21952210
self.backgrounds.append(bkg)
21962211
self.canvas.addItem(bkg)
2212+
if not any((self.action_linear_background.isChecked(),
2213+
self.action_exp_background.isChecked())) and \
2214+
self.pos_markers.m_line is not None:
2215+
for combi in xtal_spect_combi:
2216+
bkg = NoBackground(self, combi)
2217+
self.backgrounds.append(bkg)
21972218
self.update_bkgd_helper_box_visibility()
21982219

21992220
def clear_background_models(self):
@@ -2202,6 +2223,7 @@ def clear_background_models(self):
22022223
bkgd.prepare_to_destroy()
22032224
self.canvas.p1.removeItem(bkgd)
22042225
self.backgrounds.clear() # just to be sure none left
2226+
self.amplitude_widget.setVisible(False)
22052227

22062228
def show_three_markers_on_canvas(self):
22072229
self.clear_background_models()
@@ -2233,6 +2255,7 @@ def show_single_marker_on_canvas(self):
22332255
self.pos_markers.register_canvas(self.canvas)
22342256
self.action_linear_background.setEnabled(False)
22352257
self.action_exp_background.setEnabled(False)
2258+
self.set_background_model()
22362259

22372260
def update_bkgd_helper_box_visibility(self):
22382261
if self.action_linear_background.isChecked() or \
@@ -2242,6 +2265,8 @@ def update_bkgd_helper_box_visibility(self):
22422265
else:
22432266
self.bkgd_helper_widget.hide()
22442267
self.m_val_label.setText("abs. I:")
2268+
if self.pos_markers.m_line is not None:
2269+
self.amplitude_widget.setVisible(True)
22452270

22462271
def _setup_markers(self):
22472272
self.action_marker_bgx2 = QAction(

0 commit comments

Comments
 (0)