ReFRACtor
radiative_transfer_fixed_stokes_coefficient.h
Go to the documentation of this file.
1 #ifndef RADIATIVE_TRANSFER_FIXED_STOKES_COEFFICIENT_H
2 #define RADIATIVE_TRANSFER_FIXED_STOKES_COEFFICIENT_H
3 #include "radiative_transfer.h"
4 #include "observer.h"
5 #include "named_spectrum.h"
6 #include "stokes_coefficient.h"
7 
8 namespace FullPhysics {
9 /****************************************************************/
15  public Observable<std::vector<boost::shared_ptr<NamedSpectrum> > > {
16 public:
18 
19 //-----------------------------------------------------------------------
22 //-----------------------------------------------------------------------
23 
25  {return stokes_coef;}
26 
27 //-----------------------------------------------------------------------
29 //-----------------------------------------------------------------------
30 
31  virtual int number_spectrometer() const
32  { return stokes_coef->stokes_coefficient().rows();}
33  virtual Spectrum reflectance
34  (const SpectralDomain& Spec_domain, int Spec_index,
35  bool Skip_jacobian = false) const;
36  virtual void print(std::ostream& Os, bool Short_form = false) const
37  {
38  Os << *stokes_coef;
39  }
40 
42  virtual void add_observer(Observer<std::vector<boost::shared_ptr<NamedSpectrum> > > & Obs)
43  { add_observer_do(Obs); }
44  virtual void remove_observer(Observer<std::vector<boost::shared_ptr<NamedSpectrum> > >& Obs)
45  { remove_observer_do(Obs); }
46 
47 protected:
48 //-----------------------------------------------------------------------
52 //-----------------------------------------------------------------------
53 
55  const boost::shared_ptr<StokesCoefficient>& Stokes_coef)
56  : stokes_coef(Stokes_coef) {}
57 
58 //-----------------------------------------------------------------------
60 //-----------------------------------------------------------------------
61 
63 
66 };
67 }
68 #endif
virtual int number_spectrometer() const
Number of spectrometer we have.
virtual Spectrum reflectance(const SpectralDomain &Spec_domain, int Spec_index, bool Skip_jacobian=false) const
Calculate reflectance for the given set of wavenumbers/wavelengths.
For different instruments, it is more natural to either work with wavenumbers (e.g., GOSAT) or wavelength (e.g., OCO).
void add_observer_do(Observer< std::vector< boost::shared_ptr< NamedSpectrum > > > &Obs, std::vector< boost::shared_ptr< NamedSpectrum > > &t)
Add an observer.
Definition: observer.h:148
virtual void add_observer(Observer< std::vector< boost::shared_ptr< NamedSpectrum > > > &Obs)
Required observable functions.
void remove_observer_do(Observer< std::vector< boost::shared_ptr< NamedSpectrum > > > &Obs, std::vector< boost::shared_ptr< NamedSpectrum > > &t)
Remove an observer.
Definition: observer.h:173
virtual void remove_observer(Observer< std::vector< boost::shared_ptr< NamedSpectrum > > > &Obs)
Remove an observer.
virtual void print(std::ostream &Os, bool Short_form=false) const
Print to stream.
This runs a Radiative Transfer code to determine the reflectance for a given set of wavelengths...
This is a full spectrum, which contains a SpectralRange and SpectralDomain.
Definition: spectrum.h:18
Mixin for a class that allows other classes to observe it state.
Definition: observer.h:12
RadiativeTransferFixedStokesCoefficient(const boost::shared_ptr< StokesCoefficient > &Stokes_coef)
Constructor.
Contains classes to abstract away details in various Spurr Radiative Transfer software.
Definition: doxygen_python.h:1
RadiativeTransferFixedStokesCoefficient()
Default constructor, derived classes should set up stokes_coef.
boost::shared_ptr< StokesCoefficient > stokes_coef
Object to go from stokes vector to reflectance.
const boost::shared_ptr< StokesCoefficient > & stokes_coefficient() const
Stokes coefficients used to go from Stokes vector to scalar reflectance.
For GOSAT and OCO, we have a set of stokes coefficients to go from Stokes vector to radiation...
Simple Mixin to be and Observer of another object of class T.
Definition: observer.h:29

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