ReFRACtor
FullPhysics::LidortRtDriver Class Reference

LIDORT specific Radiative transfer interface implementation. More...

#include <lidort_driver.h>

+ Inheritance diagram for FullPhysics::LidortRtDriver:
+ Collaboration diagram for FullPhysics::LidortRtDriver:

Public Member Functions

 LidortRtDriver (int nstream, int nmoment, bool do_multi_scatt_only, int surface_type, const blitz::Array< double, 1 > &zen, bool pure_nadir, bool do_solar=true, bool do_thermal=false)
 
const boost::shared_ptr< SpurrBrdfDriverbrdf_driver () const
 Access to BRDF driver. More...
 
const boost::shared_ptr< Brdf_Linsup_Mastersbrdf_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_multi_scatt_only () const
 
double get_intensity () const
 Retrieve the intensity value calculated. More...
 
const boost::shared_ptr< LidortBrdfDriverlidort_brdf_driver () const
 Access to BRDF driver. More...
 
const boost::shared_ptr< Lidort_Lps_Masterslidort_interface () const
 Interface to LIDORT RT software inputs to allow changing LIDORT configuration to values other than default. More...
 
int number_moment () const
 
int number_stream () const
 
bool pure_nadir () const
 
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 set_line_of_sight () const
 Set line of sight mode. More...
 
void set_plane_parallel () const
 Set plane parallel sphericity. More...
 
void set_plane_parallel_plus_ss_correction () const
 Set plane parallel plus single scattering correction. More...
 
void set_pseudo_spherical () const
 Set pseudo spherical sphericity. 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_sphericity (double zen) const
 Set up/reset sphericity mode which may be affected by the current zenith viewing angle. More...
 
void setup_thermal_inputs (double surface_bb, const blitz::Array< double, 1 > atmosphere_bb) const
 Set up thermal emission inputs. More...
 

Protected Member Functions

void copy_brdf_sup_outputs () const
 Copy outputs from BRDF supplement into LIDORT Sup inputs types. More...
 
void initialize_rt ()
 Initializes radiative transfer data structures. More...
 

Protected Attributes

boost::shared_ptr< SpurrBrdfDriverbrdf_driver_
 Spurr BRDF class interface class to use. More...
 
bool do_multi_scatt_only_
 
bool do_solar_sources
 
bool do_thermal_emission
 
boost::shared_ptr< Lidort_Lps_Masterslidort_interface_
 
int nmoment_
 
int nstream_
 
bool pure_nadir_
 
int surface_type_
 

Detailed Description

LIDORT specific Radiative transfer interface implementation.

Definition at line 58 of file lidort_driver.h.

Constructor & Destructor Documentation

◆ LidortRtDriver()

LidortRtDriver::LidortRtDriver ( int  nstream,
int  nmoment,
bool  do_multi_scatt_only,
int  surface_type,
const blitz::Array< double, 1 > &  zen,
bool  pure_nadir,
bool  do_solar = true,
bool  do_thermal = false 
)

Definition at line 167 of file lidort_driver.cc.

Member Function Documentation

◆ brdf_driver()

const boost::shared_ptr<SpurrBrdfDriver> FullPhysics::SpurrRtDriver::brdf_driver ( ) const
inlineinherited

Access to BRDF driver.

Definition at line 123 of file spurr_driver.h.

◆ brdf_interface()

const boost::shared_ptr<Brdf_Linsup_Masters> FullPhysics::LidortRtDriver::brdf_interface ( ) const
inline

Definition at line 81 of file lidort_driver.h.

◆ calculate_rt()

void LidortRtDriver::calculate_rt ( ) const
virtual

Perform radiative transfer calculation with the values setup by setup_optical_inputs and setup_linear_inputs.

Implements FullPhysics::SpurrRtDriver.

Definition at line 635 of file lidort_driver.cc.

◆ clear_linear_inputs()

void LidortRtDriver::clear_linear_inputs ( ) const
virtual

Mark that we are not retrieving weighting functions.

Implements FullPhysics::SpurrRtDriver.

Definition at line 494 of file lidort_driver.cc.

◆ copy_brdf_sup_outputs()

void LidortRtDriver::copy_brdf_sup_outputs ( ) const
protected

Copy outputs from BRDF supplement into LIDORT Sup inputs types.

Definition at line 622 of file lidort_driver.cc.

◆ copy_jacobians()

void LidortRtDriver::copy_jacobians ( blitz::Array< double, 2 > &  jac_atm,
blitz::Array< double, 1 > &  jac_surf 
) const
virtual

Copy jacobians out of internal xdata structures.

Implements FullPhysics::SpurrRtDriver.

Definition at line 654 of file lidort_driver.cc.

◆ do_multi_scatt_only()

bool FullPhysics::LidortRtDriver::do_multi_scatt_only ( ) const
inline

Definition at line 73 of file lidort_driver.h.

◆ get_intensity()

double LidortRtDriver::get_intensity ( ) const
virtual

Retrieve the intensity value calculated.

Implements FullPhysics::SpurrRtDriver.

Definition at line 644 of file lidort_driver.cc.

◆ initialize_rt()

void LidortRtDriver::initialize_rt ( )
protectedvirtual

Initializes radiative transfer data structures.

Implements FullPhysics::SpurrRtDriver.

Definition at line 206 of file lidort_driver.cc.

◆ lidort_brdf_driver()

const boost::shared_ptr<LidortBrdfDriver> FullPhysics::LidortRtDriver::lidort_brdf_driver ( ) const
inline

Access to BRDF driver.

Definition at line 78 of file lidort_driver.h.

◆ lidort_interface()

const boost::shared_ptr<Lidort_Lps_Masters> FullPhysics::LidortRtDriver::lidort_interface ( ) const
inline

