From 227034e852a287a017800502a8c2ab5f9006d1dd Mon Sep 17 00:00:00 2001 From: JialunLuo Date: Mon, 19 Jul 2021 16:19:00 -0400 Subject: [PATCH 1/2] Update spe2py.py Include handling for WavelengthError in the footer when Wavelength is not present (due to the presence of a calibration) --- spe2py.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/spe2py.py b/spe2py.py index f21848e..243ff08 100644 --- a/spe2py.py +++ b/spe2py.py @@ -158,11 +158,25 @@ def _get_wavelength(self): try: wavelength_string = StringIO(self.footer.SpeFormat.Calibrations.WavelengthMapping.Wavelength.cdata) except AttributeError: - print("XML Footer was not loaded prior to calling _get_wavelength") - raise + """ + possibly because a calibration is present. + Try getting the WavelengthError.cdata instead of Wavelength.cdata when calibration is present. + """ + try: + wavelengthErrorStr = self.footer.SpeFormat.Calibrations.WavelengthMapping.WavelengthError.cdata + wavelengthErrorStrStream = StringIO(wavelengthErrorStr.replace(" ", "\n")) + wavelengthError = np.loadtxt(wavelengthErrorStrStream, delimiter=',') + return wavelengthError[:,0] + except: + print("XML Footer was not loaded prior to calling _get_wavelength") + return None except IndexError: print("XML Footer does not contain Wavelength Mapping information") - return + raise + + + + wavelength = np.loadtxt(wavelength_string, delimiter=',') From 5a9f7b803f99ff987903f3a77631af2b32ed642f Mon Sep 17 00:00:00 2001 From: JialunLuo Date: Mon, 19 Jul 2021 16:25:07 -0400 Subject: [PATCH 2/2] Update spe2py.py Minor fix for return statements --- spe2py.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spe2py.py b/spe2py.py index 243ff08..b8bba6d 100644 --- a/spe2py.py +++ b/spe2py.py @@ -169,10 +169,10 @@ def _get_wavelength(self): return wavelengthError[:,0] except: print("XML Footer was not loaded prior to calling _get_wavelength") - return None + return except IndexError: print("XML Footer does not contain Wavelength Mapping information") - raise + return