1 #ifndef FLUOR_EFFECT_IMP_BASE_H 2 #define FLUOR_EFFECT_IMP_BASE_H 4 #include <boost/lexical_cast.hpp> 5 #include <boost/shared_ptr.hpp> 20 const blitz::Array<bool, 1>& Used_flag,
26 const Unit& Retrieval_unit);
37 {
return "Fluorescence Surface Coefficient " + boost::lexical_cast<std::string>(i + 1); }
38 virtual void print(std::ostream& Os)
const;
40 virtual std::string
name()
const {
return "fluorescence_effect"; }
57 return (t < 0 ? 0 : sqrt(t));
75 return (t < 0 ? 0 : sqrt(t));
virtual std::string name() const
Name of spectrum effect, for use when outputting effects of effect.
virtual std::string sub_state_identifier() const
Return a string to identify this part of the state, this name should be all lower case and seperate p...
double fluorescence_slope_uncertainty() const
Assumed uncertainty of fluorescence slope.
virtual void apply_effect(Spectrum &Spec, const ForwardModelSpectralGrid &Forward_model_grid) const
Apply correction to spectrum in place.
As a design principle, we have each base class with the absolutely minimum interface needed for use f...
double fluorescence_at_reference() const
Fluorescence value at reference point.
This is the Forward Model spectral grid.
blitz::Array< double, 2 > sv_cov_sub
The subset of cov_full that is "owned" by this class, what was passed through update_sub_state.
virtual ArrayAd< double, 1 > contribution() const
Implements adding the effect of fluorescence to A-Band spectrum by using a retrievable across the ban...
virtual void print(std::ostream &Os) const
const blitz::Array< T, D > & value() const
FluorescenceEffect(const blitz::Array< double, 1 > &Coeff, const blitz::Array< bool, 1 > &Used_flag, const boost::shared_ptr< RtAtmosphere > &Atm, const boost::shared_ptr< StokesCoefficient > &Stokes_coef, const DoubleWithUnit &Lza, const int Spec_index, const DoubleWithUnit &Reference, const Unit &Retrieval_unit)
This is a full spectrum, which contains a SpectralRange and SpectralDomain.
virtual boost::shared_ptr< SpectrumEffect > clone() const
Clone a SpectrumEffect object.
double fluorescence_slope() const
Fluorescence slope across band.
double fluorescence_at_reference_uncertainty() const
Assumed uncertainty of fluorescence at reference point.
We frequently have a double with units associated with it.
Libraries such as boost::units allow unit handling where we know the units at compile time...
Contains classes to abstract away details in various Spurr Radiative Transfer software.
ArrayAd< double, 1 > coeff
Coefficients.
virtual std::string state_vector_name_i(int i) const
Return state vector name for ith entry in coeff.