From 04bb1854a4e0bd97fd513dcb4225fa31a97d7f57 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Fri, 27 May 2022 12:10:00 +0100 Subject: [PATCH 01/29] Add ability to adjust bragg peaks if y axis is log #REF766 --- mslice/plotting/plot_window/cut_plot.py | 8 ++++---- mslice/plotting/plot_window/overplot_interface.py | 2 +- mslice/plotting/plot_window/slice_plot.py | 4 ++++ mslice/presenters/cut_plotter_presenter.py | 6 +++--- mslice/presenters/slice_plotter_presenter.py | 2 +- 5 files changed, 13 insertions(+), 9 deletions(-) diff --git a/mslice/plotting/plot_window/cut_plot.py b/mslice/plotting/plot_window/cut_plot.py index 498727e53..8fb056456 100644 --- a/mslice/plotting/plot_window/cut_plot.py +++ b/mslice/plotting/plot_window/cut_plot.py @@ -323,13 +323,13 @@ def is_icut(self): def update_bragg_peaks(self): if self.plot_window.action_aluminium.isChecked(): - self._cut_plotter_presenter.add_overplot_line(self.ws_name, 'Aluminium', False, cif=None) + self._cut_plotter_presenter.add_overplot_line(self.ws_name, 'Aluminium', False, None, self.y_log) if self.plot_window.action_copper.isChecked(): - self._cut_plotter_presenter.add_overplot_line(self.ws_name, 'Copper', False, cif=None) + self._cut_plotter_presenter.add_overplot_line(self.ws_name, 'Copper', False, None, self.y_log) if self.plot_window.action_niobium.isChecked(): - self._cut_plotter_presenter.add_overplot_line(self.ws_name, 'Niobium', False, cif=None) + self._cut_plotter_presenter.add_overplot_line(self.ws_name, 'Niobium', False, None, self.y_log) if self.plot_window.action_tantalum.isChecked(): - self._cut_plotter_presenter.add_overplot_line(self.ws_name, 'Tantalum', False, cif=None) + self._cut_plotter_presenter.add_overplot_line(self.ws_name, 'Tantalum', False, None, self.y_log) self.update_legend() def save_icut(self): diff --git a/mslice/plotting/plot_window/overplot_interface.py b/mslice/plotting/plot_window/overplot_interface.py index 08df43dbb..b11002787 100644 --- a/mslice/plotting/plot_window/overplot_interface.py +++ b/mslice/plotting/plot_window/overplot_interface.py @@ -34,7 +34,7 @@ def toggle_overplot_line(plot_handler, plotter_presenter, key, recoil, checked, plot_handler.manager.report_as_current() if checked: - plotter_presenter.add_overplot_line(plot_handler.ws_name, key, recoil, cif_file) + plotter_presenter.add_overplot_line(plot_handler.ws_name, key, recoil, cif_file, plot_handler.y_log) else: plotter_presenter.hide_overplot_line(plot_handler.ws_name, key) diff --git a/mslice/plotting/plot_window/slice_plot.py b/mslice/plotting/plot_window/slice_plot.py index 869a82d1f..cb3587a95 100644 --- a/mslice/plotting/plot_window/slice_plot.py +++ b/mslice/plotting/plot_window/slice_plot.py @@ -570,3 +570,7 @@ def is_changed(self, item): if self.default_options is None: return False return self.default_options[item] != getattr(self, item) + + @property + def y_log(self): # needed for interface consistency with cut plot + return False diff --git a/mslice/presenters/cut_plotter_presenter.py b/mslice/presenters/cut_plotter_presenter.py index d8d39db85..ff5787aa1 100644 --- a/mslice/presenters/cut_plotter_presenter.py +++ b/mslice/presenters/cut_plotter_presenter.py @@ -97,8 +97,7 @@ def hide_overplot_line(self, workspace, key): line = cache.pop(key) remove_line(line) - def add_overplot_line(self, workspace_name, key, recoil, cif=None): - recoil = False + def add_overplot_line(self, workspace_name, key, recoil, cif=None, y_has_logarithmic=None): cache = self._cut_cache_dict[plt.gca()][0] cache.rotated = not is_twotheta(cache.cut_axis.units) and not is_momentum(cache.cut_axis.units) try: @@ -115,7 +114,8 @@ def add_overplot_line(self, workspace_name, key, recoil, cif=None): q_axis = cache.cut_axis x, y = compute_powder_line(workspace_name, q_axis, key, cif_file=cif) try: - y = np.array(y) * (scale_fac / np.nanmax(y)) + adj_scale_fac = (scale_fac / np.nanmax(y)) if not y_has_logarithmic else (scale_fac / np.nanmax(y)) + y = np.array(y) * adj_scale_fac self._overplot_cache[key] = plot_overplot_line(x, y, key, recoil, cache) except ValueError: warnings.warn("No Bragg peak found.") diff --git a/mslice/presenters/slice_plotter_presenter.py b/mslice/presenters/slice_plotter_presenter.py index ecfa5d318..e0e9a6fa6 100644 --- a/mslice/presenters/slice_plotter_presenter.py +++ b/mslice/presenters/slice_plotter_presenter.py @@ -92,7 +92,7 @@ def hide_overplot_line(self, workspace, key): line = cache.overplot_lines.pop(key) remove_line(line) - def add_overplot_line(self, workspace_name, key, recoil, cif=None): + def add_overplot_line(self, workspace_name, key, recoil, cif=None, y_has_logarithmic=None): cache = self._slice_cache[workspace_name] if recoil: x, y = compute_recoil_line(workspace_name, cache.momentum_axis, key) From 75816fd5b0383759079018c906fb8510f172af8e Mon Sep 17 00:00:00 2001 From: Robert Applin Date: Fri, 27 May 2022 16:04:38 +0100 Subject: [PATCH 02/29] Keep quick plot options dialog on top of plots Refs #769. Ensures the quick plot options dialogs stay on top of the plots so that they do not disappear when you click away from the options. --- mslice/plotting/plot_window/quick_options.py | 18 ++++++++++-------- mslice/plotting/plot_window/slice_plot.py | 1 - mslice/presenters/quick_options_presenter.py | 19 ++++++++++--------- 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/mslice/plotting/plot_window/quick_options.py b/mslice/plotting/plot_window/quick_options.py index 8f92c734b..44bab5b04 100644 --- a/mslice/plotting/plot_window/quick_options.py +++ b/mslice/plotting/plot_window/quick_options.py @@ -8,8 +8,8 @@ class QuickOptions(QtWidgets.QDialog): ok_clicked = Signal() - def __init__(self): - super(QuickOptions, self).__init__() + def __init__(self, parent=None): + super(QuickOptions, self).__init__(parent) self.layout = QtWidgets.QVBoxLayout() self.setLayout(self.layout) self.ok_button = QtWidgets.QPushButton("OK", self) @@ -24,8 +24,8 @@ def __init__(self): class QuickAxisOptions(QuickOptions): - def __init__(self, target, existing_values, font_size, grid, log, redraw_signal): - super(QuickAxisOptions, self).__init__() + def __init__(self, parent, target, existing_values, font_size, grid, log, redraw_signal): + super(QuickAxisOptions, self).__init__(parent) self.setWindowTitle("Edit " + target) self.log = log self.min_label = QtWidgets.QLabel("Min:") @@ -91,13 +91,14 @@ def grid_state(self): def is_kept_open(self): return self.keep_open.isChecked() + class QuickLabelOptions(QuickOptions): ok_clicked = Signal() cancel_clicked = Signal() - def __init__(self, label, redraw_signal): - super(QuickLabelOptions, self).__init__() + def __init__(self, parent, label, redraw_signal): + super(QuickLabelOptions, self).__init__(parent) self.setWindowTitle("Edit " + label.get_text()) self.line_edit = QtWidgets.QLineEdit() self.line_edit.setText(label.get_text()) @@ -131,13 +132,14 @@ def _ok_clicked(self): self.redraw_signal.emit() self.accept() + class QuickLineOptions(QuickOptions): ok_clicked = Signal() cancel_clicked = Signal() - def __init__(self, line_options, show_legends): - super(QuickLineOptions, self).__init__() + def __init__(self, parent, line_options, show_legends): + super(QuickLineOptions, self).__init__(parent) self.setWindowTitle("Edit line") self.line_widget = LegendAndLineOptionsSetter(line_options, None, show_legends) self.layout.addWidget(self.line_widget) diff --git a/mslice/plotting/plot_window/slice_plot.py b/mslice/plotting/plot_window/slice_plot.py index def82c68e..c39cd314a 100644 --- a/mslice/plotting/plot_window/slice_plot.py +++ b/mslice/plotting/plot_window/slice_plot.py @@ -174,7 +174,6 @@ def object_clicked(self, target): return elif isinstance(target, Text): quick_options(target, self, redraw_signal=self.plot_window.redraw) - else: quick_options(target, self) self.update_legend() diff --git a/mslice/presenters/quick_options_presenter.py b/mslice/presenters/quick_options_presenter.py index cdfb5d3eb..a3b722328 100644 --- a/mslice/presenters/quick_options_presenter.py +++ b/mslice/presenters/quick_options_presenter.py @@ -7,33 +7,34 @@ def quick_options(target, model, has_logarithmic=None, redraw_signal=None): """Find which quick_options to use based on type of target""" if isinstance(target, text.Text): - quick_label_options(target, redraw_signal) + quick_label_options(model.plot_window, target, redraw_signal) elif isinstance(target, string_types): - return quick_axis_options(target, model, has_logarithmic, redraw_signal) + return quick_axis_options(model.plot_window, target, model, has_logarithmic, redraw_signal) else: - quick_line_options(target, model) + quick_line_options(model.plot_window, target, model) -def quick_label_options(target, redraw_signal=None): - view = QuickLabelOptions(target, redraw_signal) +def quick_label_options(parent, target, redraw_signal=None): + view = QuickLabelOptions(parent, target, redraw_signal) view.ok_clicked.connect(lambda: _set_label_options(view, target)) view.show() return view -def quick_axis_options(target, model, has_logarithmic=None, redraw_signal=None): +def quick_axis_options(parent, target, model, has_logarithmic=None, redraw_signal=None): if target[:1] == 'x' or target[:1] == 'y': grid = getattr(model, target[:-5] + 'grid') else: grid = None - view = QuickAxisOptions(target, getattr(model, target), getattr(model, target + '_font_size'), grid, has_logarithmic, redraw_signal) + view = QuickAxisOptions(parent, target, getattr(model, target), getattr(model, target + '_font_size'), grid, + has_logarithmic, redraw_signal) view.ok_clicked.connect(lambda: _set_axis_options(view, target, model, has_logarithmic, grid)) view.show() return view -def quick_line_options(target, model): - view = QuickLineOptions(model.get_line_options(target), model.show_legends) +def quick_line_options(parent, target, model): + view = QuickLineOptions(parent, model.get_line_options(target), model.show_legends) _run_quick_options(view, _set_line_options, model, target) From 567f4e06a7c75be15af727f4721c51894b7e7951 Mon Sep 17 00:00:00 2001 From: Robert Applin Date: Fri, 27 May 2022 16:27:13 +0100 Subject: [PATCH 03/29] Delete plot window so all of its children get closed when its exited Refs #769. The plot window now gets deleted when it is closed. This is done so that its children widgets (such as the quick options dialogs) also get closed at the same time. Attempting to interact with these dialogs whilst the plot window is closed causes some spooky behaviour. --- mslice/plotting/plot_window/plot_figure_manager.py | 1 + 1 file changed, 1 insertion(+) diff --git a/mslice/plotting/plot_window/plot_figure_manager.py b/mslice/plotting/plot_window/plot_figure_manager.py index 1453d06f2..67c63e1de 100644 --- a/mslice/plotting/plot_window/plot_figure_manager.py +++ b/mslice/plotting/plot_window/plot_figure_manager.py @@ -40,6 +40,7 @@ def __init__(self, number, current_figs): self._current_figs = current_figs self.window = PlotWindow(manager=weakref.proxy(self)) + self.window.setAttribute(Qt.WA_DeleteOnClose, True) self.window.resize(800, 600) self.plot_handler = None From 920987f66b8299f37518d5f396cb938b18afd520 Mon Sep 17 00:00:00 2001 From: Robert Applin Date: Mon, 30 May 2022 10:29:10 +0100 Subject: [PATCH 04/29] Plot options dialog now have a parent so they close when the plot does Refs #769. The plot options dialogs will now close whenever their parent plot window is closed. This prevents weird behaviour if they are left open whilst their plot is already deleted. These dialogs will also now remain on top of their plot window. --- mslice/plotting/plot_window/cut_plot.py | 6 +++++- mslice/plotting/plot_window/plot_options.py | 14 +++++++++----- mslice/plotting/plot_window/slice_plot.py | 2 +- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/mslice/plotting/plot_window/cut_plot.py b/mslice/plotting/plot_window/cut_plot.py index 22a32a2c6..e56245a72 100644 --- a/mslice/plotting/plot_window/cut_plot.py +++ b/mslice/plotting/plot_window/cut_plot.py @@ -34,6 +34,7 @@ def __init__(self, figure_manager, cut_plotter_presenter, workspace_name): self.plot_window = figure_manager.window self._canvas = self.plot_window.canvas self._cut_plotter_presenter = cut_plotter_presenter + self._plot_options_view = None self._lines_visible = {} self._legends_shown = True self._legends_visible = [] @@ -109,10 +110,13 @@ def window_closing(self): icut.window_closing() self.manager.button_pressed_connected(False) self.manager.picking_connected(False) + if self._plot_options_view is not None: + self._plot_options_view.disconnect() self.plot_window.close() def plot_options(self): - CutPlotOptionsPresenter(CutPlotOptions(redraw_signal=self.plot_window.redraw), self) + self._plot_options_view = CutPlotOptions(self.plot_window, redraw_signal=self.plot_window.redraw) + return CutPlotOptionsPresenter(self._plot_options_view, self) def plot_clicked(self, x, y): bounds = self.calc_figure_boundaries() diff --git a/mslice/plotting/plot_window/plot_options.py b/mslice/plotting/plot_window/plot_options.py index 0a3b048f4..7225a0743 100644 --- a/mslice/plotting/plot_window/plot_options.py +++ b/mslice/plotting/plot_window/plot_options.py @@ -21,7 +21,7 @@ class PlotOptionsDialog(QtWidgets.QDialog): yGridEdited = Signal() ok_clicked = Signal() - def __init__(self, parent=None, redraw_signal=None): + def __init__(self, parent, redraw_signal=None): QtWidgets.QDialog.__init__(self, parent) load_ui(__file__, 'plot_options.ui', self) @@ -130,8 +130,8 @@ class SlicePlotOptions(PlotOptionsDialog): cRangeEdited = Signal() cLogEdited = Signal() - def __init__(self, redraw_signal=None): - super(SlicePlotOptions, self).__init__(redraw_signal=redraw_signal) + def __init__(self, parent, redraw_signal=None): + super(SlicePlotOptions, self).__init__(parent, redraw_signal=redraw_signal) self.chkXLog.hide() self.chkYLog.hide() self.cut_options.hide() @@ -175,8 +175,8 @@ class CutPlotOptions(PlotOptionsDialog): showLegendsEdited = Signal() removed_line = Signal(int) - def __init__(self, redraw_signal=None): - super(CutPlotOptions, self).__init__(redraw_signal=redraw_signal) + def __init__(self, parent, redraw_signal=None): + super(CutPlotOptions, self).__init__(parent, redraw_signal=redraw_signal) self._line_widgets = [] self.groupBox_4.hide() @@ -185,6 +185,10 @@ def __init__(self, redraw_signal=None): self.chkShowLegends.stateChanged.connect(self.showLegendsEdited) self.showLegendsEdited.connect(self.disable_show_legend) + def disconnect(self): + for line_widget in self._line_widgets: + line_widget.destroyed.disconnect() + def set_line_options(self, line_options): for i in range(len(line_options)): line_widget = LegendAndLineOptionsSetter(line_options[i], self.color_validator, self.show_legends) diff --git a/mslice/plotting/plot_window/slice_plot.py b/mslice/plotting/plot_window/slice_plot.py index c39cd314a..c436830fa 100644 --- a/mslice/plotting/plot_window/slice_plot.py +++ b/mslice/plotting/plot_window/slice_plot.py @@ -156,7 +156,7 @@ def window_closing(self): pass def plot_options(self): - SlicePlotOptionsPresenter(SlicePlotOptions(redraw_signal=self.plot_window.redraw), self) + SlicePlotOptionsPresenter(SlicePlotOptions(self.plot_window, redraw_signal=self.plot_window.redraw), self) def plot_clicked(self, x, y): bounds = self.calc_figure_boundaries() From 3dd41ed62faa8629c2b8aa8317373932891c730d Mon Sep 17 00:00:00 2001 From: Robert Applin Date: Mon, 30 May 2022 10:50:51 +0100 Subject: [PATCH 05/29] Update tests. --- mslice/tests/quick_options_test.py | 33 ++++++++++++++++-------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/mslice/tests/quick_options_test.py b/mslice/tests/quick_options_test.py index 87b36bc34..4469ac791 100644 --- a/mslice/tests/quick_options_test.py +++ b/mslice/tests/quick_options_test.py @@ -28,6 +28,7 @@ class QuickOptionsTest(unittest.TestCase): def setUp(self): self.model = MagicMock() + self.model.plot_window = None @patch.object(QuickLabelOptions, '__init__', lambda x, y: None) @patch.object(QuickLabelOptions, 'exec_', lambda x: None) @@ -35,7 +36,7 @@ def setUp(self): def test_label(self, label_options_mock): target = Mock(spec=text.Text) quick_options(target, self.model) - label_options_mock.assert_called_once_with(target, None) + label_options_mock.assert_called_once_with(None, target, None) @patch.object(QuickLineOptions, '__init__', lambda x, y, z: None) @patch.object(QuickLineOptions, 'exec_', lambda x: None) @@ -43,7 +44,7 @@ def test_label(self, label_options_mock): def test_line(self, line_options_mock): target = Line2D([], [], 3.0, '-', 'red', 'o', label='label1') quick_options(target, self.model) - line_options_mock.assert_called_once_with(target, self.model) + line_options_mock.assert_called_once_with(None, target, self.model) @patch.object(QuickLineOptions, '__init__', lambda x, y, z: None) @patch.object(QuickLineOptions, 'exec_', lambda x: None) @@ -51,7 +52,7 @@ def test_line(self, line_options_mock): def test_axis(self, axis_options_mock): target = "x_axis" quick_options(target, self.model) - axis_options_mock.assert_called_once_with(target, self.model, None, None) + axis_options_mock.assert_called_once_with(None, target, self.model, None, None) @patch('mslice.plotting.plot_window.cut_plot.CutPlot.show_legends', new_callable=PropertyMock(return_value=True)) @patch('mslice.presenters.quick_options_presenter.QuickLineOptions') @@ -63,13 +64,13 @@ def test_line_slice(self, qlo_mock, show_legends): window.canvas = canvas slice_plotter = MagicMock() model = SlicePlot(plot_figure, slice_plotter, 'workspace') + model.plot_window = None qlo_mock, target = setup_line_values(qlo_mock) quick_options(target, model) # check view is called with existing line parameters - qlo_mock.assert_called_with( - {'shown': None, 'color': '#d62728', 'label': u'label1', 'style': '-', 'width': '3.0', - 'marker': 'o', 'legend': None, 'error_bar': None}, True) + qlo_mock.assert_called_with(None, {'shown': None, 'color': '#d62728', 'label': u'label1', 'style': '-', + 'width': '3.0', 'marker': 'o', 'legend': None, 'error_bar': None}, True) # check model is updated with parameters from view self.assertDictEqual(model.get_line_options(target), {'shown': None, 'color': '#1f77b4', 'label': u'label2', @@ -86,6 +87,7 @@ def test_line_cut(self, qlo_mock, show_legends): window.canvas = canvas cut_plotter = MagicMock() model = CutPlot(plot_figure, cut_plotter, 'workspace') + type(model).plot_window = PropertyMock(return_value=None) qlo_mock, target = setup_line_values(qlo_mock) container = ErrorbarContainer([target], has_yerr=True, label='label1') @@ -96,15 +98,14 @@ def test_line_cut(self, qlo_mock, show_legends): quick_options(target, model) # check view is called with existing line parameters - qlo_mock.assert_called_with( - {'shown': True, 'color': '#d62728', 'label': u'label1', 'style': '-', 'width': '3.0', - 'marker': 'o', 'legend': True, 'error_bar': False}, True) + qlo_mock.assert_called_with(None, {'shown': True, 'color': '#d62728', 'label': u'label1', 'style': '-', + 'width': '3.0', 'marker': 'o', 'legend': True, 'error_bar': False}, True) # check model is updated with parameters from view self.assertDictEqual(model.get_line_options(target), {'shown': True, 'color': '#1f77b4', 'label': u'label2', 'style': '--', 'width': '5.0', 'marker': '.', 'legend': True, 'error_bar': False}) - @patch.object(QuickAxisOptions, '__init__', lambda t, u, v, w, x, y, z: None) + @patch.object(QuickAxisOptions, '__init__', lambda p, t, u, v, w, x, y, z: None) @patch.object(QuickAxisOptions, 'range_min', PropertyMock(return_value='0')) @patch.object(QuickAxisOptions, 'range_max', PropertyMock(return_value='10')) @patch.object(QuickAxisOptions, 'grid_state', PropertyMock(return_value=True)) @@ -129,6 +130,7 @@ def setUp(self): self.model.canvas.draw = MagicMock() x_grid = PropertyMock(return_value=False) self.model.x_grid = x_grid + self.model.plot_window = None range_min = PropertyMock(return_value=5) type(self.view).range_min = range_min @@ -139,7 +141,7 @@ def setUp(self): def test_accept(self, quick_axis_options_view): quick_axis_options_view.return_value = self.view - qopt = quick_axis_options('x_range', self.model) + qopt = quick_axis_options(None, 'x_range', self.model) qopt.redraw_signal = PropertyMock() qopt.ok_clicked.connect.call_args[0][0]() # Call the connected signal directly self.assertEquals(self.model.x_range, (5, 10)) @@ -148,7 +150,7 @@ def test_accept(self, quick_axis_options_view): def test_reject(self, quick_axis_options_view): quick_axis_options_view.return_value = self.view self.view.set_range = Mock() - qopt = quick_axis_options('x_range', self.model) + qopt = quick_axis_options(None, 'x_range', self.model) qopt.redraw_signal = PropertyMock() qopt.reject() self.view.set_range.assert_not_called() @@ -160,7 +162,7 @@ def test_colorbar(self, quick_axis_options_view): colorbar_log = PropertyMock() type(self.model).colorbar_log = colorbar_log self.view.log_scale.isChecked = Mock() - qopt = quick_axis_options('colorbar_range', self.model, True) + qopt = quick_axis_options(None, 'colorbar_range', self.model, True) qopt.redraw_signal = PropertyMock() qopt.ok_clicked.connect.call_args[0][0]() # Call the connected signal directly self.view.log_scale.isChecked.assert_called_once() @@ -182,7 +184,7 @@ def setUp(self): @patch('mslice.presenters.quick_options_presenter._set_font_size') def test_accept(self, set_font_size, set_label, quick_label_options_view): quick_label_options_view.return_value = self.view - qopt = quick_label_options('label') + qopt = quick_label_options(None, 'label') qopt.redraw_signal = PropertyMock() qopt.ok_clicked.connect.call_args[0][0]() # Call the connected signal directly assert set_label.called @@ -191,7 +193,7 @@ def test_accept(self, set_font_size, set_label, quick_label_options_view): def test_reject(self, quick_label_options_view): quick_label_options_view.return_value = self.view self.view.set_range = Mock() - qopt = quick_label_options('label') + qopt = quick_label_options(None, 'label') qopt.redraw_signal = PropertyMock() qopt.reject() self.target.set_text.assert_not_called() @@ -213,6 +215,7 @@ def setUp(self): self.model = MagicMock() self.target = MagicMock() self.model.canvas.draw = MagicMock() + self.model.plot_window = None self.target.set_color = MagicMock() self.target.set_linestyle = MagicMock() self.target.set_linewidth = MagicMock() From 04b5c7da683825b5ebb6e7f4a4ec2ee7f7ccb427 Mon Sep 17 00:00:00 2001 From: Robert Applin Date: Wed, 25 May 2022 16:55:47 +0100 Subject: [PATCH 06/29] Add tests to cover process limits bug Refs #754. --- mslice/tests/workspace_algorithms_test.py | 44 +++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 mslice/tests/workspace_algorithms_test.py diff --git a/mslice/tests/workspace_algorithms_test.py b/mslice/tests/workspace_algorithms_test.py new file mode 100644 index 000000000..2699fa136 --- /dev/null +++ b/mslice/tests/workspace_algorithms_test.py @@ -0,0 +1,44 @@ +from __future__ import (absolute_import, division, print_function) + +import unittest + +from mslice.models.workspacemanager.workspace_algorithms import process_limits +from mslice.util.mantid.mantid_algorithms import AppendSpectra, CreateSimulationWorkspace, CreateWorkspace + +from mantid.api import AnalysisDataService + + +class WorkspaceAlgorithmsTest(unittest.TestCase): + + @classmethod + def setUpClass(cls): + cls.direct_workspace = CreateSimulationWorkspace(OutputWorkspace='MAR_workspace', Instrument='MAR', + BinParams=[-10, 1, 10], UnitX='DeltaE') + cls.direct_workspace.e_mode = "Direct" + cls.direct_workspace.e_fixed = 1.1 + + cls.indirect_workspace = CreateSimulationWorkspace(OutputWorkspace='OSIRIS_workspace', Instrument='OSIRIS', + BinParams=[-10, 1, 10], UnitX='DeltaE') + cls.indirect_workspace.e_mode = "Indirect" + cls.indirect_workspace.e_fixed = 1.1 + + CreateWorkspace(DataX=cls.indirect_workspace.raw_ws.readX(0), DataY=cls.indirect_workspace.raw_ws.readY(0), + ParentWorkspace='OSIRIS_workspace', UnitX='DeltaE', OutputWorkspace="extra_spectra_ws") + + cls.extended_workspace = AppendSpectra(InputWorkspace1='OSIRIS_workspace', InputWorkspace2='extra_spectra_ws', + OutputWorkspace='extended_workspace') + cls.extended_workspace.e_mode = "Indirect" + cls.extended_workspace.e_fixed = 1.1 + + @classmethod + def tearDownClass(cls) -> None: + AnalysisDataService.clear() + + def test_process_limits_does_not_fail_for_direct_data(self): + process_limits(self.direct_workspace) + + def test_process_limits_does_not_fail_for_indirect_data(self): + process_limits(self.indirect_workspace) + + def test_process_limits_does_not_fail_for_workspace_where_not_every_histogram_corresponds_to_a_detector(self): + process_limits(self.extended_workspace) From c2a52ae31e77a97ed703f61494df0192368e91b6 Mon Sep 17 00:00:00 2001 From: Robert Applin Date: Wed, 25 May 2022 16:56:55 +0100 Subject: [PATCH 07/29] Get number of detectors when processing limits Refs #754. When getting the theta for limits, we should get the number of detectors and not the number of histograms. This is because some data files have histograms which do not correspond to a detector. --- mslice/models/workspacemanager/workspace_algorithms.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mslice/models/workspacemanager/workspace_algorithms.py b/mslice/models/workspacemanager/workspace_algorithms.py index 06e0704eb..20d0873bc 100644 --- a/mslice/models/workspacemanager/workspace_algorithms.py +++ b/mslice/models/workspacemanager/workspace_algorithms.py @@ -135,8 +135,8 @@ def set_limits(ws, qmin, qmax, qstep, theta, emin, emax, estep): def _get_theta_for_limits(ws): - num_hist = ws.raw_ws.getNumberHistograms() - theta = [ws.raw_ws.detectorTwoTheta(ws.raw_ws.getDetector(i)) for i in range(num_hist)] + num_detectors = ws.raw_ws.getInstrument().getNumberDetectors() + theta = [ws.raw_ws.detectorTwoTheta(ws.raw_ws.getDetector(i)) for i in range(num_detectors)] round_fac = 100 ws.is_PSD = not all(x < y for x, y in zip(theta, theta[1:])) # Rounds the differences to avoid pixels with same 2theta. Implies min limit of ~0.5 degrees From 905fae4c275119b557d48a7c5f0faca73e8adaf3 Mon Sep 17 00:00:00 2001 From: Robert Applin Date: Fri, 27 May 2022 10:31:44 +0100 Subject: [PATCH 08/29] Fix crash when exiting the 'select energy' dialog Refs #754. Prevents a crash and instead shows a warning message that a workspace could not be loaded when an E Fixed is not provided for an indirect data file. --- mslice/presenters/data_loader_presenter.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mslice/presenters/data_loader_presenter.py b/mslice/presenters/data_loader_presenter.py index e8fde8bc4..e817ec0f8 100644 --- a/mslice/presenters/data_loader_presenter.py +++ b/mslice/presenters/data_loader_presenter.py @@ -65,7 +65,10 @@ def _load_ws(self, file_paths, ws_names, force_overwrite): not_opened.append(ws_name) else: if not allChecked: - allChecked = self.check_efixed(ws_name, multi) + try: + allChecked = self.check_efixed(ws_name, multi) + except ValueError: + not_opened.append(ws_name) else: apply_fixed_final_energy_to_a_valid_workspace(ws_name, self._EfCache) if self._main_presenter is not None: From 85d20fa341e66936c51e432aabe9addefe8070f4 Mon Sep 17 00:00:00 2001 From: Robert Applin Date: Wed, 1 Jun 2022 11:41:06 +0100 Subject: [PATCH 09/29] Skip monitors when getting number of detectors. --- mslice/models/workspacemanager/workspace_algorithms.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mslice/models/workspacemanager/workspace_algorithms.py b/mslice/models/workspacemanager/workspace_algorithms.py index 20d0873bc..0d278547e 100644 --- a/mslice/models/workspacemanager/workspace_algorithms.py +++ b/mslice/models/workspacemanager/workspace_algorithms.py @@ -135,7 +135,7 @@ def set_limits(ws, qmin, qmax, qstep, theta, emin, emax, estep): def _get_theta_for_limits(ws): - num_detectors = ws.raw_ws.getInstrument().getNumberDetectors() + num_detectors = ws.raw_ws.getInstrument().getNumberDetectors(skipMonitors=True) theta = [ws.raw_ws.detectorTwoTheta(ws.raw_ws.getDetector(i)) for i in range(num_detectors)] round_fac = 100 ws.is_PSD = not all(x < y for x, y in zip(theta, theta[1:])) From 35f40e369ffd40ec1bf9f37a538f6cb188cf211d Mon Sep 17 00:00:00 2001 From: Robert Applin Date: Wed, 1 Jun 2022 15:01:47 +0100 Subject: [PATCH 10/29] Use double validator for quick options vmin and vmax --- mslice/plotting/plot_window/quick_options.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/mslice/plotting/plot_window/quick_options.py b/mslice/plotting/plot_window/quick_options.py index 8f92c734b..d00e45f8f 100644 --- a/mslice/plotting/plot_window/quick_options.py +++ b/mslice/plotting/plot_window/quick_options.py @@ -1,5 +1,7 @@ from mslice.plotting.plot_window.plot_options import LegendAndLineOptionsSetter +from mantidqt.utils.qt.line_edit_double_validator import LineEditDoubleValidator + from qtpy import QtWidgets from qtpy.QtCore import Signal @@ -31,9 +33,15 @@ def __init__(self, target, existing_values, font_size, grid, log, redraw_signal) self.min_label = QtWidgets.QLabel("Min:") self.min = QtWidgets.QLineEdit() self.min.setText(str(existing_values[0])) + self.min_validator = LineEditDoubleValidator(self.min, str(existing_values[0])) + self.min.setValidator(self.min_validator) + self.max_label = QtWidgets.QLabel("Max:") self.max = QtWidgets.QLineEdit() self.max.setText(str(existing_values[1])) + self.max_validator = LineEditDoubleValidator(self.max, str(existing_values[1])) + self.max.setValidator(self.max_validator) + self.font_size_label = QtWidgets.QLabel("Font Size:") self.font_size = QtWidgets.QDoubleSpinBox() self.decimals = 1 From cbd6e66b25571db478044f66de2f13d74a2184e9 Mon Sep 17 00:00:00 2001 From: Robert Applin Date: Wed, 1 Jun 2022 15:10:05 +0100 Subject: [PATCH 11/29] Use double validator for plot options mins and maxs --- mslice/plotting/plot_window/plot_options.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/mslice/plotting/plot_window/plot_options.py b/mslice/plotting/plot_window/plot_options.py index 0a3b048f4..829bc0ab5 100644 --- a/mslice/plotting/plot_window/plot_options.py +++ b/mslice/plotting/plot_window/plot_options.py @@ -9,6 +9,8 @@ from mslice.models.colors import named_cycle_colors, color_to_name from mslice.util.qt import load_ui +from mantidqt.utils.qt.line_edit_double_validator import LineEditDoubleValidator + class PlotOptionsDialog(QtWidgets.QDialog): @@ -25,6 +27,15 @@ def __init__(self, parent=None, redraw_signal=None): QtWidgets.QDialog.__init__(self, parent) load_ui(__file__, 'plot_options.ui', self) + self.x_min_validator = LineEditDoubleValidator(self.lneXMin, 0.0) + self.lneXMin.setValidator(self.x_min_validator) + self.x_max_validator = LineEditDoubleValidator(self.lneXMax, 0.0) + self.lneXMax.setValidator(self.x_max_validator) + self.y_min_validator = LineEditDoubleValidator(self.lneYMin, 0.0) + self.lneYMin.setValidator(self.y_min_validator) + self.y_max_validator = LineEditDoubleValidator(self.lneYMax, 0.0) + self.lneYMax.setValidator(self.y_max_validator) + self.lneFigureTitle.editingFinished.connect(self.titleEdited) self.lneXAxisLabel.editingFinished.connect(self.xLabelEdited) self.lneYAxisLabel.editingFinished.connect(self.yLabelEdited) @@ -137,6 +148,11 @@ def __init__(self, redraw_signal=None): self.cut_options.hide() self.setMaximumWidth(350) + self.c_min_validator = LineEditDoubleValidator(self.lneCMin, 0.0) + self.lneCMin.setValidator(self.c_min_validator) + self.c_max_validator = LineEditDoubleValidator(self.lneCMax, 0.0) + self.lneCMax.setValidator(self.c_max_validator) + self.lneCMin.editingFinished.connect(self.cRangeEdited) self.lneCMax.editingFinished.connect(self.cRangeEdited) self.chkLogarithmic.stateChanged.connect(self.cLogEdited) From d478a28a297ef6ce2e5d9b46b9d6cd6b54c8c487 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Wed, 1 Jun 2022 17:59:13 +0100 Subject: [PATCH 12/29] Add bragg peak scaling for log axes #REF766 --- mslice/plotting/plot_window/cut_plot.py | 16 ++++++--- .../plot_window/overplot_interface.py | 3 +- mslice/plotting/plot_window/slice_plot.py | 4 +++ mslice/presenters/cut_plotter_presenter.py | 33 ++++++++++++++++--- mslice/presenters/slice_plotter_presenter.py | 2 +- 5 files changed, 48 insertions(+), 10 deletions(-) diff --git a/mslice/plotting/plot_window/cut_plot.py b/mslice/plotting/plot_window/cut_plot.py index 8fb056456..34e3af130 100644 --- a/mslice/plotting/plot_window/cut_plot.py +++ b/mslice/plotting/plot_window/cut_plot.py @@ -321,15 +321,23 @@ def set_is_icut(self, is_icut): def is_icut(self): return self._is_icut + def _get_overplot_datum(self): + return np.nanmedian([line.get_ydata() for line in self._canvas.figure.gca().get_lines() + if not self._cut_plotter_presenter.is_overplot(line)]) + def update_bragg_peaks(self): if self.plot_window.action_aluminium.isChecked(): - self._cut_plotter_presenter.add_overplot_line(self.ws_name, 'Aluminium', False, None, self.y_log) + self._cut_plotter_presenter.add_overplot_line(self.ws_name, 'Aluminium', False, None, self.y_log, + self._get_overplot_datum()) if self.plot_window.action_copper.isChecked(): - self._cut_plotter_presenter.add_overplot_line(self.ws_name, 'Copper', False, None, self.y_log) + self._cut_plotter_presenter.add_overplot_line(self.ws_name, 'Copper', False, None, self.y_log, + self._get_overplot_datum()) if self.plot_window.action_niobium.isChecked(): - self._cut_plotter_presenter.add_overplot_line(self.ws_name, 'Niobium', False, None, self.y_log) + self._cut_plotter_presenter.add_overplot_line(self.ws_name, 'Niobium', False, None, self.y_log, + self._get_overplot_datum()) if self.plot_window.action_tantalum.isChecked(): - self._cut_plotter_presenter.add_overplot_line(self.ws_name, 'Tantalum', False, None, self.y_log) + self._cut_plotter_presenter.add_overplot_line(self.ws_name, 'Tantalum', False, None, self.y_log, + self._get_overplot_datum()) self.update_legend() def save_icut(self): diff --git a/mslice/plotting/plot_window/overplot_interface.py b/mslice/plotting/plot_window/overplot_interface.py index b11002787..71390644c 100644 --- a/mslice/plotting/plot_window/overplot_interface.py +++ b/mslice/plotting/plot_window/overplot_interface.py @@ -34,7 +34,8 @@ def toggle_overplot_line(plot_handler, plotter_presenter, key, recoil, checked, plot_handler.manager.report_as_current() if checked: - plotter_presenter.add_overplot_line(plot_handler.ws_name, key, recoil, cif_file, plot_handler.y_log) + plotter_presenter.add_overplot_line(plot_handler.ws_name, key, recoil, cif_file, plot_handler.y_log, + plot_handler._get_overplot_datum()) else: plotter_presenter.hide_overplot_line(plot_handler.ws_name, key) diff --git a/mslice/plotting/plot_window/slice_plot.py b/mslice/plotting/plot_window/slice_plot.py index cb3587a95..16b9d45ea 100644 --- a/mslice/plotting/plot_window/slice_plot.py +++ b/mslice/plotting/plot_window/slice_plot.py @@ -574,3 +574,7 @@ def is_changed(self, item): @property def y_log(self): # needed for interface consistency with cut plot return False + + @staticmethod + def _get_overplot_datum(): # needed for interface consistency with cut plot + return 0 diff --git a/mslice/presenters/cut_plotter_presenter.py b/mslice/presenters/cut_plotter_presenter.py index ff5787aa1..da6f66beb 100644 --- a/mslice/presenters/cut_plotter_presenter.py +++ b/mslice/presenters/cut_plotter_presenter.py @@ -97,7 +97,26 @@ def hide_overplot_line(self, workspace, key): line = cache.pop(key) remove_line(line) - def add_overplot_line(self, workspace_name, key, recoil, cif=None, y_has_logarithmic=None): + @staticmethod + def _get_log_bragg_y_coords(size, portion_of_axes, datum): + datum = 0.001 if datum == 0 else datum + y1, y2 = plt.gca().get_ylim() + if (y2 > 0 and y1 > 0) or (y2 < 0 and y1 < 0): + total_steps = np.log10(y2/y1) + elif y1 < 0: + y1_int = -1 + y2_int = 1 + total_steps = np.log10(y2 / y2_int) + np.log10(y1 / y1_int) + 2 + else: + y1 = 1 if y1 == 0 else y1 + y2 = 1 if y2 == 0 else y2 + total_steps = np.log10(y2/y1) + 1 + + adj_factor = total_steps * portion_of_axes / 2 + return np.resize(np.array([10**adj_factor, 10**(-adj_factor), np.nan]), size) * datum + + def add_overplot_line(self, workspace_name, key, recoil, cif=None, y_has_logarithmic=None, datum=None): + datum = 0 if datum is None else datum cache = self._cut_cache_dict[plt.gca()][0] cache.rotated = not is_twotheta(cache.cut_axis.units) and not is_momentum(cache.cut_axis.units) try: @@ -114,10 +133,13 @@ def add_overplot_line(self, workspace_name, key, recoil, cif=None, y_has_logarit q_axis = cache.cut_axis x, y = compute_powder_line(workspace_name, q_axis, key, cif_file=cif) try: - adj_scale_fac = (scale_fac / np.nanmax(y)) if not y_has_logarithmic else (scale_fac / np.nanmax(y)) - y = np.array(y) * adj_scale_fac + if not y_has_logarithmic: + y = np.array(y) * scale_fac / np.nanmax(y) + datum + else: + y = self._get_log_bragg_y_coords(len(y), 0.25, datum) + self._overplot_cache[key] = plot_overplot_line(x, y, key, recoil, cache) - except ValueError: + except (ValueError, IndexError) as e: warnings.warn("No Bragg peak found.") def store_icut(self, icut): @@ -137,3 +159,6 @@ def update_main_window(self): def workspace_selection_changed(self): pass + + def is_overplot(self, line): + return line in self._overplot_cache.values() diff --git a/mslice/presenters/slice_plotter_presenter.py b/mslice/presenters/slice_plotter_presenter.py index e0e9a6fa6..7826e9e7a 100644 --- a/mslice/presenters/slice_plotter_presenter.py +++ b/mslice/presenters/slice_plotter_presenter.py @@ -92,7 +92,7 @@ def hide_overplot_line(self, workspace, key): line = cache.overplot_lines.pop(key) remove_line(line) - def add_overplot_line(self, workspace_name, key, recoil, cif=None, y_has_logarithmic=None): + def add_overplot_line(self, workspace_name, key, recoil, cif=None, y_has_logarithmic=None, datum=None): cache = self._slice_cache[workspace_name] if recoil: x, y = compute_recoil_line(workspace_name, cache.momentum_axis, key) From 364420ef90b072acc58b7d454ccdf15d3aebf021 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Thu, 2 Jun 2022 23:10:40 +0100 Subject: [PATCH 13/29] Add log brag peak refresh with axis change #REF766 --- mslice/plotting/plot_window/cut_plot.py | 12 +++++++++++- mslice/presenters/cut_plotter_presenter.py | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/mslice/plotting/plot_window/cut_plot.py b/mslice/plotting/plot_window/cut_plot.py index 34e3af130..b10d5ce4f 100644 --- a/mslice/plotting/plot_window/cut_plot.py +++ b/mslice/plotting/plot_window/cut_plot.py @@ -158,6 +158,7 @@ def update_legend(self, line_data=None): def change_axis_scale(self, xy_config): current_axis = self._canvas.figure.gca() + orig_y_scale_log = self.y_log if xy_config['x_log']: xmin = xy_config['x_range'][0] xdata = [ll.get_xdata() for ll in current_axis.get_lines()] @@ -184,11 +185,15 @@ def change_axis_scale(self, xy_config): if ymin > 0: xy_config['y_range'] = (ymin, xy_config['y_range'][1]) + else: current_axis.set_yscale('linear') self.x_range = xy_config['x_range'] self.y_range = xy_config['y_range'] + if xy_config['y_log'] or (xy_config['y_log'] != orig_y_scale_log): + self.update_bragg_peaks(refresh=True) + def get_line_options(self, line): index = self._get_line_index(line) if index >= 0: @@ -325,17 +330,22 @@ def _get_overplot_datum(self): return np.nanmedian([line.get_ydata() for line in self._canvas.figure.gca().get_lines() if not self._cut_plotter_presenter.is_overplot(line)]) - def update_bragg_peaks(self): + def update_bragg_peaks(self, refresh=None): + refresh = False if refresh is None else True if self.plot_window.action_aluminium.isChecked(): + refresh and self._cut_plotter_presenter.hide_overplot_line(None, 'Aluminium') self._cut_plotter_presenter.add_overplot_line(self.ws_name, 'Aluminium', False, None, self.y_log, self._get_overplot_datum()) if self.plot_window.action_copper.isChecked(): + refresh and self._cut_plotter_presenter.hide_overplot_line(None, 'Copper') self._cut_plotter_presenter.add_overplot_line(self.ws_name, 'Copper', False, None, self.y_log, self._get_overplot_datum()) if self.plot_window.action_niobium.isChecked(): + refresh and self._cut_plotter_presenter.hide_overplot_line(None, 'Niobium') self._cut_plotter_presenter.add_overplot_line(self.ws_name, 'Niobium', False, None, self.y_log, self._get_overplot_datum()) if self.plot_window.action_tantalum.isChecked(): + refresh and self._cut_plotter_presenter.hide_overplot_line(None, 'Tantalum') self._cut_plotter_presenter.add_overplot_line(self.ws_name, 'Tantalum', False, None, self.y_log, self._get_overplot_datum()) self.update_legend() diff --git a/mslice/presenters/cut_plotter_presenter.py b/mslice/presenters/cut_plotter_presenter.py index da6f66beb..85a12fd3d 100644 --- a/mslice/presenters/cut_plotter_presenter.py +++ b/mslice/presenters/cut_plotter_presenter.py @@ -136,7 +136,7 @@ def add_overplot_line(self, workspace_name, key, recoil, cif=None, y_has_logarit if not y_has_logarithmic: y = np.array(y) * scale_fac / np.nanmax(y) + datum else: - y = self._get_log_bragg_y_coords(len(y), 0.25, datum) + y = self._get_log_bragg_y_coords(len(y), 0.15, datum) self._overplot_cache[key] = plot_overplot_line(x, y, key, recoil, cache) except (ValueError, IndexError) as e: From 9ef50e708f494e7c448ef6d8909f714989c8c23f Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Mon, 6 Jun 2022 09:12:14 +0100 Subject: [PATCH 14/29] satisfy flake 8 #REF766 --- mslice/plotting/plot_window/cut_plot.py | 1 - mslice/presenters/cut_plotter_presenter.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/mslice/plotting/plot_window/cut_plot.py b/mslice/plotting/plot_window/cut_plot.py index b10d5ce4f..650ab83a4 100644 --- a/mslice/plotting/plot_window/cut_plot.py +++ b/mslice/plotting/plot_window/cut_plot.py @@ -185,7 +185,6 @@ def change_axis_scale(self, xy_config): if ymin > 0: xy_config['y_range'] = (ymin, xy_config['y_range'][1]) - else: current_axis.set_yscale('linear') self.x_range = xy_config['x_range'] diff --git a/mslice/presenters/cut_plotter_presenter.py b/mslice/presenters/cut_plotter_presenter.py index 85a12fd3d..c9308aacd 100644 --- a/mslice/presenters/cut_plotter_presenter.py +++ b/mslice/presenters/cut_plotter_presenter.py @@ -139,7 +139,7 @@ def add_overplot_line(self, workspace_name, key, recoil, cif=None, y_has_logarit y = self._get_log_bragg_y_coords(len(y), 0.15, datum) self._overplot_cache[key] = plot_overplot_line(x, y, key, recoil, cache) - except (ValueError, IndexError) as e: + except (ValueError, IndexError): warnings.warn("No Bragg peak found.") def store_icut(self, icut): From 4d8cf8498ef120509ae24931045d31041ff06376 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Mon, 6 Jun 2022 11:14:07 +0100 Subject: [PATCH 15/29] Ammend test for changes made REF#766 --- mslice/presenters/cut_plotter_presenter.py | 10 ++++++---- mslice/tests/slice_plot_test.py | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/mslice/presenters/cut_plotter_presenter.py b/mslice/presenters/cut_plotter_presenter.py index c9308aacd..ce232e10a 100644 --- a/mslice/presenters/cut_plotter_presenter.py +++ b/mslice/presenters/cut_plotter_presenter.py @@ -102,18 +102,20 @@ def _get_log_bragg_y_coords(size, portion_of_axes, datum): datum = 0.001 if datum == 0 else datum y1, y2 = plt.gca().get_ylim() if (y2 > 0 and y1 > 0) or (y2 < 0 and y1 < 0): - total_steps = np.log10(y2/y1) + total_steps = np.log10(y2 / y1) elif y1 < 0: y1_int = -1 y2_int = 1 - total_steps = np.log10(y2 / y2_int) + np.log10(y1 / y1_int) + 2 + total_steps_up = np.log10(y2 / y2_int) + 1 if abs(y2) >= 1 else abs(y2) + total_steps_down = np.log10(y1 / y1_int) + 1 if abs(y1) >= 1 else abs(y1) + total_steps = total_steps_up + total_steps_down else: y1 = 1 if y1 == 0 else y1 y2 = 1 if y2 == 0 else y2 - total_steps = np.log10(y2/y1) + 1 + total_steps = np.log10(y2 / y1) + 1 adj_factor = total_steps * portion_of_axes / 2 - return np.resize(np.array([10**adj_factor, 10**(-adj_factor), np.nan]), size) * datum + return np.resize(np.array([10 ** adj_factor, 10 ** (-adj_factor), np.nan]), size) * datum def add_overplot_line(self, workspace_name, key, recoil, cif=None, y_has_logarithmic=None, datum=None): datum = 0 if datum is None else datum diff --git a/mslice/tests/slice_plot_test.py b/mslice/tests/slice_plot_test.py index 6a995c07f..2ee6a6144 100644 --- a/mslice/tests/slice_plot_test.py +++ b/mslice/tests/slice_plot_test.py @@ -81,7 +81,7 @@ def test_arbitrary_recoil_line(self, qt_get_int_mock): self.plot_figure.action_arbitrary_nuclei.isChecked = MagicMock(return_value=True) self.slice_plot.arbitrary_recoil_line() - self.slice_plotter.add_overplot_line.assert_called_once_with('workspace', 5, True, None) + self.slice_plotter.add_overplot_line.assert_called_once_with('workspace', 5, True, None, False, 0) @patch('mslice.plotting.plot_window.slice_plot.QtWidgets.QInputDialog.getInt') def test_arbitrary_recoil_line_cancelled(self, qt_get_int_mock): From 9c56ec2ae92e0902b3b410eaaa6215c242727b6b Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Mon, 6 Jun 2022 11:30:27 +0100 Subject: [PATCH 16/29] update cut plot test #REF766 --- mslice/tests/cut_plot_test.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mslice/tests/cut_plot_test.py b/mslice/tests/cut_plot_test.py index ba2096370..f1d6683c1 100644 --- a/mslice/tests/cut_plot_test.py +++ b/mslice/tests/cut_plot_test.py @@ -57,7 +57,7 @@ def test_change_scale_log(self): self.axes.get_lines = MagicMock(return_value=[line]) self.canvas.figure.gca = MagicMock(return_value=self.axes) xy_config = {'x_log': True, 'y_log': True, 'x_range': (0, 20), 'y_range': (1, 7)} - + self.cut_plot.update_bragg_peaks = MagicMock() self.cut_plot.change_axis_scale(xy_config) if LooseVersion(mpl_version) < LooseVersion('3.3'): @@ -67,6 +67,7 @@ def test_change_scale_log(self): self.axes.set_xscale.assert_called_once_with('symlog', linthresh=10.0) self.axes.set_yscale.assert_called_once_with('symlog', linthresh=1.0) + self.cut_plot.update_bragg_peaks.assert_called_once_with(refresh=True) self.assertEqual(self.cut_plot.x_range, (0, 20)) self.assertEqual(self.cut_plot.y_range, (1, 7)) From 9cf167d7c295abb5f0a2e44f27f41f7fa63f2a23 Mon Sep 17 00:00:00 2001 From: Robert Applin Date: Mon, 6 Jun 2022 11:33:35 +0100 Subject: [PATCH 17/29] Catch a runtime error when the detector ID doesn't exist Refs #754. Catches a runtime error when the detector ID provided is not consistent with the detector IDs stored in an instrument. --- .../models/workspacemanager/workspace_algorithms.py | 4 ++-- mslice/presenters/data_loader_presenter.py | 12 +++++------- mslice/tests/workspace_algorithms_test.py | 5 +++-- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/mslice/models/workspacemanager/workspace_algorithms.py b/mslice/models/workspacemanager/workspace_algorithms.py index 0d278547e..06e0704eb 100644 --- a/mslice/models/workspacemanager/workspace_algorithms.py +++ b/mslice/models/workspacemanager/workspace_algorithms.py @@ -135,8 +135,8 @@ def set_limits(ws, qmin, qmax, qstep, theta, emin, emax, estep): def _get_theta_for_limits(ws): - num_detectors = ws.raw_ws.getInstrument().getNumberDetectors(skipMonitors=True) - theta = [ws.raw_ws.detectorTwoTheta(ws.raw_ws.getDetector(i)) for i in range(num_detectors)] + num_hist = ws.raw_ws.getNumberHistograms() + theta = [ws.raw_ws.detectorTwoTheta(ws.raw_ws.getDetector(i)) for i in range(num_hist)] round_fac = 100 ws.is_PSD = not all(x < y for x, y in zip(theta, theta[1:])) # Rounds the differences to avoid pixels with same 2theta. Implies min limit of ~0.5 degrees diff --git a/mslice/presenters/data_loader_presenter.py b/mslice/presenters/data_loader_presenter.py index e817ec0f8..77b636ddb 100644 --- a/mslice/presenters/data_loader_presenter.py +++ b/mslice/presenters/data_loader_presenter.py @@ -59,18 +59,16 @@ def _load_ws(self, file_paths, ws_names, force_overwrite): allChecked = True else: load(filename=file_paths[i], output_workspace=ws_name) + + if not allChecked: + allChecked = self.check_efixed(ws_name, multi) + else: + apply_fixed_final_energy_to_a_valid_workspace(ws_name, self._EfCache) except (ValueError, TypeError) as e: self._view.error_loading_workspace(e) except RuntimeError: not_opened.append(ws_name) else: - if not allChecked: - try: - allChecked = self.check_efixed(ws_name, multi) - except ValueError: - not_opened.append(ws_name) - else: - apply_fixed_final_energy_to_a_valid_workspace(ws_name, self._EfCache) if self._main_presenter is not None: self._main_presenter.show_workspace_manager_tab() self._main_presenter.show_tab_for_workspace(get_workspace_handle(ws_name)) diff --git a/mslice/tests/workspace_algorithms_test.py b/mslice/tests/workspace_algorithms_test.py index 2699fa136..775795cf3 100644 --- a/mslice/tests/workspace_algorithms_test.py +++ b/mslice/tests/workspace_algorithms_test.py @@ -40,5 +40,6 @@ def test_process_limits_does_not_fail_for_direct_data(self): def test_process_limits_does_not_fail_for_indirect_data(self): process_limits(self.indirect_workspace) - def test_process_limits_does_not_fail_for_workspace_where_not_every_histogram_corresponds_to_a_detector(self): - process_limits(self.extended_workspace) + def test_process_limits_will_raise_a_runtime_error_for_a_workspace_where_not_every_histogram_has_a_detector(self): + with self.assertRaises(RuntimeError): + process_limits(self.extended_workspace) From 4a6b1df4e61a88d2407473a76b308846dbbe0b46 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Mon, 6 Jun 2022 16:47:53 +0100 Subject: [PATCH 18/29] respond to PR comments #REF766 --- mslice/plotting/plot_window/cut_plot.py | 23 ++++++++++++++++------ mslice/presenters/cut_plotter_presenter.py | 13 ++++++------ 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/mslice/plotting/plot_window/cut_plot.py b/mslice/plotting/plot_window/cut_plot.py index 650ab83a4..20817a09f 100644 --- a/mslice/plotting/plot_window/cut_plot.py +++ b/mslice/plotting/plot_window/cut_plot.py @@ -15,7 +15,7 @@ from mslice.presenters.quick_options_presenter import quick_options, check_latex from mslice.plotting.plot_window.plot_options import CutPlotOptions from mslice.plotting.plot_window.iplot import IPlot -from mslice.plotting.plot_window.overplot_interface import toggle_overplot_line,\ +from mslice.plotting.plot_window.overplot_interface import toggle_overplot_line, \ cif_file_powder_line from mslice.scripting import generate_script from mslice.util.compat import legend_set_draggable @@ -46,6 +46,8 @@ def __init__(self, figure_manager, cut_plotter_presenter, workspace_name): self._waterfall_cache = {} self._is_icut = False self._powder_lines = {} + self._datum_dirty = True + self._datum_cache = 0 def save_default_options(self): self.default_options = { @@ -292,6 +294,9 @@ def remove_line_by_index(self, line_index): line.remove() containers.remove(container) + self._datum_dirty = True + self.update_bragg_peaks(refresh=True) + def toggle_errorbar(self, line_index, line_options): container = self._canvas.figure.gca().containers[line_index] error_bar_elements = container.get_children()[1:] @@ -326,11 +331,14 @@ def is_icut(self): return self._is_icut def _get_overplot_datum(self): - return np.nanmedian([line.get_ydata() for line in self._canvas.figure.gca().get_lines() - if not self._cut_plotter_presenter.is_overplot(line)]) + if self._datum_dirty: + self._datum_cache = np.nanmedian([line.get_ydata() for line in self._canvas.figure.gca().get_lines() + if not self._cut_plotter_presenter.is_overplot(line)]) + self._datum_dirty = False + + return self._datum_cache - def update_bragg_peaks(self, refresh=None): - refresh = False if refresh is None else True + def update_bragg_peaks(self, refresh=False): if self.plot_window.action_aluminium.isChecked(): refresh and self._cut_plotter_presenter.hide_overplot_line(None, 'Aluminium') self._cut_plotter_presenter.add_overplot_line(self.ws_name, 'Aluminium', False, None, self.y_log, @@ -438,7 +446,7 @@ def _apply_offset(self, x, y): line.set_ydata(self._waterfall_cache[line][1] + ind * y) elif isinstance(line, LineCollection): if LooseVersion(mpl_version) < LooseVersion('3.3'): - line.set_offset_position('data') # set_offset_position is deprecated since 3.3 + line.set_offset_position('data') # set_offset_position is deprecated since 3.3 line.set_offsets((ind * x, ind * y)) def on_newplot(self, ax): @@ -466,6 +474,9 @@ def on_newplot(self, ax): if new_line and num_lines > 1: self.toggle_waterfall() + self._datum_dirty = True + self.update_bragg_peaks(refresh=True) + def generate_script(self, clipboard=False): try: generate_script(self.ws_name, None, self, self.plot_window, clipboard) diff --git a/mslice/presenters/cut_plotter_presenter.py b/mslice/presenters/cut_plotter_presenter.py index ce232e10a..df3fd21cf 100644 --- a/mslice/presenters/cut_plotter_presenter.py +++ b/mslice/presenters/cut_plotter_presenter.py @@ -11,6 +11,8 @@ from mslice.models.powder.powder_functions import compute_powder_line import warnings +BRAGG_SIZE_ON_AXES = 0.15 + class CutPlotterPresenter(PresenterUtility): @@ -104,10 +106,8 @@ def _get_log_bragg_y_coords(size, portion_of_axes, datum): if (y2 > 0 and y1 > 0) or (y2 < 0 and y1 < 0): total_steps = np.log10(y2 / y1) elif y1 < 0: - y1_int = -1 - y2_int = 1 - total_steps_up = np.log10(y2 / y2_int) + 1 if abs(y2) >= 1 else abs(y2) - total_steps_down = np.log10(y1 / y1_int) + 1 if abs(y1) >= 1 else abs(y1) + total_steps_up = np.log10(y2) + 1 if abs(y2) >= 1 else abs(y2) + total_steps_down = np.log10(-y1) + 1 if abs(y1) >= 1 else abs(y1) total_steps = total_steps_up + total_steps_down else: y1 = 1 if y1 == 0 else y1 @@ -117,8 +117,7 @@ def _get_log_bragg_y_coords(size, portion_of_axes, datum): adj_factor = total_steps * portion_of_axes / 2 return np.resize(np.array([10 ** adj_factor, 10 ** (-adj_factor), np.nan]), size) * datum - def add_overplot_line(self, workspace_name, key, recoil, cif=None, y_has_logarithmic=None, datum=None): - datum = 0 if datum is None else datum + def add_overplot_line(self, workspace_name, key, recoil, cif=None, y_has_logarithmic=None, datum=0): cache = self._cut_cache_dict[plt.gca()][0] cache.rotated = not is_twotheta(cache.cut_axis.units) and not is_momentum(cache.cut_axis.units) try: @@ -138,7 +137,7 @@ def add_overplot_line(self, workspace_name, key, recoil, cif=None, y_has_logarit if not y_has_logarithmic: y = np.array(y) * scale_fac / np.nanmax(y) + datum else: - y = self._get_log_bragg_y_coords(len(y), 0.15, datum) + y = self._get_log_bragg_y_coords(len(y), BRAGG_SIZE_ON_AXES, datum) self._overplot_cache[key] = plot_overplot_line(x, y, key, recoil, cache) except (ValueError, IndexError): From d6bd9cfb8b9a1fe3af0a66b0bca9b337a54134a9 Mon Sep 17 00:00:00 2001 From: Robert Applin Date: Mon, 6 Jun 2022 17:13:16 +0100 Subject: [PATCH 19/29] Remove line using index of line widget Refs #776. Ensures the line on a plot is deleted based on the index of its corresponding line widget. --- mslice/plotting/plot_window/cut_plot.py | 10 +++++----- mslice/plotting/plot_window/plot_options.py | 5 +++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/mslice/plotting/plot_window/cut_plot.py b/mslice/plotting/plot_window/cut_plot.py index e56245a72..9f36d7750 100644 --- a/mslice/plotting/plot_window/cut_plot.py +++ b/mslice/plotting/plot_window/cut_plot.py @@ -285,12 +285,12 @@ def set_line_options_by_index(self, line_index, line_options): def remove_line_by_index(self, line_index): containers = self._canvas.figure.gca().containers - container = containers[line_index] - container[0].remove() - for i in range(2): - for line in container[i + 1]: + if line_index < len(containers): + container = containers[line_index] + container[0].remove() + for line in container[1] + container[2]: line.remove() - containers.remove(container) + containers.remove(container) def toggle_errorbar(self, line_index, line_options): container = self._canvas.figure.gca().containers[line_index] diff --git a/mslice/plotting/plot_window/plot_options.py b/mslice/plotting/plot_window/plot_options.py index 8b6dcf05e..67104f853 100644 --- a/mslice/plotting/plot_window/plot_options.py +++ b/mslice/plotting/plot_window/plot_options.py @@ -208,7 +208,7 @@ def disconnect(self): def set_line_options(self, line_options): for i in range(len(line_options)): line_widget = LegendAndLineOptionsSetter(line_options[i], self.color_validator, self.show_legends) - line_widget.destroyed.connect(functools.partial(self.remove_line_widget, line_widget, i)) + line_widget.destroyed.connect(functools.partial(self.remove_line_widget, line_widget)) self.verticalLayout_legend.addWidget(line_widget) self._line_widgets.append(line_widget) @@ -235,7 +235,8 @@ def color_validator(self, selected): msg_box.exec_() return False - def remove_line_widget(self, selected, index): + def remove_line_widget(self, selected): + index = self._line_widgets.index(selected) self._line_widgets.remove(selected) self.removed_line.emit(index) From 9c79d6bad61350f54c1478f48e89862a355abb04 Mon Sep 17 00:00:00 2001 From: Robert Applin Date: Tue, 7 Jun 2022 08:37:04 +0100 Subject: [PATCH 20/29] Replace range-based for loop --- mslice/plotting/plot_window/plot_options.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mslice/plotting/plot_window/plot_options.py b/mslice/plotting/plot_window/plot_options.py index 67104f853..8168b8367 100644 --- a/mslice/plotting/plot_window/plot_options.py +++ b/mslice/plotting/plot_window/plot_options.py @@ -206,8 +206,8 @@ def disconnect(self): line_widget.destroyed.disconnect() def set_line_options(self, line_options): - for i in range(len(line_options)): - line_widget = LegendAndLineOptionsSetter(line_options[i], self.color_validator, self.show_legends) + for line_option in line_options: + line_widget = LegendAndLineOptionsSetter(line_option, self.color_validator, self.show_legends) line_widget.destroyed.connect(functools.partial(self.remove_line_widget, line_widget)) self.verticalLayout_legend.addWidget(line_widget) self._line_widgets.append(line_widget) From c5777842e02559652b01e1c4602d5b279444eec1 Mon Sep 17 00:00:00 2001 From: Robert Applin Date: Tue, 7 Jun 2022 09:52:09 +0100 Subject: [PATCH 21/29] Use deletion callback to remove the line from the plot options Refs #776. This fixes a crash caused by a delay in the 'destroyed' signal being emitted for a LegendAndLineOptionsSetter. I believe this delay is due to the deleteLater slot being triggered whilst the event loop is not running. This means the destroy signal is only called when the event loop is restarted, and at this point the plot options were already closed, and so there was a crash. --- mslice/plotting/plot_window/plot_options.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/mslice/plotting/plot_window/plot_options.py b/mslice/plotting/plot_window/plot_options.py index 8168b8367..6a831d559 100644 --- a/mslice/plotting/plot_window/plot_options.py +++ b/mslice/plotting/plot_window/plot_options.py @@ -2,7 +2,6 @@ from numpy import arange as np_arange from six import iteritems -import functools import qtpy.QtWidgets as QtWidgets from qtpy.QtCore import Signal @@ -207,8 +206,8 @@ def disconnect(self): def set_line_options(self, line_options): for line_option in line_options: - line_widget = LegendAndLineOptionsSetter(line_option, self.color_validator, self.show_legends) - line_widget.destroyed.connect(functools.partial(self.remove_line_widget, line_widget)) + line_widget = LegendAndLineOptionsSetter(line_option, self.color_validator, self.show_legends, + self.remove_line_widget) self.verticalLayout_legend.addWidget(line_widget) self._line_widgets.append(line_widget) @@ -284,9 +283,11 @@ class LegendAndLineOptionsSetter(QtWidgets.QWidget): inverse_styles = {v: k for k, v in iteritems(styles)} inverse_markers = {v: k for k, v in iteritems(markers)} - def __init__(self, line_options, color_validator, show_legends): + def __init__(self, line_options, color_validator, show_legends, remove_line_callback=None): super(LegendAndLineOptionsSetter, self).__init__() + self._deletion_callback = remove_line_callback + self.legend_text_label = QtWidgets.QLabel("Plot") self.legendText = QtWidgets.QLineEdit(self) self.legendText.setText(line_options['label']) @@ -383,6 +384,7 @@ def __init__(self, line_options, color_validator, show_legends): self.line_color.currentIndexChanged.connect(lambda selected: self.color_valid(selected)) self.delete_button = QtWidgets.QPushButton("Delete Line", self) row5.addWidget(self.delete_button) + self.delete_button.clicked.connect(self.deletion_callback) self.delete_button.clicked.connect(self.deleteLater) separator = QtWidgets.QFrame() @@ -390,6 +392,11 @@ def __init__(self, line_options, color_validator, show_legends): separator.setFrameShadow(QtWidgets.QFrame.Sunken) layout.addWidget(separator) + def deletion_callback(self): + if self._deletion_callback is not None: + self._deletion_callback(self) + self._deletion_callback = None + def color_valid(self, index): if self.color_validator is None: return From 0378ae9471d9da020333739c582df13d68e57af7 Mon Sep 17 00:00:00 2001 From: Robert Applin Date: Wed, 8 Jun 2022 10:55:47 +0100 Subject: [PATCH 22/29] Remove unused disconnect code --- mslice/plotting/plot_window/cut_plot.py | 2 -- mslice/plotting/plot_window/plot_options.py | 4 ---- 2 files changed, 6 deletions(-) diff --git a/mslice/plotting/plot_window/cut_plot.py b/mslice/plotting/plot_window/cut_plot.py index 9f36d7750..388e5955f 100644 --- a/mslice/plotting/plot_window/cut_plot.py +++ b/mslice/plotting/plot_window/cut_plot.py @@ -110,8 +110,6 @@ def window_closing(self): icut.window_closing() self.manager.button_pressed_connected(False) self.manager.picking_connected(False) - if self._plot_options_view is not None: - self._plot_options_view.disconnect() self.plot_window.close() def plot_options(self): diff --git a/mslice/plotting/plot_window/plot_options.py b/mslice/plotting/plot_window/plot_options.py index 6a831d559..4e86ba219 100644 --- a/mslice/plotting/plot_window/plot_options.py +++ b/mslice/plotting/plot_window/plot_options.py @@ -200,10 +200,6 @@ def __init__(self, parent, redraw_signal=None): self.chkShowLegends.stateChanged.connect(self.showLegendsEdited) self.showLegendsEdited.connect(self.disable_show_legend) - def disconnect(self): - for line_widget in self._line_widgets: - line_widget.destroyed.disconnect() - def set_line_options(self, line_options): for line_option in line_options: line_widget = LegendAndLineOptionsSetter(line_option, self.color_validator, self.show_legends, From ec688763746cb158b3f60a904c725b0ac1562508 Mon Sep 17 00:00:00 2001 From: Duc Le Date: Mon, 6 Jun 2022 19:29:51 +0100 Subject: [PATCH 23/29] Revert default Cut algo to Rebin --- mslice/app/mainwindow.py | 14 ++++++++++---- mslice/app/mainwindow.ui | 6 +++--- mslice/cli/_mslice_commands.py | 3 ++- mslice/filename.py | 0 mslice/models/cut/cut.py | 2 +- mslice/models/cut/cut_functions.py | 2 +- mslice/scripting/helperfunctions.py | 2 +- mslice/tests/command_line_test.py | 8 ++++---- mslice/widgets/cut/cut.py | 4 ++-- 9 files changed, 24 insertions(+), 17 deletions(-) create mode 100644 mslice/filename.py diff --git a/mslice/app/mainwindow.py b/mslice/app/mainwindow.py index f63042b8a..249726740 100644 --- a/mslice/app/mainwindow.py +++ b/mslice/app/mainwindow.py @@ -263,9 +263,15 @@ def is_energy_conversion_allowed(self): def print_startup_notifications(self): #if notifications are required to be printed on mslice start up, add to list. - print_list = ["WARNING: The default cut algorithm in mslice has been changed from 'Rebin (average counts)' \ -to 'Intergration (summed counts)'. This is expected to result in different output values to those obtained historically. \n\ -For more information, please refer to documentation at: https://mantidproject.github.io/mslice/cutting.html"] + + # Disable this notification pending decision on changing the default + #print_list = ["\nWARNING: The default cut algorithm in mslice has been changed " \ + # "from 'Rebin (average counts)' to 'Intergration (summed counts)'.\n" \ + # "This is expected to result in different output values to those obtained historically.\n" \ + # "For more information, please refer to documentation at: " \ + # "https://mantidproject.github.io/mslice/cutting.html"] + print_list = [] for item in print_list: - print(item) + for strn in item.split('\n'): + self._console.execute(f'print("{strn}")', hidden=True) diff --git a/mslice/app/mainwindow.ui b/mslice/app/mainwindow.ui index dabf6997b..082ebd9e6 100644 --- a/mslice/app/mainwindow.ui +++ b/mslice/app/mainwindow.ui @@ -466,9 +466,6 @@ true - - true - Integration (Sum Counts) @@ -477,6 +474,9 @@ true + + true + Rebin (Averages Counts) diff --git a/mslice/cli/_mslice_commands.py b/mslice/cli/_mslice_commands.py index 26156b9bd..f63278855 100644 --- a/mslice/cli/_mslice_commands.py +++ b/mslice/cli/_mslice_commands.py @@ -167,7 +167,7 @@ def Slice(InputWorkspace, Axis1=None, Axis2=None, NormToOne=False): return get_slice_plotter_presenter().create_slice(workspace, x_axis, y_axis, None, None, NormToOne, DEFAULT_CMAP) -def Cut(InputWorkspace, CutAxis=None, IntegrationAxis=None, NormToOne=False, Algorithm='Integration'): +def Cut(InputWorkspace, CutAxis=None, IntegrationAxis=None, NormToOne=False, Algorithm='Rebin'): """ Cuts workspace. :param InputWorkspace: Workspace to cut. The parameter can be either a python @@ -183,6 +183,7 @@ def Cut(InputWorkspace, CutAxis=None, IntegrationAxis=None, NormToOne=False, Alg ', , , , cm-1', or ', , , meV' Recognised energy units are 'meV' (default) and 'cm-1' :param NormToOne: if True the cut will be normalized to one. + :param Algorithm: the cut algorithm to use. Either 'Rebin' (default) or 'Integration' :return: """ from mslice.app.presenters import get_cut_plotter_presenter diff --git a/mslice/filename.py b/mslice/filename.py new file mode 100644 index 000000000..e69de29bb diff --git a/mslice/models/cut/cut.py b/mslice/models/cut/cut.py index eac4ea5b1..0d5e6853d 100644 --- a/mslice/models/cut/cut.py +++ b/mslice/models/cut/cut.py @@ -2,7 +2,7 @@ class Cut(object): """Groups parameters needed to cut and validates them""" def __init__(self, cut_axis, integration_axis, intensity_start, intensity_end, norm_to_one=False, width=None, - algorithm='Integration'): + algorithm='Rebin'): self.cut_axis = cut_axis self.integration_axis = integration_axis self.intensity_start = intensity_start diff --git a/mslice/models/cut/cut_functions.py b/mslice/models/cut/cut_functions.py index 33ca55234..54eb8e443 100644 --- a/mslice/models/cut/cut_functions.py +++ b/mslice/models/cut/cut_functions.py @@ -13,7 +13,7 @@ def output_workspace_name(selected_workspace, integration_start, integration_end integration_end) + ")" -def compute_cut(workspace, cut_axis, integration_axis, is_norm, algo='Integration', store=True): +def compute_cut(workspace, cut_axis, integration_axis, is_norm, algo='Rebin', store=True): out_ws_name = output_workspace_name(workspace.name, integration_axis.start, integration_axis.end) cut = mantid_algorithms.Cut(OutputWorkspace=out_ws_name, store=store, InputWorkspace=workspace, CutAxis=cut_axis.to_dict(), IntegrationAxis=integration_axis.to_dict(), diff --git a/mslice/scripting/helperfunctions.py b/mslice/scripting/helperfunctions.py index 07d517369..b33159675 100644 --- a/mslice/scripting/helperfunctions.py +++ b/mslice/scripting/helperfunctions.py @@ -176,7 +176,7 @@ def add_cut_lines_with_width(errorbars, script_lines, cuts): cut_start, cut_end = integration_start, min(integration_start + cut.width, integration_end) intensity_range = (cut.intensity_start, cut.intensity_end) norm_to_one = cut.norm_to_one - algo_str = '' if 'Integration' in cut.algorithm else ', Algorithm="{}"'.format(cut.algorithm) + algo_str = '' if 'Rebin' in cut.algorithm else ', Algorithm="{}"'.format(cut.algorithm) while cut_start != cut_end and index < len(errorbars): cut.integration_axis.start = cut_start diff --git a/mslice/tests/command_line_test.py b/mslice/tests/command_line_test.py index 736f43b28..286956d1a 100644 --- a/mslice/tests/command_line_test.py +++ b/mslice/tests/command_line_test.py @@ -148,13 +148,13 @@ def test_cut_non_psd(self, get_cpp, is_gui): get_cpp.return_value = CutPlotterPresenter() workspace = self.create_workspace('test_workspace_cut_cli') #test rebin - rebin_result = Cut(workspace, Algorithm='Rebin') + rebin_result = Cut(workspace) rebin_signal = rebin_result.get_signal() self.assertEqual(type(rebin_result), HistogramWorkspace) self.assertAlmostEqual(1.129, rebin_signal[5], 2) self.assertAlmostEqual(1.375, rebin_signal[8], 2) #test integration - int_result = Cut(workspace) + int_result = Cut(workspace, Algorithm='Integration') int_signal = int_result.get_signal() self.assertAlmostEqual(2.258, int_signal[5], 2) self.assertAlmostEqual(1.375, int_signal[8], 2) @@ -178,14 +178,14 @@ def test_cut_psd(self, get_cpp, is_gui): get_cpp.return_value = CutPlotterPresenter() workspace = self.create_pixel_workspace('test_workspace_cut_psd_cli') #test rebin - rebin_result = Cut(workspace, Algorithm='Rebin') + rebin_result = Cut(workspace) rebin_signal = rebin_result.get_signal() self.assertEqual(type(rebin_result), HistogramWorkspace) self.assertEqual(128, rebin_signal[0]) self.assertEqual(192, rebin_signal[29]) self.assertEqual(429, rebin_signal[15]) #test Integration - int_result = Cut(workspace) + int_result = Cut(workspace, Algorithm='Integration') int_signal = int_result.get_signal() self.assertEqual(type(int_result), HistogramWorkspace) self.assertAlmostEqual(64, int_signal[0], 2) diff --git a/mslice/widgets/cut/cut.py b/mslice/widgets/cut/cut.py index fcafa22e6..26bb19e01 100644 --- a/mslice/widgets/cut/cut.py +++ b/mslice/widgets/cut/cut.py @@ -46,8 +46,8 @@ def __init__(self, parent=None, *args, **kwargs): self.set_validators() self._en = EnergyUnits('meV') self._en_default = 'meV' - self._cut_alg_default = 'Integration' - self.set_cut_algorithm('Integration') + self._cut_alg_default = 'Rebin' + self.set_cut_algorithm('Rebin') self.cmbCutEUnits.currentIndexChanged.connect(self._changed_unit) self.cmbCutAlg.currentIndexChanged.connect(self.cut_algorithm_changed) From eef9b643f77d5b4f29ab11d1c0a5593e142eb9b7 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Wed, 8 Jun 2022 12:45:31 +0100 Subject: [PATCH 24/29] plot bragg peaks against first cut if waterfall #ref766 --- mslice/plotting/plot_window/cut_plot.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/mslice/plotting/plot_window/cut_plot.py b/mslice/plotting/plot_window/cut_plot.py index 20817a09f..b9f1f816e 100644 --- a/mslice/plotting/plot_window/cut_plot.py +++ b/mslice/plotting/plot_window/cut_plot.py @@ -332,8 +332,15 @@ def is_icut(self): def _get_overplot_datum(self): if self._datum_dirty: - self._datum_cache = np.nanmedian([line.get_ydata() for line in self._canvas.figure.gca().get_lines() - if not self._cut_plotter_presenter.is_overplot(line)]) + if not self.waterfall: + self._datum_cache = np.nanmedian([line.get_ydata() for line in self._canvas.figure.gca().get_lines() + if not self._cut_plotter_presenter.is_overplot(line)]) + else: + for line in self._canvas.figure.gca().get_lines(): + if not self._cut_plotter_presenter.is_overplot(line): + self._datum_cache = np.nanmedian([line.get_ydata()]) + break + self._datum_dirty = False return self._datum_cache @@ -434,6 +441,9 @@ def toggle_waterfall(self): self._apply_offset(self.plot_window.waterfall_x, self.plot_window.waterfall_y) else: self._apply_offset(0., 0.) + + self._datum_dirty = True + self.update_bragg_peaks(refresh=True) self._canvas.draw() def _apply_offset(self, x, y): From 25d49dc1648a0a9d4f8ebb564cef6d9a92abba5f Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Wed, 8 Jun 2022 12:49:18 +0100 Subject: [PATCH 25/29] resolve merge conflict #REF766 --- mslice/plotting/plot_window/cut_plot.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mslice/plotting/plot_window/cut_plot.py b/mslice/plotting/plot_window/cut_plot.py index b9f1f816e..be621152a 100644 --- a/mslice/plotting/plot_window/cut_plot.py +++ b/mslice/plotting/plot_window/cut_plot.py @@ -455,9 +455,10 @@ def _apply_offset(self, x, y): line.set_xdata(self._waterfall_cache[line][0] + ind * x) line.set_ydata(self._waterfall_cache[line][1] + ind * y) elif isinstance(line, LineCollection): - if LooseVersion(mpl_version) < LooseVersion('3.3'): - line.set_offset_position('data') # set_offset_position is deprecated since 3.3 - line.set_offsets((ind * x, ind * y)) + for index, path in enumerate(line._paths): + if not np.isnan(path.vertices).any(): + path.vertices = np.add(self._waterfall_cache[line][index], + np.array([[ind * x, ind * y], [ind * x, ind * y]])) def on_newplot(self, ax): # This callback should be activated by a call to errorbar From a2f94d939778e0746224b28a94feec80306cba45 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Wed, 8 Jun 2022 13:15:28 +0100 Subject: [PATCH 26/29] update waterfall test for bragg peak update #REF766 --- mslice/tests/cut_plot_test.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mslice/tests/cut_plot_test.py b/mslice/tests/cut_plot_test.py index f1d6683c1..2b4dfbfed 100644 --- a/mslice/tests/cut_plot_test.py +++ b/mslice/tests/cut_plot_test.py @@ -100,6 +100,7 @@ def test_update_legend(self): def test_waterfall(self): self.cut_plot._apply_offset = MagicMock() + self.cut_plot.update_bragg_peaks = MagicMock() self.cut_plot.waterfall = True self.cut_plot.waterfall_x = 1 self.cut_plot.waterfall_y = 2 @@ -108,3 +109,4 @@ def test_waterfall(self): self.cut_plot.waterfall = False self.cut_plot.toggle_waterfall() self.cut_plot._apply_offset.assert_called_with(0, 0) + self.cut_plot.update_bragg_peaks.assert_called_with(refresh=True) From bf02ccb3765fced9aa0445e7c8ad044bf42bb1ed Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Wed, 8 Jun 2022 14:32:41 +0100 Subject: [PATCH 27/29] dont uncheck bragg peaks on plot over #REF783 --- mslice/cli/plotfunctions.py | 2 +- mslice/plotting/plot_window/cut_plot.py | 4 ++-- mslice/plotting/plot_window/plot_figure_manager.py | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/mslice/cli/plotfunctions.py b/mslice/cli/plotfunctions.py index 95489e742..9781aba07 100644 --- a/mslice/cli/plotfunctions.py +++ b/mslice/cli/plotfunctions.py @@ -71,7 +71,7 @@ def errorbar(axes, workspace, *args, **kwargs): if not cur_canvas.manager.has_plot_handler(): cur_canvas.manager.add_cut_plot(presenter, workspace.name) cur_fig.canvas.draw() - cur_canvas.manager.update_axes(axes) + cur_canvas.manager.update_axes(axes, plot_over) cut = Cut(cut_axis, int_axis, intensity_min, intensity_max, workspace.norm_to_one, width='', algorithm=workspace.algorithm) diff --git a/mslice/plotting/plot_window/cut_plot.py b/mslice/plotting/plot_window/cut_plot.py index 9f36d7750..456c95e3b 100644 --- a/mslice/plotting/plot_window/cut_plot.py +++ b/mslice/plotting/plot_window/cut_plot.py @@ -435,14 +435,14 @@ def _apply_offset(self, x, y): path.vertices = np.add(self._waterfall_cache[line][index], np.array([[ind * x, ind * y], [ind * x, ind * y]])) - def on_newplot(self, ax): + def on_newplot(self, ax, plot_over): # This callback should be activated by a call to errorbar new_line = False line_containers = self._canvas.figure.gca().containers num_lines = len(line_containers) self.plot_window.action_waterfall.setEnabled(num_lines > 1) self.plot_window.toggle_waterfall_edit() - if not self._is_icut: + if not self._is_icut and not plot_over: self.plot_window.action_aluminium.setChecked(False) self.plot_window.action_copper.setChecked(False) self.plot_window.action_niobium.setChecked(False) diff --git a/mslice/plotting/plot_window/plot_figure_manager.py b/mslice/plotting/plot_window/plot_figure_manager.py index 67c63e1de..1857c5ab0 100644 --- a/mslice/plotting/plot_window/plot_figure_manager.py +++ b/mslice/plotting/plot_window/plot_figure_manager.py @@ -274,9 +274,9 @@ def update_grid(self): if self._ygrid: self.canvas.figure.gca().grid(True, axis='y') - def update_axes(self, ax): + def update_axes(self, ax, plot_over): if self.plot_handler is not None: - self.plot_handler.on_newplot(ax) + self.plot_handler.on_newplot(ax, plot_over) def move_window(self, x, y): center = QtWidgets.QDesktopWidget().screenGeometry().center() From ba85299f135df9e812818c040985f0b204dedffe Mon Sep 17 00:00:00 2001 From: Duc Le Date: Wed, 8 Jun 2022 18:12:08 +0100 Subject: [PATCH 28/29] Add maths details for slice and cuts --- docs/source/cutting.rst | 42 +- docs/source/images/math_ref/rebin_cuts.png | Bin 0 -> 335042 bytes docs/source/images/math_ref/rebin_grids.svg | 725 ++++++++++++++++++++ docs/source/index.rst | 1 + docs/source/math_ref.rst | 208 ++++++ 5 files changed, 969 insertions(+), 7 deletions(-) create mode 100644 docs/source/images/math_ref/rebin_cuts.png create mode 100644 docs/source/images/math_ref/rebin_grids.svg create mode 100644 docs/source/math_ref.rst diff --git a/docs/source/cutting.rst b/docs/source/cutting.rst index 5f2812d65..b3ed7ce19 100644 --- a/docs/source/cutting.rst +++ b/docs/source/cutting.rst @@ -92,12 +92,40 @@ that tab. When MSlice is used as a Mantid interface ``MD Histo`` type workspaces can also be saved to Mantid Workbench by clicking the ``Save to Workbench`` button either on the ``MD Histo`` or the ``Cut`` tab. +.. _Cutting_Algorithms: + Cutting Algorithms ------------------ -There are two different methods used to compute cuts. ``Rebin`` uses the basic rebinning algorithms directly and effectively averages -the counts in the integration range, whilst ``Integration`` sums the counts in the integration range. -For mantid major releases from ``v6.40``, the default cutting algorithm has been changed from ``Rebin`` to ``Integration``. This change -has been made because the ``Integration`` method can be used for both absolute and non-absolute units measurements. Conversely, for -absolute units measurements the ``Rebin`` method will give incorrect and misleading values. -As a result of this change, it is expected that values calculanced henceforth will differ from those calculated historically, if the -default integration method has been used. + +There are two different methods used to compute cuts: + +- ``Integration`` sums the (signal :math:`\times` bin width) in the integration range. +- ``Rebin`` averages the signal in the integration range. + +The two methods are described in more detail in the :ref:`Mathematical_Reference`, +but in short, there is a bin-dependent conversion factor between the two types of +cuts which depends on the data coverage in the integration range of that bin. +That is, if the integration range does not include regions without data +(e.g. due to kinematic constraints), then the two cuts will be equivalent except +for a constant scaling factor (proportional to the integration range). +However, if the integration range overlaps regions without data, +then the two cuts will give markedly different results. + +The default method is ``Rebin`` and is more suitable for DOS-types cuts which +integrate over :math:`|Q|` whilst if you are interested in cross-sections and +are integrating over energy transfer, it is recommended to use ``Integration``. + +There is an option in the ``Cut`` tab to change the cut algorithm from ``Rebin`` +to ``Integration`` or vice versa and this setting will be saved for subsequent +similar cuts on the same workspace. + +You can also change the default using the ``Options`` menu, ``Cut algorithm default`` +entry. This will change the default cut algorithm *for this session of MSlice* +(the default algorithm will revert to ``Rebin`` if you restart MSlice). + +.. + For mantid major releases from ``v6.40``, the default cutting algorithm has been changed from ``Rebin`` to ``Integration``. This change + has been made because the ``Integration`` method can be used for both absolute and non-absolute units measurements. Conversely, for + absolute units measurements the ``Rebin`` method will give incorrect and misleading values. + As a result of this change, it is expected that values calculanced henceforth will differ from those calculated historically, if the + default integration method has been used. diff --git a/docs/source/images/math_ref/rebin_cuts.png b/docs/source/images/math_ref/rebin_cuts.png new file mode 100644 index 0000000000000000000000000000000000000000..94279ca61fdff99832dcb4f0c317aea9a7380940 GIT binary patch literal 335042 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 r#Zu;z*L&qt}2+A%0V;nE{izEqa?&I^L~U* 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%0AcfqSa21ccn)BL1e}D5Z@0 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

