From 0819a3aea54a62387e53ed8abd8ad57220fb5516 Mon Sep 17 00:00:00 2001 From: woutdenolf <woutdenolf@users.sf.net> Date: Wed, 5 Feb 2025 05:55:00 +0100 Subject: [PATCH] read_concatenated_xas: handle NaNs with masked arrays --- src/est/io/concatenated.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/est/io/concatenated.py b/src/est/io/concatenated.py index 21db1cb8..156f9bac 100644 --- a/src/est/io/concatenated.py +++ b/src/est/io/concatenated.py @@ -4,6 +4,7 @@ from typing import Tuple, Dict, Any import pint import numpy +import numpy.ma from est import settings from est.io.information import InputInformation @@ -40,7 +41,7 @@ def read_concatenated_xas( if information.skip_concatenated_n_spectra: ramp_slices = ramp_slices[information.skip_concatenated_n_spectra :] - interpolated_spectra = numpy.zeros( + interpolated_spectra = numpy.ma.masked_all( (len(energy), len(ramp_slices), 1), dtype=raw_spectra.dtype ) for i, ramp_slice in enumerate(ramp_slices): @@ -49,12 +50,15 @@ def read_concatenated_xas( if information.skip_concatenated_n_points: raw_spectrum_i[: information.skip_concatenated_n_points] = numpy.nan raw_spectrum_i[-information.skip_concatenated_n_points :] = numpy.nan - interpolated_spectra[:, i, 0] = numpy.interp( + spectrum_i = numpy.interp( energy, raw_energy_i, raw_spectrum_i, left=numpy.nan, right=numpy.nan, ) + interpolated_spectra[:, i, 0] = numpy.ma.masked_array( + spectrum_i, mask=~numpy.isfinite(spectrum_i) + ) return interpolated_spectra, energy * information.energy_unit, config -- GitLab