Interface to LIDORT RT software inputs to allow changing LIDORT configuration to values other than default.

Definition at line 85 of file lidort_driver.h.

◆ number_moment()

int LidortRtDriver::number_moment ( ) const

Definition at line 190 of file lidort_driver.cc.

◆ number_stream()

int LidortRtDriver::number_stream ( ) const

Definition at line 198 of file lidort_driver.cc.

◆ pure_nadir()

bool FullPhysics::LidortRtDriver::pure_nadir ( ) const
inline

Definition at line 75 of file lidort_driver.h.

◆ reflectance_and_jacobian_calculate()

void SpurrRtDriver::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>() 
)
virtualinherited

Calculates intensity, profile and surface weighting factors (jacobians) with the given inputs.

Definition at line 276 of file spurr_driver.cc.

◆ reflectance_calculate()

double SpurrRtDriver::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>() 
)
virtualinherited

Computes reflectance without jacobians.

Calculates intensity value with the given inputs.

Definition at line 237 of file spurr_driver.cc.

◆ set_line_of_sight()

void LidortRtDriver::set_line_of_sight ( ) const

Set line of sight mode.

Definition at line 402 of file lidort_driver.cc.

◆ set_plane_parallel()

void LidortRtDriver::set_plane_parallel ( ) const

Set plane parallel sphericity.

Definition at line 360 of file lidort_driver.cc.

◆ set_plane_parallel_plus_ss_correction()

void LidortRtDriver::set_plane_parallel_plus_ss_correction ( ) const

Set plane parallel plus single scattering correction.

Definition at line 390 of file lidort_driver.cc.

◆ set_pseudo_spherical()

void LidortRtDriver::set_pseudo_spherical ( ) const

Set pseudo spherical sphericity.

Definition at line 372 of file lidort_driver.cc.

◆ setup_geometry()

void LidortRtDriver::setup_geometry ( double  sza,
double  azm,
double  zen 
) const
virtual

Setup viewing geometry, should only be called once per instance or if the viewing geometry changes.

Implements FullPhysics::SpurrRtDriver.

Definition at line 431 of file lidort_driver.cc.

◆ setup_height_grid()

void LidortRtDriver::setup_height_grid ( const blitz::Array< double, 1 > &  height_grid) const
virtual

Setup height grid, should only be called once per instance or if the height grid changes.

Implements FullPhysics::SpurrRtDriver.

Definition at line 413 of file lidort_driver.cc.

◆ setup_linear_inputs()

void LidortRtDriver::setup_linear_inputs ( const ArrayAd< double, 1 > &  od,
const ArrayAd< double, 1 > &  ssa,
const ArrayAd< double, 2 > &  pf,
bool  do_surface_linearization 
) const
virtual

Set up linearization, weighting functions.

Implements FullPhysics::SpurrRtDriver.

Definition at line 505 of file lidort_driver.cc.

◆ setup_optical_inputs()

void LidortRtDriver::setup_optical_inputs ( const blitz::Array< double, 1 > &  od,
const blitz::Array< double, 1 > &  ssa,
const blitz::Array< double, 2 > &  pf 
) const
virtual

Set up optical depth, single scattering albedo and phase function Should be called per spectral point.

Implements FullPhysics::SpurrRtDriver.

Definition at line 464 of file lidort_driver.cc.

◆ setup_sphericity()

void LidortRtDriver::setup_sphericity ( double  zen) const

Set up/reset sphericity mode which may be affected by the current zenith viewing angle.

Definition at line 311 of file lidort_driver.cc.

◆ setup_thermal_inputs()

void LidortRtDriver::setup_thermal_inputs ( double  surface_bb,
const blitz::Array< double, 1 >  atmosphere_bb 
) const
virtual

Set up thermal emission inputs.

Implements FullPhysics::SpurrRtDriver.

Definition at line 452 of file lidort_driver.cc.

Member Data Documentation

◆ brdf_driver_

boost::shared_ptr<SpurrBrdfDriver> FullPhysics::SpurrRtDriver::brdf_driver_
mutableprotectedinherited

Spurr BRDF class interface class to use.

Definition at line 169 of file spurr_driver.h.

◆ do_multi_scatt_only_

bool FullPhysics::LidortRtDriver::do_multi_scatt_only_
protected

Definition at line 110 of file lidort_driver.h.

◆ do_solar_sources

bool FullPhysics::SpurrRtDriver::do_solar_sources
protectedinherited

Definition at line 163 of file spurr_driver.h.

◆ do_thermal_emission

bool FullPhysics::SpurrRtDriver::do_thermal_emission
protectedinherited

Definition at line 163 of file spurr_driver.h.

◆ lidort_interface_

boost::shared_ptr<Lidort_Lps_Masters> FullPhysics::LidortRtDriver::lidort_interface_
protected

Definition at line 113 of file lidort_driver.h.

◆ nmoment_

int FullPhysics::LidortRtDriver::nmoment_
protected

Definition at line 109 of file lidort_driver.h.

◆ nstream_

int FullPhysics::LidortRtDriver::nstream_
protected

Definition at line 109 of file lidort_driver.h.

◆ pure_nadir_

bool FullPhysics::LidortRtDriver::pure_nadir_
protected

Definition at line 112 of file lidort_driver.h.

◆ surface_type_

int FullPhysics::LidortRtDriver::surface_type_
protected

Definition at line 111 of file lidort_driver.h.


The documentation for this class was generated from the following files:

Copyright © 2017, California Institute of Technology.
ALL RIGHTS RESERVED.
U.S. Government Sponsorship acknowledged.
Generated Fri Aug 24 2018 15:44:13