ReFRACtor
|
TwoStream specific Radiative transfer driver implementation. More...
#include <twostream_driver.h>
Public Member Functions | |
TwostreamRtDriver (int nlayers, int surface_type, bool do_fullquadrature=true, bool do_solar=true, bool do_thermal=false) | |
TwostreamRtDriver Sizes of layers, and number of jacobians must be set up in construtor as seen in signature. More... | |
const boost::shared_ptr< SpurrBrdfDriver > | brdf_driver () const |
Access to BRDF driver. More... | |
boost::shared_ptr< Twostream_Ls_Brdf_Supplement > | brdf_interface () const |
void | calculate_rt () const |
Perform radiative transfer calculation with the values setup by setup_optical_inputs and setup_linear_inputs. More... | |
void | clear_linear_inputs () const |
Mark that we are not retrieving weighting functions. More... | |
void | copy_jacobians (blitz::Array< double, 2 > &jac_atm, blitz::Array< double, 1 > &jac_surf) const |
Copy jacobians out of internal xdata structures. More... | |
bool | do_full_quadrature () const |
double | get_intensity () const |
Retrieve the intensity value calculated. More... | |
virtual void | reflectance_and_jacobian_calculate (const blitz::Array< double, 1 > &height_grid, double sza, double azm, double zen, int surface_type, ArrayAd< double, 1 > &surface_parameters, const ArrayAd< double, 1 > &od, const ArrayAd< double, 1 > &ssa, const ArrayAd< double, 2 > &pf, double &reflectance, blitz::Array< double, 2 > &jac_atm, blitz::Array< double, 1 > &jac_surf, double surface_bb=0, const blitz::Array< double, 1 > &atmosphere_bb=blitz::Array< double, 1 >()) |
Calculates intensity, profile and surface weighting factors (jacobians) with the given inputs. More... | |
virtual double | reflectance_calculate (const blitz::Array< double, 1 > &height_grid, double sza, double azm, double zen, int surface_type, const blitz::Array< double, 1 > &surface_parameters, const blitz::Array< double, 1 > &od, const blitz::Array< double, 1 > &ssa, const blitz::Array< double, 2 > &pf, double surface_bb=0, const blitz::Array< double, 1 > &atmosphere_bb=blitz::Array< double, 1 >()) |
Computes reflectance without jacobians. More... | |
void | setup_geometry (double sza, double azm, double zen) const |
Setup viewing geometry, should only be called once per instance or if the viewing geometry changes. More... | |
void | setup_height_grid (const blitz::Array< double, 1 > &height_grid) const |
Setup height grid, should only be called once per instance or if the height grid changes. More... | |
void | setup_linear_inputs (const ArrayAd< double, 1 > &od, const ArrayAd< double, 1 > &ssa, const ArrayAd< double, 2 > &pf, bool do_surface_linearization) const |
Set up linearization, weighting functions. More... | |
void | setup_optical_inputs (const blitz::Array< double, 1 > &od, const blitz::Array< double, 1 > &ssa, const blitz::Array< double, 2 > &pf) const |
Set up optical depth, single scattering albedo and phase function Should be called per spectral point. More... | |
void | setup_thermal_inputs (double surface_bb, const blitz::Array< double, 1 > atmosphere_bb) const |
Set up thermal emission inputs. More... | |
boost::shared_ptr< TwostreamBrdfDriver > | twostream_brdf_driver () const |
boost::shared_ptr< Twostream_Lps_Master > | twostream_interface () const |
Protected Member Functions | |
void | initialize_rt () |
Initializes radiative transfer data structures. More... | |
Protected Attributes | |
boost::shared_ptr< SpurrBrdfDriver > | brdf_driver_ |
Spurr BRDF class interface class to use. More... | |
bool | do_fullquadrature_ |
bool | do_solar_sources |
bool | do_thermal_emission |
int | surface_type_ |
boost::shared_ptr< Twostream_Lps_Master > | twostream_interface_ |
TwoStream specific Radiative transfer driver implementation.
Definition at line 54 of file twostream_driver.h.
TwostreamRtDriver::TwostreamRtDriver | ( | int | nlayers, |
int | surface_type, | ||
bool | do_fullquadrature = true , |
||
bool | do_solar = true , |
||
bool | do_thermal = false |
||
) |
TwostreamRtDriver Sizes of layers, and number of jacobians must be set up in construtor as seen in signature.
Use do_fullquadratures = false only for comparison against LIDORT
Definition at line 158 of file twostream_driver.cc.
|
inlineinherited |
Access to BRDF driver.
Definition at line 123 of file spurr_driver.h.
|
inline |
Definition at line 82 of file twostream_driver.h.
|
virtual |
Perform radiative transfer calculation with the values setup by setup_optical_inputs and setup_linear_inputs.
Implements FullPhysics::SpurrRtDriver.
Definition at line 399 of file twostream_driver.cc.
|
virtual |
Mark that we are not retrieving weighting functions.
Implements FullPhysics::SpurrRtDriver.
Definition at line 326 of file twostream_driver.cc.
|
virtual |
Copy jacobians out of internal xdata structures.
Implements FullPhysics::SpurrRtDriver.
Definition at line 429 of file twostream_driver.cc.
|
inline |
Definition at line 86 of file twostream_driver.h.
|
virtual |
Retrieve the intensity value calculated.
Implements FullPhysics::SpurrRtDriver.
Definition at line 424 of file twostream_driver.cc.
|
protectedvirtual |
Initializes radiative transfer data structures.
Implements FullPhysics::SpurrRtDriver.
Definition at line 188 of file twostream_driver.cc.
|
virtualinherited |
Calculates intensity, profile and surface weighting factors (jacobians) with the given inputs.
Definition at line 276 of file spurr_driver.cc.
|
virtualinherited |
Computes reflectance without jacobians.
Calculates intensity value with the given inputs.
Definition at line 237 of file spurr_driver.cc.
|
virtual |
Setup viewing geometry, should only be called once per instance or if the viewing geometry changes.
Implements FullPhysics::SpurrRtDriver.
Definition at line 268 of file twostream_driver.cc.
|
virtual |
Setup height grid, should only be called once per instance or if the height grid changes.
Implements FullPhysics::SpurrRtDriver.
Definition at line 254 of file twostream_driver.cc.
|
virtual |
Set up linearization, weighting functions.
Implements FullPhysics::SpurrRtDriver.
Definition at line 333 of file twostream_driver.cc.
|
virtual |
Set up optical depth, single scattering albedo and phase function Should be called per spectral point.
Implements FullPhysics::SpurrRtDriver.
Definition at line 298 of file twostream_driver.cc.
|
virtual |
Set up thermal emission inputs.
Implements FullPhysics::SpurrRtDriver.
Definition at line 285 of file twostream_driver.cc.
|
inline |
Definition at line 78 of file twostream_driver.h.
|
inline |
Definition at line 84 of file twostream_driver.h.
|
mutableprotectedinherited |
Spurr BRDF class interface class to use.
Definition at line 169 of file spurr_driver.h.
|
protected |
Definition at line 92 of file twostream_driver.h.
|
protectedinherited |
Definition at line 163 of file spurr_driver.h.
|
protectedinherited |
Definition at line 163 of file spurr_driver.h.
|
protected |
Definition at line 91 of file twostream_driver.h.
|
protected |
Definition at line 94 of file twostream_driver.h.