M7C1r7KXD`EAZRx(mfj3iNvm~TWM_d~f34Y7jP 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 z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/source/index.rst b/docs/source/index.rst index 7cb4b79a9..74412db5c 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -18,6 +18,7 @@ to report any bugs or suggest any improvements to the program. cutting slicing cli + math_ref * :ref:`search` diff --git a/docs/source/math_ref.rst b/docs/source/math_ref.rst new file mode 100644 index 000000000..b6e54b36f --- /dev/null +++ b/docs/source/math_ref.rst @@ -0,0 +1,208 @@ +.. _Mathematical_Reference: + +Mathematical Reference +====================== + +This page describes the mathematical operations behind the ``Slice`` and ``Cut`` operations of MSlice + +In general, MSlice handles "reduced" (processed) inelastic neutron scattering data which has been +binned (histogrammed) in energy transfer for each detector / position-sensitive-detector (PSD) element. +We will use the terminology of the `Horace `_ program and +refer to these energy-detector-element bins as "pixels". + +Since the detector elements are in the laboratory coordinates, but we often want to plot the data +in reciprocal space, a coordinate transformation is needed. +This means that the input and output binning grids of the data will not be axis aligned, and will +instead look something like this: + +.. image:: images/math_ref/rebin_grids.svg + :width: 600 + +Where the square red grid represents the target (output) bins, and the slanted green grids +(parallelograms) represents the original bins ("pixels"). +As discussed in the :ref:`PSD_and_non-PSD_modes` section, MSlice makes a distinction between +**PSD** (fine green grid) and **non-PSD** (coarser green grid) data. + +``Slice`` refers to a rebin into a two dimensional output, whilst ``Cut`` refers to a rebin _or_ +integration into a one dimensional output. +For each type of data (**PSD** and **non-PSD**) we will describe each operation in turn. + + +PSD Slice +--------- + +For **PSD** data, MSlice uses *centre-point rebinning*, treating each input bin ("pixel") as a +point and summing the full signal of each pixel whose centres lie within an output bin +(illustrated in the image by the darker green shading in top left). +Thus the output signal in the :math:`(i,j)`\ th bin, :math:`Y_{ij}`, is: + +.. math:: + Y_{ij} = \frac{1}{N_{kl}} \sum_{kl} y_{kl} + +where :math:`y_{kl}` is the input signal in the input :math:`(k,l)`\ th bin +and the sum runs over the :math:`N_{kl}` number of bins whoses centres lie within the +boundaries of the :math:`(i,j)`\ th output bin. + +The above expression uses the ``NumEventsNormalization`` convention of Mantid which is the +same as that adopted by the `Horace `_ program. +The error values are considered to be standard deviations and are summed in quadrature. + +PSD Cut +------- + +Since MSlice allows users to specify bins in the non-integrating direction which are not +necessarily aligned with respect to the original data, a rebinning step as described above +is needed for the ``Cut`` operation too. + +This leads to the two types of behaviour ("algorithms") for the ``Cut`` operation described +in the :ref:`Cutting_Algorithms` section: + +- The default ``Rebin`` method just uses the rebinning described above with one axis having + only a single bin. +- The ``Integration`` method first rebins the data as described above with integration axis + divided into :math:`N_{\mathrm{int}} =` 100 bins. + It then calls the relevant Mantid algorithm + (`IntegrateMDHistoWorkspace `_\ ) + to integrate (sums the signal) in those 100 bins. + +Taking the :math:`j` index to be over the integration axis, the integrated ``Cut`` signal +:math:`C_i` is then given by: + +.. math:: + C_i^{\mathrm{integration}} = w_i \sum_{j \in \mathcal{D}} Y_{ij} + +where the index :math:`j` only runs over regions with data :math:`\mathcal{D}`, and the width +:math:`w_i = \sum_{j \in \mathcal{D}} w_{ij}` where :math:`w_{ij}` is the width in the +:math:`j`\ th direction of the :math:`(i,j)`\ th bin. + +Note that the equivalent expression for a ``Rebin`` cut is simply: + +.. math:: + C_i^{\mathrm{rebin}} = \sum_{j \in \mathcal{F}} Y_{ij} + +where now the index :math:`j` runs over the full integration range :math:`\mathcal{F}`. +The difference is thus a coordinate-dependent weighting factor :math:`w_i`. +If the integration range *does not include regions without data* (e.g. :math:`\mathcal{D} \equiv \mathcal{F}`) +then all the :math:`w_i` will be equal to the full integration width and the difference between +:math:`C_i^{\mathrm{integration}}` and :math:`C_i^{\mathrm{rebin}}` is a constant. + +However, if the integration range covers region with no data (e.g. beyond the kinematic limits) +then the two cuts *may* look very different because :math:`C_i^{\mathrm{integration}}` will weight +regions with more data more heavily than regions without data. + + +Non-PSD Slice +------------- + +For **non-PSD** data, MSlice uses *fractional rebinning*, where it first calculates the +overlap area between the input and output bins, and then sums only the fractions of the +signal of the input bins within the output bin (darker green shading in bottom right). + +The output signal is computed as: + +.. math:: + Y_{ij} = \left. \sum_{kl} y_{kl} f_{kl} \right/ \sum_{kl} f_{kl} + +and the output uncertainty as: + +.. math:: + E_{ij} = \left. \sqrt{\sum_{kl} e^2_{kl} f_{kl}} \right/ \sum_{kl} f_{kl} + +where :math:`f_{kl}` is the fractional overlap of the input :math:`(k,l)`\ th bin with +the output :math:`(i,j)`\ th bin. + +This is illustrated in the image at the start of the page by the square on the right +hand side with blue triangular and orange quadrilateral shaded regions. +The blue and orange shading illustrates the fractional overlap areas which weights +the signal in the top left and top right input bins (large parallelograms). + +Non-PSD Cuts +------------ + +Like for **PSD** data, there are two ``Cut`` "algorithms" for **non-PSD** data also. + +The ``Rebin`` cut algorithm performs the same operation described in the previous section +but with a single bin in the integration axis, yielding + +.. math:: + C_i^{\mathrm{rebin}} = \left. \sum_{j \in \mathcal{F}} Y_{ij} \right/ \sum_{j \in \mathcal{F}} F_{ij} + +where :math:`F_{ij} = \sum_{kl} f_{kl}`, and :math:`\mathcal{F}` indicates the full integration range. + +In order to support rebinning in the non-integration axis, the ``Integration`` algorithm +first rebins the data into the desired bins in the non-integration axis, +and 100 bins in the integration axis and then sums them as: + +.. math:: + C_i^{\mathrm{integration}} = \left. N_i \sum_{j \in \mathcal{F}} Y_{ij} w_{ij} \right/ \sum_{j \in \mathcal{F}} F_{ij} + +where :math:`N_i = \sum_{j \in \mathcal{D}} 1` is the number of :math:`j` bins at a given +:math:`i` with non-zero fraction (e.g. if the integration contains only regions with data +then :math:`N_i` = 100, otherwise :math:`N_i` will be less), +and :math:`w_{ij}` is the width along the :math:`j`\ th axis of the :math:`(i,j)`\ th bin. +The :math:`N_i` normalisation is needed because in the limiting case where all the fractions +:math:`F_i` are unity, the denominator would be :math:`N_i`, so we recover the usual +expression for integrating over a distribution. +Note that as previously, :math:`\mathcal{D}` indicates the region within the integration +range with non-zero fractions. + +Like with the **PSD** case there is thus an :math:`i` dependent scaling factor :math:`N_i w` +(assuming all the bins have the same width) between ``Cuts`` computed using the ``Rebin`` or +``Integration`` algorithm. +This scaling factor is a constant if the integration range includes only regions with data +(e.g. :math:`\mathcal{D} \equiv \mathcal{F}`), but will not be constant if the integration +overlaps regions without data. + +The difference is illustrated below: + +.. image:: images/math_ref/rebin_cuts.png + +The cuts have been normalised to the peak intensity so that the constant scaling factor between +the two algorithms factorises out. +In the top cut, integrating over :math:`6 \leq |Q| < 8 \mathrm{\AA}^{-1}` there are no regions +without data so the two cuts are equivalent except for a constant scaling factor. +In the bottom cut, integrating over :math:`8 \leq |Q| < 10 \mathrm{\AA}^{-1}` there is a large +region with no data, so now cuts from the two techniques differ markedly. +At :math:`E<0` meV Where the data covers the full integration range, we have :math:`N_i` = 100 +and the two cuts are equivalent. +As :math:`E` increases, :math:`N_i` decreases until at around 20 meV, it is :math:`N_i` = 50, +and we see that at that point the (normalised) ``Integration`` cut is half the intensity of +the (normalised) ``Rebin`` cut. + +A note on units +--------------- + +One advantage of inelastic neutron scattering over other techniques is that it is (relatively) +easy to normalise the measured data to absolute units. +At the ISIS Neutron and Muon Source if this normalisation is done, then the signal will be in +units of [milibarns per steradian per meV per formula unit] or [mb/sr/meV/f.u.]. + +An ``Integration`` over energy would then yield a differential cross-section in [mb/sr/f.u.], +whereas a ``Rebin`` over energy would leave the units unchanged at [mb/sr/meV/f.u.]. + +However, an ``Integration`` over :math:`|Q|` instead of energy will yield units of +[mb/Å/sr/meV/f.u.] rather [mb/meV/f.u.] and as such it may be more useful to perform an +average ``Rebin`` which will leave the units unchanged. + +Unfortunately, the input files read by MSlice do not indicate if the signal values saved +are in absolute units or not, so MSlice cannot automatically write the correct units to axes +- this is left to the user. + +A note on the regions of validity of the two algorithms +------------------------------------------------------- + +As can be seen in the example above, the ``Integration`` cut algorithm will produce low signals +where there is less data, whereas the ``Rebin`` cut algorithm will amplify the signals in such +regions - effectively assuming that the signal is constant across the integration range and +thus extrapolating over regions without data (so the only manifestation of the lack of data +are larger errorbars associated with these bins). + +This assumption *may* be valid for density-of-states (DOS) type cuts where one would expect +that the signal is approximately constant over :math:`|Q|` and only varies in energy. +Thus for these applications, it may be suitable to chose the ``Rebin`` algorithm, and to +extrapolate the high-energy, high-:math:`|Q|` regions which are kinematically inaccessible. + +Conversely, for integration over energy - for example over the elastic line to compute a +differential cross-section or over a finite energy crystal field excitation to obtain a +magnetic cross-section, the ``Integration`` algorithm should be chosen else the signal +in the cut will vary with the integration range and would not be a cross-section. From 061fff2415b341f4a1fb75f8efc9dae4e5f28e40 Mon Sep 17 00:00:00 2001 From: Duc Le Date: Thu, 9 Jun 2022 10:40:28 +0100 Subject: [PATCH 29/29] Remove note on default cut algo; clean up text --- docs/source/cutting.rst | 14 ++------- docs/source/images/math_ref/rebin_grids.svg | 2 +- docs/source/math_ref.rst | 32 +++++++++++---------- 3 files changed, 21 insertions(+), 27 deletions(-) diff --git a/docs/source/cutting.rst b/docs/source/cutting.rst index b3ed7ce19..3f55640bd 100644 --- a/docs/source/cutting.rst +++ b/docs/source/cutting.rst @@ -30,10 +30,9 @@ integrate over [0,3], [3,6], [6,9] and [9,10] respectively. Cuts with the same range from multiple datasets can be plotted by first selecting multiple workspaces in the left panel. -There are two different methods to compute cuts: ``Rebin`` and ``Integration``. -**NOTE: for mantid major releases from** ``v6.40``\ **, the default cutting algorithm has been changed from** ``Rebin`` -**to** ``Integration``\ **. For more detail on this change, and cutting algorithms in general, see the** *Cutting Algorithms* -**section below**. +There are two different methods to compute cuts: ``Rebin`` and ``Integration``, which can be selected from the +``Cut Algorithm`` drop down menu. The difference between these methods are described in the :ref:`Cutting_Algorithms` +section below and in more detail in the :ref:`Mathematical_Reference`. Clicking on the ``Norm to 1`` check box will cause the resulting cut data to be normalised such that the maximum of the data of each cut is unity. @@ -122,10 +121,3 @@ similar cuts on the same workspace. You can also change the default using the ``Options`` menu, ``Cut algorithm default`` entry. This will change the default cut algorithm *for this session of MSlice* (the default algorithm will revert to ``Rebin`` if you restart MSlice). - -.. - For mantid major releases from ``v6.40``, the default cutting algorithm has been changed from ``Rebin`` to ``Integration``. This change - has been made because the ``Integration`` method can be used for both absolute and non-absolute units measurements. Conversely, for - absolute units measurements the ``Rebin`` method will give incorrect and misleading values. - As a result of this change, it is expected that values calculanced henceforth will differ from those calculated historically, if the - default integration method has been used. diff --git a/docs/source/images/math_ref/rebin_grids.svg b/docs/source/images/math_ref/rebin_grids.svg index 24ca6f0e4..a0b72faa1 100644 --- a/docs/source/images/math_ref/rebin_grids.svg +++ b/docs/source/images/math_ref/rebin_grids.svg @@ -420,7 +420,7 @@ style="stroke-width:0.105833;stroke-miterlimit:4;stroke-dasharray:none" /> `_\ ) @@ -88,15 +90,15 @@ then all the :math:`w_i` will be equal to the full integration width and the dif However, if the integration range covers region with no data (e.g. beyond the kinematic limits) then the two cuts *may* look very different because :math:`C_i^{\mathrm{integration}}` will weight -regions with more data more heavily than regions without data. +regions with data more heavily than regions without data. Non-PSD Slice ------------- For **non-PSD** data, MSlice uses *fractional rebinning*, where it first calculates the -overlap area between the input and output bins, and then sums only the fractions of the -signal of the input bins within the output bin (darker green shading in bottom right). +overlap area between the input and output bins, and then sums only the fraction of the +signal of the input bins which overlaps the output bin. The output signal is computed as: @@ -111,10 +113,10 @@ and the output uncertainty as: where :math:`f_{kl}` is the fractional overlap of the input :math:`(k,l)`\ th bin with the output :math:`(i,j)`\ th bin. -This is illustrated in the image at the start of the page by the square on the right +This is illustrated in the :ref:`figure ` at the start of the page by the square on the right hand side with blue triangular and orange quadrilateral shaded regions. The blue and orange shading illustrates the fractional overlap areas which weights -the signal in the top left and top right input bins (large parallelograms). +the signal in the top left and top right input bins (large parallelograms) respectively. Non-PSD Cuts ------------ @@ -137,14 +139,14 @@ and 100 bins in the integration axis and then sums them as: C_i^{\mathrm{integration}} = \left. N_i \sum_{j \in \mathcal{F}} Y_{ij} w_{ij} \right/ \sum_{j \in \mathcal{F}} F_{ij} where :math:`N_i = \sum_{j \in \mathcal{D}} 1` is the number of :math:`j` bins at a given -:math:`i` with non-zero fraction (e.g. if the integration contains only regions with data +:math:`i` *with non-zero fraction* (e.g. if the integration contains only regions with data then :math:`N_i` = 100, otherwise :math:`N_i` will be less), and :math:`w_{ij}` is the width along the :math:`j`\ th axis of the :math:`(i,j)`\ th bin. The :math:`N_i` normalisation is needed because in the limiting case where all the fractions -:math:`F_i` are unity, the denominator would be :math:`N_i`, so we recover the usual +:math:`F_{ij}` are unity, the denominator would be :math:`N_i`, so we recover the usual expression for integrating over a distribution. Note that as previously, :math:`\mathcal{D}` indicates the region within the integration -range with non-zero fractions. +range with data (in this case equivalent to regions with non-zero fractions). Like with the **PSD** case there is thus an :math:`i` dependent scaling factor :math:`N_i w` (assuming all the bins have the same width) between ``Cuts`` computed using the ``Rebin`` or @@ -185,7 +187,7 @@ However, an ``Integration`` over :math:`|Q|` instead of energy will yield units average ``Rebin`` which will leave the units unchanged. Unfortunately, the input files read by MSlice do not indicate if the signal values saved -are in absolute units or not, so MSlice cannot automatically write the correct units to axes +are in absolute units or not, so MSlice cannot automatically display the correct units on plots - this is left to the user. A note on the regions of validity of the two algorithms @@ -193,8 +195,8 @@ A note on the regions of validity of the two algorithms As can be seen in the example above, the ``Integration`` cut algorithm will produce low signals where there is less data, whereas the ``Rebin`` cut algorithm will amplify the signals in such -regions - effectively assuming that the signal is constant across the integration range and -thus extrapolating over regions without data (so the only manifestation of the lack of data +regions. In effect, it assumes that the signal is constant across the integration range and +can be extrapolated over regions without data (so the only manifestation of the lack of data are larger errorbars associated with these bins). This assumption *may* be valid for density-of-states (DOS) type cuts where one would expect