ReFRACtor
radiative_transfer_imp_base.h
Go to the documentation of this file.
1 #ifndef RADIATIVE_TRANSFER_IMP_BASE_H
2 #define RADIATIVE_TRANSFER_IMP_BASE_H
5 
6 namespace FullPhysics {
7 /****************************************************************/
16 class RadiativeTransferImpBase: public SubStateVectorArray<RadiativeTransferRetrievable> {
17 public:
20 
21 //-----------------------------------------------------------------------
26 //-----------------------------------------------------------------------
27 
28  virtual boost::shared_ptr<Spectrum> reflectance_ptr(const SpectralDomain& Spec_domain, int Spec_index,
29  bool Skip_jacobian = false) const = 0;
30 
31  virtual Spectrum reflectance(const SpectralDomain& Spec_domain, int Spec_index,
32  bool Skip_jacobian = false) const
33  {
34  Spectrum res = *reflectance_ptr(Spec_domain, Spec_index, Skip_jacobian);
35  return res;
36  }
37 
38 //-----------------------------------------------------------------------
43 //-----------------------------------------------------------------------
44  virtual void print(std::ostream& Os, bool Short_form = false) const { Os << desc(); }
45 
46 //-----------------------------------------------------------------------
49 //-----------------------------------------------------------------------
50  virtual std::string desc() const { return "RadiativeTransferImpBase"; }
51 
52 protected:
53 
54 //-----------------------------------------------------------------------
57 //-----------------------------------------------------------------------
59 
60 //-----------------------------------------------------------------------
62 //-----------------------------------------------------------------------
63  RadiativeTransferImpBase(const blitz::Array<double, 1>& Coeff,
64  const blitz::Array<bool, 1>& Used_flag)
66 
67 private:
68 };
69 }
70 #endif
Interface class for radiative transfer implementations that happen to have retrievable parameters...
virtual boost::shared_ptr< RadiativeTransferRetrievable > clone() const =0
virtual Spectrum reflectance(const SpectralDomain &Spec_domain, int Spec_index, bool Skip_jacobian=false) const
Calculate reflectance for the given set of wavenumbers/wavelengths.
RadiativeTransferImpBase()
Default constructor, derived class should call init if they use this constructor. ...
For different instruments, it is more natural to either work with wavenumbers (e.g., GOSAT) or wavelength (e.g., OCO).
RadiativeTransferImpBase(const blitz::Array< double, 1 > &Coeff, const blitz::Array< bool, 1 > &Used_flag)
Constructor that sets the coefficient() and used_flag() values.
This is a full spectrum, which contains a SpectralRange and SpectralDomain.
Definition: spectrum.h:18
virtual boost::shared_ptr< Spectrum > reflectance_ptr(const SpectralDomain &Spec_domain, int Spec_index, bool Skip_jacobian=false) const =0
For the sake of being able to return a Spectrum class from Python The reflectance_ptr method here ser...
virtual void print(std::ostream &Os, bool Short_form=false) const
Print to stream.
virtual std::string desc() const
Description of object, to be printed to stream.
It is common to have a class that is an Observable with a set of coefficients, a subset of which are ...
Contains classes to abstract away details in various Spurr Radiative Transfer software.
Definition: doxygen_python.h:1
As a design principle, we have each base class with the absolutely minimum interface needed for use f...

Copyright © 2017, California Institute of Technology.
ALL RIGHTS RESERVED.
U.S. Government Sponsorship acknowledged.
Generated Fri Aug 24 2018 15:44:10