From 7d206e95272453fe2874c88d4a2bd675cd6e0af4 Mon Sep 17 00:00:00 2001 From: Daniel D'Avella Date: Fri, 15 Feb 2019 11:40:03 -0500 Subject: [PATCH] Provide default data units in JWST data loader --- specutils/io/default_loaders/jwst_reader.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/specutils/io/default_loaders/jwst_reader.py b/specutils/io/default_loaders/jwst_reader.py index a8afefa27..9f4438220 100644 --- a/specutils/io/default_loaders/jwst_reader.py +++ b/specutils/io/default_loaders/jwst_reader.py @@ -52,9 +52,17 @@ def jwst_loader(filename, spectral_axis_unit=None, **kwargs): if hdu.name != 'EXTRACT1D': continue - wavelength = hdu.data['WAVELENGTH'] * u.Unit(hdu.header['TUNIT1']) - flux = hdu.data['FLUX'] * u.Unit(hdu.header['TUNIT2']) - error = hdu.data['ERROR'] * u.Unit(hdu.header['TUNIT3']) + # Provide reasonable defaults based on the units assigned by the + # extract1d step of the JWST pipeline. TUNIT fields should be + # populated by the pipeline, but it's apparently possible for them + # to be missing in some files. + wavelength_units = u.Unit(hdu.header.get('TUNIT1', 'um')) + flux_units = u.Unit(hdu.header.get('TUNIT2', 'mJy')) + error_units = u.Unit(hdu.header.get('TUNIT3', 'mJy')) + + wavelength = hdu.data['WAVELENGTH'] * wavelength_units + flux = hdu.data['FLUX'] * flux_units + error = hdu.data['ERROR'] * error_units meta = dict(slitname=hdu.header.get('SLTNAME', ''))