ReFRACtor
|
This runs a Radiative Transfer code to determine the reflectance for a given set of wavelengths. More...
#include <radiative_transfer.h>
Public Member Functions | |
virtual | ~RadiativeTransfer () |
virtual int | number_spectrometer () const =0 |
Number of spectrometer we have. More... | |
virtual int | number_stokes () const =0 |
Number of stokes parameters we will return in stokes and stokes_and_jacobian. More... | |
virtual void | print (std::ostream &Os, bool Short_form=false) const |
Print to stream. More... | |
std::string | print_to_string () const |
Print to string. More... | |
virtual Spectrum | reflectance (const SpectralDomain &Spec_domain, int Spec_index, bool Skip_jacobian=false) const =0 |
Calculate reflectance for the given set of wavenumbers/wavelengths. More... | |
virtual blitz::Array< double, 2 > | stokes (const SpectralDomain &Spec_domain, int Spec_index) const =0 |
Calculate stokes vector for the given set of wavenumbers/wavelengths. More... | |
virtual ArrayAd< double, 2 > | stokes_and_jacobian (const SpectralDomain &Spec_domain, int Spec_index) const =0 |
Calculate stokes vector for the given set of wavenumbers/wavelengths. More... | |
Protected Member Functions | |
boost::shared_ptr< boost::progress_display > | progress_display (const blitz::Array< double, 1 > &wn) const |
Helper routine, creates a progress meter. More... | |
Static Protected Attributes | |
static AccumulatedTimer | timer |
This runs a Radiative Transfer code to determine the reflectance for a given set of wavelengths.
We support both vector and scalar calculations. Because of the large size of the arrays returned, we often use only a subset of the stokes parameters given by number_stokes(). This can be up to 4, in which case we return I, Q, U and V (in that order). For Gosat, we commonly return 3 parameters: I, Q and U.
If the Radiative Transfer code is scalar, then you can either set the number_stokes() to 1 and return I, or just set the terms other than I to 0.
Definition at line 27 of file radiative_transfer.h.
|
inlinevirtual |
Definition at line 29 of file radiative_transfer.h.
|
pure virtual |
Number of spectrometer we have.
Implemented in FullPhysics::ChapmanBoaRT, and FullPhysics::RadiativeTransferFixedStokesCoefficient.
|
pure virtual |
Number of stokes parameters we will return in stokes and stokes_and_jacobian.
Implemented in FullPhysics::LRadRt, FullPhysics::SpurrRt, FullPhysics::ChapmanBoaRT, FullPhysics::LsiRt, and FullPhysics::HresWrapper.
|
inlinevirtual |
Print to stream.
Reimplemented in FullPhysics::LRadRt, FullPhysics::RadiativeTransferSingleWn, FullPhysics::ChapmanBoaRT, FullPhysics::SpurrRt, FullPhysics::RadiativeTransferImpBase, FullPhysics::LidortRt, FullPhysics::LsiRt, FullPhysics::TwostreamRt, FullPhysics::RadiativeTransferFixedStokesCoefficient, and FullPhysics::RadiativeTransferRetrievable.
Definition at line 89 of file radiative_transfer.h.
|
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.
|
protected |
Helper routine, creates a progress meter.
This will return 0 if we aren't logging, or if we don't have enough points to bother with.
Definition at line 19 of file radiative_transfer.cc.
|
pure virtual |
Calculate reflectance for the given set of wavenumbers/wavelengths.
Spec_domain | List of wavenumber/wavelength to calculate for. |
Spec_index | The Spectral index |
Skip_jacobian | If true, don't do the Jacobian calculation. Often this is significantly faster to calculate. |
Implemented in FullPhysics::ChapmanBoaRT, FullPhysics::RadiativeTransferFixedStokesCoefficient, and FullPhysics::RadiativeTransferImpBase.
|
pure virtual |
Calculate stokes vector for the given set of wavenumbers/wavelengths.
Spec_domain | List of wavenumber/wavelength to calculate for. |
Spec_index | The Spectral index |
Implemented in FullPhysics::ChapmanBoaRT, FullPhysics::RadiativeTransferSingleWn, and FullPhysics::LsiRt.
|
pure virtual |
Calculate stokes vector for the given set of wavenumbers/wavelengths.
This also calculates the Jacobian of the stokes with respect to the state vector elements.
Spec_domain | List of wavenumber/wavelength to calculate for. |
Spec_index | The Spectral index |
Implemented in FullPhysics::ChapmanBoaRT, FullPhysics::RadiativeTransferSingleWn, and FullPhysics::LsiRt.
|
staticprotected |
Definition at line 92 of file radiative_transfer.h.