ReFRACtor
solar_absorption_and_continuum.h
Go to the documentation of this file.
1 #ifndef SOLAR_ABSORPTION_AND_CONTINUUM_H
2 #define SOLAR_ABSORPTION_AND_CONTINUUM_H
3 #include "solar_model.h"
4 #include "solar_doppler_shift.h"
7 #include <boost/shared_ptr.hpp>
8 
9 namespace FullPhysics {
10 /****************************************************************/
26 public:
27 //-----------------------------------------------------------------------
30 //-----------------------------------------------------------------------
31 
33  const boost::shared_ptr<SolarDopplerShift>& doppler_shiftv,
34  const boost::shared_ptr<SolarAbsorptionSpectrum>& absorption_spectrumv,
35  const boost::shared_ptr<SolarContinuumSpectrum>& continuum_spectrumv)
36  : doppler_shift_(doppler_shiftv),
37  absorption_spectrum_(absorption_spectrumv),
38  continuum_spectrum_(continuum_spectrumv)
39  {}
40 
42 
43 
44  //-----------------------------------------------------------------------
46  //-----------------------------------------------------------------------
47 
50  (new SolarAbsorptionAndContinuum(doppler_shift_,
51  absorption_spectrum_,
52  continuum_spectrum_));
53  return res;
54  }
55 
56 //-----------------------------------------------------------------------
58 //-----------------------------------------------------------------------
59 
60  const SolarDopplerShift& doppler_shift() const {return *doppler_shift_;}
61 
62 //-----------------------------------------------------------------------
64 //-----------------------------------------------------------------------
65 
67  {return doppler_shift_;}
68 
69 //-----------------------------------------------------------------------
71 //-----------------------------------------------------------------------
72 
74  {return *absorption_spectrum_;}
75 
76 //-----------------------------------------------------------------------
78 //-----------------------------------------------------------------------
79 
81  const {return absorption_spectrum_;}
82 
83 //-----------------------------------------------------------------------
85 //-----------------------------------------------------------------------
86 
88  {return *continuum_spectrum_;}
89 
90 //-----------------------------------------------------------------------
92 //-----------------------------------------------------------------------
93 
95  const {return continuum_spectrum_;}
96  virtual void print(std::ostream& Os) const;
97  virtual Spectrum solar_spectrum(const SpectralDomain& Spec_domain) const;
98 private:
100  boost::shared_ptr<SolarAbsorptionSpectrum> absorption_spectrum_;
101  boost::shared_ptr<SolarContinuumSpectrum> continuum_spectrum_;
102 };
103 }
104 #endif
This class calculates the solar continuum spectrum.
const boost::shared_ptr< SolarDopplerShift > & doppler_shift_ptr() const
The SolarDopplerShift object used by this class, as a ptr.
This applies a solar model to reflectance to model the incoming solar irradiance. ...
Definition: solar_model.h:15
virtual Spectrum solar_spectrum(const SpectralDomain &Spec_domain) const
Calculate solar spectrum.
For different instruments, it is more natural to either work with wavenumbers (e.g., GOSAT) or wavelength (e.g., OCO).
const boost::shared_ptr< SolarContinuumSpectrum > & continuum_spectrum_ptr() const
The SolarContinuumSpectrum object used by this class, as a ptr.
SolarAbsorptionAndContinuum(const boost::shared_ptr< SolarDopplerShift > &doppler_shiftv, const boost::shared_ptr< SolarAbsorptionSpectrum > &absorption_spectrumv, const boost::shared_ptr< SolarContinuumSpectrum > &continuum_spectrumv)
Create a SolarModel that uses the given doppler shift, absorption spectrum, and continuum spectrum...
This class calculates the solar absorption spectrum.
const SolarDopplerShift & doppler_shift() const
The SolarDopplerShift object used by this class.
This class handles the solar Doppler stretch to calculate the shift of the solar lines with respect t...
This is a full spectrum, which contains a SpectralRange and SpectralDomain.
Definition: spectrum.h:18
This applies a solar model to radiances to model the incoming solar irradiance.
const boost::shared_ptr< SolarAbsorptionSpectrum > & absorption_spectrum_ptr() const
The SolarAbsorptionSpectrum object used by this class, as a ptr.
const SolarAbsorptionSpectrum & absorption_spectrum() const
The SolarAbsorptionSpectrum object used by this class.
const SolarContinuumSpectrum & continuum_spectrum() const
The SolarContinuumSpectrum object used by this class.
Contains classes to abstract away details in various Spurr Radiative Transfer software.
Definition: doxygen_python.h:1
virtual boost::shared_ptr< SpectrumEffect > clone() const
Clone a SolarAbsorptionAndContinuum object.
virtual void print(std::ostream &Os) const
Print description of object.

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