1 #ifndef RADIANCE_SCALING_H 2 #define RADIANCE_SCALING_H 29 const std::string& Band_name)
41 const std::string& Band_name)
50 const std::string& Band_name)
58 virtual void print(std::ostream& Os)
const;
virtual void apply_scaling(const SpectralDomain &Grid, SpectralRange &Radiance) const
Apply scaling and offset coefficients to Radiance.
virtual blitz::Array< double, 1 > radiance_scaling_coeff_uncertainty() const =0
Return radiance scaling coefficients uncertainty for the output file.
virtual void print(std::ostream &Os) const
virtual double radiance_offset() const
Return radiance scaling offset for the output file.
This abstract class provides the generic capabilities for applying a radiance scaling to a Radiance...
AutoDerivative< double > offset
RadianceScaling(const DoubleWithUnit &Band_ref, const std::string &Band_name)
For different instruments, it is more natural to either work with wavenumbers (e.g., GOSAT) or wavelength (e.g., OCO).
RadianceScaling(const ArrayAd< double, 1 > &Scaling_coeff, const AutoDerivative< double > Offset, const DoubleWithUnit &Band_ref, const std::string &Band_name)
ArrayAd< double, 1 > scaling_coeff
This is a Mixin for classes that can be printed.
virtual ~RadianceScaling()
const blitz::Array< T, D > & value() const
void resize(const blitz::TinyVector< int, D > &Shape, int nvar)
virtual blitz::Array< double, 1 > radiance_scaling_coeff() const
Return radiance scaling coefficients for the output file.
We frequently have a double with units associated with it.
We have a number of different spectrums that appear in different parts of the code.
RadianceScaling(const ArrayAd< double, 1 > &Scaling_coeff, const DoubleWithUnit &Band_ref, const std::string &Band_name)
Contains classes to abstract away details in various Spurr Radiative Transfer software.
const T & value() const
Convert to type T.
This class models an Instrument correction.