Source code for sospice.calibrate.uncertainties

import astropy.units as u

from ..instrument_modelling import Spice, Study, Observation


[docs]def spice_error(hdu=None, data=None, header=None, verbose=True): """ Return total (measured) signal increase and standard deviation due to noises Parameters ---------- hdu: astropy.io.fits.hdu.image.ImageHDU SPICE L2 FITS HDU data: numpy.ndarray SPICE L2 FITS data, assumed to be in W / m2 / sr / nm header: astropy.io.fits.header.Header SPICE L2 FITS header verbose: bool If True, displays details Return ------ float: Average contribution of dark current and background to measured signal dict: Noise standard deviations for the different components (and total) Either hdu, or data and header should be provided. Note: see docstring of ``Observation.noise_effects()`` for more details about methods and assumptions. """ if data is None or header is None: if hdu is None: raise RuntimeError("Either hdu, or data and header should be provided") header = hdu.header data = hdu.data if header["LEVEL"] != "L2": raise RuntimeError("Level should be L2") data *= u.Unit(header["BUNIT"]) study = Study() study.init_from_header(header) if verbose: print(f"Getting observation parameters from {header['EXTNAME']}") print(study) instrument = Spice() observation = Observation(instrument, study) av_noise_contribution, sigma = observation.noise_effects_from_l2( data, study.av_wavelength ) return av_noise_contribution, sigma