Source code for taurex.data.spectrum.taurex

from .array import ArraySpectrum
import numpy as np
from taurex.util.util import wnwidth_to_wlwidth


[docs]class TaurexSpectrum(ArraySpectrum): """ Observation is a taurex spectrum from a HDF5 file An instrument function must have been used for this to work Parameters ----------- filename: string Path to taurex spectrum HDF5 output. """ def __init__(self, filename=None): super().__init__(self._load_from_hdf5(filename)) def _load_from_hdf5(self, filename): import h5py with h5py.File(filename, 'r') as f: try: wngrid = f['Output']['Spectra']['instrument_wngrid'][:] except KeyError: self.error('Could not find instrument outputs in HDF5, ' 'this was caused either by the HDF5 being a ' 'retrieval output or not running with some ' 'form of instrument in the forward model' ' input par file') raise KeyError('Instrument output not found') spectrum = f['Output']['Spectra']['instrument_spectrum'][:] noise = f['Output']['Spectra']['instrument_noise'][:] wnwidth = f['Output']['Spectra']['instrument_wnwidth'][:] wlgrid = 10000/wngrid wlwidth = wnwidth_to_wlwidth(wngrid, wnwidth) return np.vstack((wlgrid, spectrum, noise, wlwidth)).T