diff --git a/src/est/core/process/noise.py b/src/est/core/process/noise.py index 8624ccb4169b67e003bf7013bdaff5cd1fafcdd1..0545cce569d39cf6e2613512ec886a300e09cfc3 100644 --- a/src/est/core/process/noise.py +++ b/src/est/core/process/noise.py @@ -79,15 +79,17 @@ def process_noise_savgol( else: e_max += spectrum.e0 - if e_min > e_max: - raise ValueError(f"e min ({e_min}) > e max ({e_max})") - spectrum.larch_dict["noise_e_min"] = e_min spectrum.larch_dict["noise_e_max"] = e_max - mask = (spectrum.energy > e_min) & (spectrum.energy < (e_max)) - spectrum.raw_noise_savgol = numpy.mean(noise[mask]) - spectrum.norm_noise_savgol = spectrum.raw_noise_savgol / spectrum.edge_step + + if mask.any(): + spectrum.raw_noise_savgol = numpy.mean(noise[mask]) + spectrum.norm_noise_savgol = spectrum.raw_noise_savgol / spectrum.edge_step + else: + # Uses nan's instead of raising an exception. Otherwise we have much more failing workflows online (either E0 is wrong or the scan has not progressed past Emin, which is after the edge so the plots are fine). + spectrum.raw_noise_savgol = numpy.nan + spectrum.norm_noise_savgol = numpy.nan if callbacks: for callback in callbacks: