ReFRACtor
|
This applies a solar model to radiances to model the incoming solar irradiance. More...
#include <solar_absorption_and_continuum.h>
Public Member Functions | |
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. More... | |
virtual | ~SolarAbsorptionAndContinuum () |
const SolarAbsorptionSpectrum & | absorption_spectrum () const |
The SolarAbsorptionSpectrum object used by this class. More... | |
const boost::shared_ptr< SolarAbsorptionSpectrum > & | absorption_spectrum_ptr () const |
The SolarAbsorptionSpectrum object used by this class, as a ptr. More... | |
virtual void | add_observer (Observer< SpectrumEffect > &Obs) |
Add an observer. More... | |
void | add_observer_and_keep_reference (boost::shared_ptr< Observer< SpectrumEffect > > &Obs) |
Add an observer and keep a reference to it. More... | |
virtual void | apply_effect (Spectrum &Spec, const ForwardModelSpectralGrid &Forward_model_grid) const |
Apply correction to spectrum in place. More... | |
virtual Spectrum | apply_solar_model (const Spectrum &Spec) const |
Apply the solar model. More... | |
virtual boost::shared_ptr< SpectrumEffect > | clone () const |
Clone a SolarAbsorptionAndContinuum object. More... | |
const SolarContinuumSpectrum & | continuum_spectrum () const |
The SolarContinuumSpectrum object used by this class. More... | |
const boost::shared_ptr< SolarContinuumSpectrum > & | continuum_spectrum_ptr () const |
The SolarContinuumSpectrum object used by this class, as a ptr. More... | |
const SolarDopplerShift & | doppler_shift () const |
The SolarDopplerShift object used by this class. More... | |
const boost::shared_ptr< SolarDopplerShift > & | doppler_shift_ptr () const |
The SolarDopplerShift object used by this class, as a ptr. More... | |
virtual void | mark_used (const StateVector &Sv, blitz::Array< bool, 1 > &Used) const |
Mark elements that we are actively using (i.e., that aren't ignored). More... | |
virtual std::string | name () const |
Name of spectrum effect, for use when outputting effects of effect. More... | |
virtual void | notify_add (StateVector &Observed_object) |
Called when an object is added to an Observable. More... | |
virtual void | notify_add () |
virtual void | notify_remove (StateVector &Observed_object) |
Called when an object is removed from an Observable. More... | |
virtual void | notify_remove () |
virtual void | notify_update (const StateVector &Observed_object) |
Called when the Observed object is updated. More... | |
virtual void | print (std::ostream &Os) const |
Print description of object. More... | |
std::string | print_to_string () const |
Print to string. More... | |
virtual void | remove_observer (Observer< SpectrumEffect > &Obs) |
Remove an observer. More... | |
virtual Spectrum | solar_spectrum (const SpectralDomain &Spec_domain) const |
Calculate solar spectrum. More... | |
virtual void | state_vector_name (const StateVector &Sv, blitz::Array< std::string, 1 > &Sv_name) const |
Update any portion of the list of the state vector names that apply to this object. More... | |
Protected Member Functions | |
void | add_observer_do (Observer< SpectrumEffect > &Obs, SpectrumEffect &t) |
Add an observer. More... | |
void | add_observer_do (Observer< SpectrumEffect > &Obs) |
void | clean_dead_ptr () |
Remove any dead pointers. More... | |
void | notify_update_do (const SpectrumEffect &Self) |
Function to call to notify Observers of a state change. More... | |
void | remove_observer_do (Observer< SpectrumEffect > &Obs, SpectrumEffect &t) |
Remove an observer. More... | |
void | remove_observer_do (Observer< SpectrumEffect > &Obs) |
Protected Attributes | |
std::list< boost::weak_ptr< Observer< SpectrumEffect > > > | olist |
std::vector< boost::shared_ptr< Observer< SpectrumEffect > > > | ref_list |
This applies a solar model to radiances to model the incoming solar irradiance.
This implementation is a common division of the solar model into
This uses 3 objects to do the work, a SolarDopplerShift, a SolarAbsorptionSpectrum, and a SolarContinuumSpectrum object. This class stitches these objects together to create the full spectrum.
Definition at line 25 of file solar_absorption_and_continuum.h.
|
inline |
Create a SolarModel that uses the given doppler shift, absorption spectrum, and continuum spectrum.
Definition at line 32 of file solar_absorption_and_continuum.h.
|
inlinevirtual |
Definition at line 41 of file solar_absorption_and_continuum.h.
|
inline |
The SolarAbsorptionSpectrum object used by this class.
Definition at line 73 of file solar_absorption_and_continuum.h.
|
inline |
The SolarAbsorptionSpectrum object used by this class, as a ptr.
Definition at line 80 of file solar_absorption_and_continuum.h.
|
inlinevirtualinherited |
Add an observer.
Implements FullPhysics::Observable< SpectrumEffect >.
Definition at line 20 of file spectrum_effect.h.
|
inlineinherited |
Add an observer and keep a reference to it.
See the discussion in the Observer class description for details.
Definition at line 107 of file observer.h.
|
inlineprotectedinherited |
Add an observer.
Definition at line 148 of file observer.h.
|
inlineprotectedinherited |
Definition at line 159 of file observer.h.
|
inlinevirtualinherited |
Apply correction to spectrum in place.
We pass in the forward model grids used. A class can use this to optimize its calculation, see for example FluorescenceEffect.
Implements FullPhysics::SpectrumEffect.
Definition at line 36 of file solar_model.h.
Apply the solar model.
Spec | Spectrum without solar model applied. This is per solid angle, e.g., sr^-1 (RT code generates "sun-normalized" output) |
Definition at line 21 of file solar_model.cc.
|
inlineprotectedinherited |
Remove any dead pointers.
Definition at line 196 of file observer.h.
|
inlinevirtual |
Clone a SolarAbsorptionAndContinuum object.
Implements FullPhysics::SpectrumEffect.
Definition at line 48 of file solar_absorption_and_continuum.h.
|
inline |
The SolarContinuumSpectrum object used by this class.
Definition at line 87 of file solar_absorption_and_continuum.h.
|
inline |
The SolarContinuumSpectrum object used by this class, as a ptr.
Definition at line 94 of file solar_absorption_and_continuum.h.
|
inline |
The SolarDopplerShift object used by this class.
Definition at line 60 of file solar_absorption_and_continuum.h.
|
inline |
The SolarDopplerShift object used by this class, as a ptr.
Definition at line 66 of file solar_absorption_and_continuum.h.
|
inlinevirtualinherited |
Mark elements that we are actively using (i.e., that aren't ignored).
You only need to mark the ones that are used as true, everything is already initialized as false. Default is to do nothing.
Reimplemented in FullPhysics::SubStateVectorObserver.
Definition at line 26 of file state_vector_observer.h.
|
inlinevirtualinherited |
Name of spectrum effect, for use when outputting effects of effect.
Implements FullPhysics::SpectrumEffect.
Definition at line 41 of file solar_model.h.
|
inlinevirtualinherited |
Called when an object is added to an Observable.
Default is to do nothing.
Reimplemented in FullPhysics::AtmosphereOco, and FullPhysics::SubStateVectorObserver.
Definition at line 47 of file observer.h.
|
inlinevirtualinherited |
Definition at line 48 of file observer.h.
|
inlinevirtualinherited |
Called when an object is removed from an Observable.
Default is to do nothing.
Reimplemented in FullPhysics::AtmosphereOco, and FullPhysics::SubStateVectorObserver.
Definition at line 55 of file observer.h.
|
inlinevirtualinherited |
Definition at line 56 of file observer.h.
|
inlinevirtualinherited |
Called when the Observed object is updated.
Reimplemented in FullPhysics::AtmosphereOco, FullPhysics::RadianceScalingSvFit, FullPhysics::AbsorberAbsco, FullPhysics::AerosolOptical, and FullPhysics::SubStateVectorObserver.
Definition at line 40 of file observer.h.
|
inlineprotectedinherited |
Function to call to notify Observers of a state change.
The object should pass itself to this function, so it can be passed to the Observers.
Definition at line 121 of file observer.h.
|
virtual |
Print description of object.
Reimplemented from FullPhysics::SolarModel.
Definition at line 21 of file solar_absorption_and_continuum.cc.
|
inlineinherited |
Print to string.
This is primarily useful for SWIG wrappers to this class, e.g. a to_s method in ruby.
Definition at line 31 of file printable.h.
|
inlinevirtualinherited |
Remove an observer.
Implements FullPhysics::Observable< SpectrumEffect >.
Definition at line 22 of file spectrum_effect.h.
|
inlineprotectedinherited |
Remove an observer.
Definition at line 173 of file observer.h.
|
inlineprotectedinherited |
Definition at line 181 of file observer.h.
|
virtual |
Calculate solar spectrum.
Spec_domain | Wavenumber/Wavelength reflectance is given |
Note that the wavenumber/frequency are in the earth rest frame. The solar model may need to work in the solar rest frame, bu the conversion to this is internal. The input and output from this function should be in the earth rest frame.
Implements FullPhysics::SolarModel.
Definition at line 32 of file solar_absorption_and_continuum.cc.
|
inlinevirtualinherited |
Update any portion of the list of the state vector names that apply to this object.
Default is to do nothing.
Reimplemented in FullPhysics::SubStateVectorObserver.
Definition at line 34 of file state_vector_observer.h.
|
protectedinherited |
Definition at line 200 of file observer.h.
|
protectedinherited |
Definition at line 201 of file observer.h.