diff --git a/docs/release_notes/next/fix-2222-Monitor-normalisation-RuntimeError-No-logfile-stack b/docs/release_notes/next/fix-2222-Monitor-normalisation-RuntimeError-No-logfile-stack new file mode 100644 index 00000000000..7dda0de66d0 --- /dev/null +++ b/docs/release_notes/next/fix-2222-Monitor-normalisation-RuntimeError-No-logfile-stack @@ -0,0 +1,2 @@ +2222: Monitor normalisation: RuntimeError: No logfile available for this stack. + diff --git a/mantidimaging/core/operations/base_filter.py b/mantidimaging/core/operations/base_filter.py index 2dfdd03cfde..30cf02bfe1b 100644 --- a/mantidimaging/core/operations/base_filter.py +++ b/mantidimaging/core/operations/base_filter.py @@ -28,6 +28,7 @@ class BaseFilter: link_histograms = False show_negative_overlay = True operate_on_sinograms = False + allow_for_180_projection = True SINOGRAM_FILTER_INFO = "This filter will work on a\nsinogram view of the data." diff --git a/mantidimaging/core/operations/monitor_normalisation/monitor_normalisation.py b/mantidimaging/core/operations/monitor_normalisation/monitor_normalisation.py index ec0c4ec1ae1..21a914dbe42 100644 --- a/mantidimaging/core/operations/monitor_normalisation/monitor_normalisation.py +++ b/mantidimaging/core/operations/monitor_normalisation/monitor_normalisation.py @@ -31,6 +31,7 @@ class MonitorNormalisation(BaseFilter): """ filter_name = "Monitor Normalisation" link_histograms = True + allow_for_180_projection = False @staticmethod def filter_func(images: ImageStack, progress=None) -> ImageStack: diff --git a/mantidimaging/gui/windows/operations/presenter.py b/mantidimaging/gui/windows/operations/presenter.py index 0952a983d01..c0d17f37a59 100644 --- a/mantidimaging/gui/windows/operations/presenter.py +++ b/mantidimaging/gui/windows/operations/presenter.py @@ -277,10 +277,11 @@ def _post_filter(self, updated_stacks: list[ImageStack], task): use_new_data = self._wait_for_stack_choice(stack, stack.id) # if the stack that was kept happened to have a proj180 stack - then apply the filter to that too if stack.has_proj180deg() and use_new_data and not self.applying_to_all: - # Apply to proj180 synchronously - this function is already running async - # and running another async instance causes a race condition in the parallel module - # where the shared data can be removed in the middle of the operation of another operation - self._do_apply_filter_sync([stack.proj180deg]) + if self.model.selected_filter.allow_for_180_projection: + # Apply to proj180 synchronously - this function is already running async + # and running another async instance causes a race condition in the parallel module + # where the shared data can be removed in the middle of the operation of another operation + self._do_apply_filter_sync([stack.proj180deg]) if np.any(stack.data < 0): negative_stacks.append(stack)