1 #ifndef TWOSTREAM_DRIVER_H 2 #define TWOSTREAM_DRIVER_H 18 virtual void setup_geometry(
double sza,
double azm,
double zen)
const;
42 const bool lambertian_flag,
43 const int n_brdf_parameters,
44 const bool do_factor_wfs,
45 const blitz::Array<bool, 1>& do_params_wfs);
57 bool do_solar =
true,
bool do_thermal =
false);
59 void setup_height_grid(
const blitz::Array<double, 1>& height_grid)
const;
62 void setup_thermal_inputs(
double surface_bb,
const blitz::Array<double, 1> atmosphere_bb)
const;
64 void setup_optical_inputs(
const blitz::Array<double, 1>& od,
65 const blitz::Array<double, 1>& ssa,
66 const blitz::Array<double, 2>& pf)
const;
68 void clear_linear_inputs()
const;
72 bool do_surface_linearization)
const;
74 void calculate_rt()
const;
75 double get_intensity()
const;
76 void copy_jacobians(blitz::Array<double, 2>& jac_atm, blitz::Array<double, 1>& jac_surf)
const;
boost::shared_ptr< Twostream_Ls_Brdf_Supplement > brdf_interface() const
virtual int n_kernel_factor_wfs() const
boost::shared_ptr< Twostream_Lps_Master > twostream_interface() const
virtual void setup_geometry(double sza, double azm, double zen) const
boost::shared_ptr< Twostream_Lps_Master > twostream_interface_
TwostreamBrdfDriver(int surface_type)
Initialize Twostream BRDF interface.
virtual int n_brdf_kernels() const
TwoStream specific BRDF driver implementation.
Abstracts away set up of BRDF kernel interfaces.
virtual bool do_kparams_derivs(const int kernel_index) const
virtual void initialize_kernel_parameters(const int kernel_index, const int which_brdf, const bool lambertian_flag, const int n_brdf_parameters, const bool do_factor_wfs, const blitz::Array< bool, 1 > &do_params_wfs)
boost::shared_ptr< TwostreamBrdfDriver > twostream_brdf_driver() const
boost::shared_ptr< Twostream_Ls_Brdf_Supplement > twostream_brdf_
virtual ~TwostreamBrdfDriver()
TwoStream specific Radiative transfer driver implementation.
bool do_full_quadrature() const
Abstracts away set up of Radiative Transfer software from Rob Spurr into a simpler common inteface us...
Contains classes to abstract away details in various Spurr Radiative Transfer software.
virtual int n_kernel_params_wfs() const
virtual void calculate_brdf() const
virtual int n_surface_wfs() const
boost::shared_ptr< Twostream_Ls_Brdf_Supplement > brdf_interface() const
virtual bool do_shadow_effect() const