1 #ifndef LIDORT_DRIVER_H 2 #define LIDORT_DRIVER_H 22 virtual void setup_geometry(
double sza,
double azm,
double zen)
const;
46 const bool lambertian_flag,
47 const int n_brdf_parameters,
48 const bool do_factor_wfs,
49 const blitz::Array<bool, 1>& do_params_wfs);
60 LidortRtDriver(
int nstream,
int nmoment,
bool do_multi_scatt_only,
int surface_type,
61 const blitz::Array<double, 1>& zen,
bool pure_nadir,
62 bool do_solar =
true,
bool do_thermal =
false);
64 int number_moment()
const;
65 int number_stream()
const;
67 void setup_sphericity(
double zen)
const;
68 void set_plane_parallel()
const;
69 void set_pseudo_spherical()
const;
70 void set_plane_parallel_plus_ss_correction()
const;
71 void set_line_of_sight()
const;
87 void setup_height_grid(
const blitz::Array<double, 1>& height_grid)
const;
90 void setup_thermal_inputs(
double surface_bb,
const blitz::Array<double, 1> atmosphere_bb)
const;
92 void setup_optical_inputs(
const blitz::Array<double, 1>& od,
93 const blitz::Array<double, 1>& ssa,
94 const blitz::Array<double, 2>& pf)
const;
95 void clear_linear_inputs()
const;
99 bool do_surface_linearization)
const;
101 void calculate_rt()
const;
102 double get_intensity()
const;
103 void copy_jacobians(blitz::Array<double, 2>& jac_atm, blitz::Array<double, 1>& jac_surf)
const;
106 void initialize_rt();
107 void copy_brdf_sup_outputs()
const;
const boost::shared_ptr< Brdf_Linsup_Masters > brdf_interface() const
const boost::shared_ptr< Lidort_Lps_Masters > lidort_interface() const
Interface to LIDORT RT software inputs to allow changing LIDORT configuration to values other than de...
virtual int n_kernel_params_wfs() const
LidortBrdfDriver(int nstream, int nmoment)
Initialize Lidort BRDF interface.
boost::shared_ptr< Brdf_Linsup_Masters > brdf_interface_
boost::shared_ptr< Lidort_Lps_Masters > lidort_interface_
Abstracts away set up of BRDF kernel interfaces.
bool do_multi_scatt_only_
virtual int n_kernel_factor_wfs() const
virtual int n_brdf_kernels() const
const boost::shared_ptr< LidortBrdfDriver > lidort_brdf_driver() const
Access to BRDF driver.
virtual bool do_kparams_derivs(const int kernel_index) const
LIDORT specific Radiative transfer interface implementation.
const boost::shared_ptr< Brdf_Linsup_Masters > brdf_interface() const
Interface to BRDF interface to allow changing configuration to values.
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)
virtual ~LidortBrdfDriver()
Abstracts away set up of Radiative Transfer software from Rob Spurr into a simpler common inteface us...
virtual void setup_geometry(double sza, double azm, double zen) const
Contains classes to abstract away details in various Spurr Radiative Transfer software.
LIDORT specific BRDF driver implementation.
virtual void calculate_brdf() const
virtual int n_surface_wfs() const
virtual bool do_shadow_effect() const
bool do_multi_scatt_only() const