ReFRACtor
|
This class drives the LRAD code, which gives a polarization correction to scalar intensity and jacobians. More...
#include <l_rad_driver.h>
Public Types | |
enum | PsMode { REGULAR, ENHANCED, PLANE_PARALLEL, DETECT } |
Public Member Functions | |
LRadDriver (int Number_stream, int Number_stokes, int surface_type, bool Tms_Correction=false, bool Pure_nadir=false, const PsMode ps_mode=DETECT) | |
virtual | ~LRadDriver () |
Destructor. More... | |
virtual blitz::Array< double, 3 > | atmospheric_jacobian () const |
Atmospheric jacobian from last calculation. More... | |
virtual void | calculate_first_order () |
Perform radiative transfer calculation with the values setup by setup_optical_inputs and setup_linear_inputs for the first order of scattering. More... | |
virtual void | calculate_second_order () |
Perform radiative transfer calculation with the values setup by setup_optical_inputs and setup_linear_inputs for the second order of scattering. More... | |
virtual void | clear_linear_inputs () |
Mark that we are not retrieving weighting functions. More... | |
virtual int | number_stokes () const |
virtual int | number_stream () const |
virtual void | print (std::ostream &Os, bool Short_form=false) const |
std::string | print_to_string () const |
Print to string. More... | |
virtual void | setup_geometry (blitz::Array< double, 1 > alt, double sza, double zen, double azm) const |
Setup viewing geometry, should only be called once per instance or if the viewing geometry changes. More... | |
virtual void | setup_linear_inputs (const ArrayAd< double, 1 > &od, const ArrayAd< double, 1 > &ssa, const ArrayAd< double, 3 > &pf, const ArrayAd< double, 2 > &zmat) |
Set up linearization, weighting functions. More... | |
virtual void | setup_optical_inputs (const blitz::Array< double, 1 > &od, const blitz::Array< double, 1 > &ssa, const blitz::Array< double, 3 > &pf, const blitz::Array< double, 2 > &zmat) |
Set up optical depth, single scattering albedo and scattering matrix Should be called per spectral point. More... | |
virtual void | setup_surface_params (const blitz::Array< double, 1 > &surface_param) |
Set up surface parameters for spectral point. More... | |
virtual blitz::Array< double, 1 > | stokes () const |
Retrieve the stokes values calculated. More... | |
virtual blitz::Array< double, 2 > | surface_jacobian () const |
Surface jacobian. More... | |
ArrayAd< double, 2 > | z_matrix (const ArrayAd< double, 3 > &pf) const |
Calculate the z matrix. More... | |
This class drives the LRAD code, which gives a polarization correction to scalar intensity and jacobians.
The correction used here is described in the paper "A fast linearized pseudo-spherical two orders of scattering model to account for polarization in vertically inhomogeneous scattering-absorbing media" by Vijah Natrah and Robert Spurr in Journal of Quantitative Spectroscopy & Radiative Transfer 107 (2007) 263-293 (a copy of this paper can be found in the source tree at 'doc/LRAD Paper.pdf').
Definition at line 24 of file l_rad_driver.h.
Enumerator | |
---|---|
REGULAR | |
ENHANCED | |
PLANE_PARALLEL | |
DETECT |
Definition at line 27 of file l_rad_driver.h.
LRadDriver::LRadDriver | ( | int | Number_stream, |
int | Number_stokes, | ||
int | surface_type, | ||
bool | Tms_Correction = false , |
||
bool | Pure_nadir = false , |
||
const PsMode | ps_mode = DETECT |
||
) |
Definition at line 47 of file l_rad_driver.cc.
|
virtual |
Destructor.
Definition at line 87 of file l_rad_driver.cc.
|
virtual |
Atmospheric jacobian from last calculation.
Definition at line 452 of file l_rad_driver.cc.
|
virtual |
Perform radiative transfer calculation with the values setup by setup_optical_inputs and setup_linear_inputs for the first order of scattering.
Definition at line 344 of file l_rad_driver.cc.
|
virtual |
Perform radiative transfer calculation with the values setup by setup_optical_inputs and setup_linear_inputs for the second order of scattering.
Definition at line 370 of file l_rad_driver.cc.
|
virtual |
Mark that we are not retrieving weighting functions.
Definition at line 192 of file l_rad_driver.cc.
|
inlinevirtual |
Definition at line 37 of file l_rad_driver.h.
|
inlinevirtual |
Definition at line 38 of file l_rad_driver.h.
|
virtual |
Definition at line 470 of file l_rad_driver.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.
|
virtual |
Setup viewing geometry, should only be called once per instance or if the viewing geometry changes.
Update the altitude information.
This can change the number of layers if desired.
Definition at line 97 of file l_rad_driver.cc.
|
virtual |
Set up linearization, weighting functions.
Definition at line 235 of file l_rad_driver.cc.
|
virtual |
Set up optical depth, single scattering albedo and scattering matrix Should be called per spectral point.
Definition at line 143 of file l_rad_driver.cc.
|
virtual |
Set up surface parameters for spectral point.
Definition at line 135 of file l_rad_driver.cc.
|
virtual |
Retrieve the stokes values calculated.
Definition at line 443 of file l_rad_driver.cc.
|
virtual |
Surface jacobian.
Definition at line 461 of file l_rad_driver.cc.
Calculate the z matrix.
This does the full calculation, and is somewhat expensive to call.
Must be called after setup_geometry since this calculation uses geometry values setup from it.
Definition at line 116 of file l_rad_driver.cc.