Fix memory leak in streak finder #3

Merged
augustin_s merged 15 commits from ext-dorofe_e/dap:cbd_bugfix into main 2025-07-15 10:21:21 +02:00
Showing only changes of commit abae2288e7 - Show all commits

View File

@@ -8,7 +8,6 @@ https://github.com/simply-nicky/streak_finder/
"""
import h5py
import numpy as np
from psutil import virtual_memory
from streak_finder.label import Structure2D
from streak_finder.streak_finder import detect_peaks, detect_streaks, filter_peaks
from streak_finder._src.src.median import median
@@ -52,7 +51,6 @@ def calc_streakfinder_analysis(results, data, pf_pixel_mask):
_calc_streakfinder_analysis(results, snr, pf_pixel_mask)
except Exception as error: # Broad exception - we don't want to break anything here
results["cbd_error"] = f"StreakFind - Error processing CBD data:\n{error}"
print(f"mem used after {virtual_memory().used // pow(2, 30)} Gb \n")
return data
@@ -142,8 +140,8 @@ def _calc_streakfinder_analysis(results, snr, mask):
]
if not all(param in results.keys() for param in params_required):
print(f"ERROR: Not enough parameters for streak finder analysis. Skipping.\n"
f"{params_required=}")
results["cbd_error"] = (f"ERROR: Not enough parameters for streak finder analysis. "
f"Skipping.\n{params_required=}")
return
peak_structure_radius = results["cbd_peak_structure_radius"] # peak
@@ -164,7 +162,6 @@ def _calc_streakfinder_analysis(results, snr, mask):
y_center = results.get("beam_center_y", None)
mask_rois = results.get("cbd_mask_rois", []) # list of [x_min, x_max, y_min, y_max]
for mask_roi in mask_rois:
mask[mask_roi[2]: mask_roi[3], mask_roi[0]: mask_roi[1]] = False