From a9946961f1fb7e362023b2e306b8e98b8da2c56f Mon Sep 17 00:00:00 2001 From: Ross Date: Sun, 17 May 2026 22:20:22 +0100 Subject: [PATCH] fix(tasks): Update _reduce_slab function to accept reduce_axis parameter for flexibility in reconstruction --- atlas/tasks.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/atlas/tasks.py b/atlas/tasks.py index 6255c6d8..085c4815 100644 --- a/atlas/tasks.py +++ b/atlas/tasks.py @@ -278,13 +278,13 @@ def series_reconstruct_task( spacing_y = source_axis_spacings[src_y] spacing_z = source_axis_spacings[src_z] - def _reduce_slab(slab): + def _reduce_slab(slab, reduce_axis=0): if recon_thickness_mode == "max": - out = np.max(slab, axis=0) + out = np.max(slab, axis=reduce_axis) elif recon_thickness_mode == "min": - out = np.min(slab, axis=0) + out = np.min(slab, axis=reduce_axis) else: - out = np.mean(slab, axis=0) + out = np.mean(slab, axis=reduce_axis) if np.issubdtype(volume.dtype, np.integer): info = np.iinfo(volume.dtype) @@ -348,7 +348,7 @@ def series_reconstruct_task( ) plane_builders[plane_norm] = { "count": int(len(slab_indices)), - "slice_fn": lambda idx, slabs=slab_indices: _reduce_slab(vol_zyx[:, slabs[idx], :]), + "slice_fn": lambda idx, slabs=slab_indices: _reduce_slab(vol_zyx[:, slabs[idx], :], reduce_axis=1), "pixel_spacing_out": [float(spacing_z), float(spacing_x)], "spacing_between_slices_out": float(plane_spacing), "slice_thickness_out": float(plane_thickness), @@ -363,7 +363,7 @@ def series_reconstruct_task( ) plane_builders[plane_norm] = { "count": int(len(slab_indices)), - "slice_fn": lambda idx, slabs=slab_indices: _reduce_slab(vol_zyx[:, :, slabs[idx]]), + "slice_fn": lambda idx, slabs=slab_indices: _reduce_slab(vol_zyx[:, :, slabs[idx]], reduce_axis=2), "pixel_spacing_out": [float(spacing_z), float(spacing_y)], "spacing_between_slices_out": float(plane_spacing), "slice_thickness_out": float(plane_thickness),