ReFRACtor
spectrum_effect.h
Go to the documentation of this file.
1 #ifndef SPECTRUM_EFFECT_H
2 #define SPECTRUM_EFFECT_H
4 #include "spectrum.h"
5 
6 namespace FullPhysics {
7  class ForwardModelSpectralGrid;
8 
9 /****************************************************************/
15 class SpectrumEffect : virtual public StateVectorObserver,
16  public Observable<SpectrumEffect> {
17 public:
18  virtual ~SpectrumEffect() {}
19 
21  { add_observer_do(Obs, *this);}
23  { remove_observer_do(Obs, *this);}
24 
25 //-----------------------------------------------------------------------
29 //-----------------------------------------------------------------------
30 
31  virtual void apply_effect(Spectrum& Spec,
32  const ForwardModelSpectralGrid& Forward_model_grid) const = 0;
33 
34 //-----------------------------------------------------------------------
42 //-----------------------------------------------------------------------
43 
44  virtual boost::shared_ptr<SpectrumEffect> clone() const = 0;
45 
46 //-----------------------------------------------------------------------
48 //-----------------------------------------------------------------------
49 
50  virtual std::string name() const = 0;
51 
52 };
53 }
54 #endif
virtual std::string name() const =0
Name of spectrum effect, for use when outputting effects of effect.
This is the Forward Model spectral grid.
void add_observer_do(Observer< SpectrumEffect > &Obs, SpectrumEffect &t)
Add an observer.
Definition: observer.h:148
This is an observer of a StateVector.
void remove_observer_do(Observer< SpectrumEffect > &Obs, SpectrumEffect &t)
Remove an observer.
Definition: observer.h:173
This class models models any effects that need to be applied to high resolution spectra after the rad...
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
virtual void add_observer(Observer< SpectrumEffect > &Obs)
Add an observer.
Contains classes to abstract away details in various Spurr Radiative Transfer software.
Definition: doxygen_python.h:1
virtual void apply_effect(Spectrum &Spec, const ForwardModelSpectralGrid &Forward_model_grid) const =0
Apply correction to spectrum in place.
virtual boost::shared_ptr< SpectrumEffect > clone() const =0
Clone a SpectrumEffect object.
virtual void remove_observer(Observer< SpectrumEffect > &Obs)
Remove an observer.

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