ReFRACtor
|
Abstracts away set up of Radiative Transfer software from Rob Spurr into a simpler common inteface used by the L2 software. More...
#include <spurr_driver.h>
Public Member Functions | |
SpurrRtDriver (bool do_solar=true, bool do_thermal=false) | |
const boost::shared_ptr< SpurrBrdfDriver > | brdf_driver () const |
Access to BRDF driver. More... | |
virtual void | calculate_rt () const =0 |
Perform radiative transfer calculation with the values setup by setup_optical_inputs and setup_linear_inputs. More... | |
virtual void | clear_linear_inputs () const =0 |
Mark that we are not retrieving weighting functions. More... | |
virtual void | copy_jacobians (blitz::Array< double, 2 > &jac_atm, blitz::Array< double, 1 > &jac_surf) const =0 |
Copy jacobians out of internal xdata structures. More... | |
virtual double | get_intensity () const =0 |
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... | |
virtual void | setup_geometry (double sza, double azm, double zen) const =0 |
Setup viewing geometry, should only be called once per instance or if the viewing geometry changes. More... | |
virtual void | setup_height_grid (const blitz::Array< double, 1 > &height_grid) const =0 |
Setup height grid, should only be called once per instance or if the height grid changes. More... | |
virtual void | setup_linear_inputs (const ArrayAd< double, 1 > &od, const ArrayAd< double, 1 > &ssa, const ArrayAd< double, 2 > &pf, bool do_surface_linearization) const =0 |
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, 2 > &pf) const =0 |
Set up optical depth, single scattering albedo and phase function Should be called per spectral point. More... | |
virtual void | setup_thermal_inputs (double surface_bb, const blitz::Array< double, 1 > atmosphere_bb) const =0 |
Set up thermal emission inputs. More... | |
Protected Member Functions | |
virtual void | initialize_rt ()=0 |
Initializes radiative transfer data structures. More... | |
Protected Attributes | |
boost::shared_ptr< SpurrBrdfDriver > | brdf_driver_ |
Spurr BRDF class interface class to use. More... | |
bool | do_solar_sources |
bool | do_thermal_emission |
Abstracts away set up of Radiative Transfer software from Rob Spurr into a simpler common inteface used by the L2 software.
This interface should be independent of the L2 Atmosphere class to make unit testing easier.
Definition at line 90 of file spurr_driver.h.
|
inline |
Definition at line 94 of file spurr_driver.h.
|
inline |
Access to BRDF driver.
Definition at line 123 of file spurr_driver.h.
|
pure virtual |
Perform radiative transfer calculation with the values setup by setup_optical_inputs and setup_linear_inputs.
Implemented in FullPhysics::LidortRtDriver, and FullPhysics::TwostreamRtDriver.
|
pure virtual |
Mark that we are not retrieving weighting functions.
Implemented in FullPhysics::LidortRtDriver, and FullPhysics::TwostreamRtDriver.
|
pure virtual |
Copy jacobians out of internal xdata structures.
Implemented in FullPhysics::LidortRtDriver, and FullPhysics::TwostreamRtDriver.
|
pure virtual |
Retrieve the intensity value calculated.
Implemented in FullPhysics::LidortRtDriver, and FullPhysics::TwostreamRtDriver.
|
protectedpure virtual |
Initializes radiative transfer data structures.
Implemented in FullPhysics::LidortRtDriver, and FullPhysics::TwostreamRtDriver.
|
virtual |
Calculates intensity, profile and surface weighting factors (jacobians) with the given inputs.
Definition at line 276 of file spurr_driver.cc.
|
virtual |
Computes reflectance without jacobians.
Calculates intensity value with the given inputs.
Definition at line 237 of file spurr_driver.cc.
|
pure virtual |
Setup viewing geometry, should only be called once per instance or if the viewing geometry changes.
Implemented in FullPhysics::LidortRtDriver, and FullPhysics::TwostreamRtDriver.
|
pure virtual |
Setup height grid, should only be called once per instance or if the height grid changes.
Implemented in FullPhysics::LidortRtDriver, and FullPhysics::TwostreamRtDriver.
|
pure virtual |
Set up linearization, weighting functions.
Implemented in FullPhysics::LidortRtDriver, and FullPhysics::TwostreamRtDriver.
|
pure virtual |
Set up optical depth, single scattering albedo and phase function Should be called per spectral point.
Implemented in FullPhysics::LidortRtDriver, and FullPhysics::TwostreamRtDriver.
|
pure virtual |
Set up thermal emission inputs.
Implemented in FullPhysics::LidortRtDriver, and FullPhysics::TwostreamRtDriver.
|
mutableprotected |
Spurr BRDF class interface class to use.
Definition at line 169 of file spurr_driver.h.
|
protected |
Definition at line 163 of file spurr_driver.h.
|
protected |
Definition at line 163 of file spurr_driver.h.