Skip to content

Commit

Permalink
Fix Monitor Normalization Error for 180-Degree Stack (#2287)
Browse files Browse the repository at this point in the history
  • Loading branch information
samtygier-stfc authored Aug 14, 2024
2 parents fc02f59 + 2fc72ec commit 31f6373
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 4 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
2222: Monitor normalisation: RuntimeError: No logfile available for this stack.

1 change: 1 addition & 0 deletions mantidimaging/core/operations/base_filter.py
Original file line number Diff line number Diff line change
Expand Up @@ -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."

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
9 changes: 5 additions & 4 deletions mantidimaging/gui/windows/operations/presenter.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down

0 comments on commit 31f6373

Please sign in to comment.