7 #include <boost/noncopyable.hpp> 18 public boost::noncopyable {
23 const blitz::Array<double, 1>& Sza,
24 const blitz::Array<double, 1>& Zen,
25 const blitz::Array<double, 1>& Azm,
27 bool do_thermal =
false);
49 virtual void print(std::ostream& Os,
bool Short_form =
false)
const;
virtual void setup_thermal_inputs(double wn, int spec_index) const
void notify_update(const RtAtmosphere &atm)
For performance, we cache some data as we calculate it.
This class is responsible for setting up the atmosphere and ground information needed to run the Radi...
boost::shared_ptr< RtAtmosphere > atm
virtual ArrayAd< double, 1 > stokes_and_jacobian_single_wn(double Wn, int Spec_index, const ArrayAd< double, 2 > &Iv) const
Calculate stokes vector and Jacobian for the given wavenumber.
boost::shared_ptr< SpurrRtDriver > rt_driver_
virtual blitz::Array< double, 1 > stokes_single_wn(double Wn, int Spec_index, const ArrayAd< double, 2 > &Iv) const
Calculate stokes vector for the given wavenumber.
SpurrRt(const boost::shared_ptr< RtAtmosphere > &Atm, const boost::shared_ptr< StokesCoefficient > &Stokes_coef, const blitz::Array< double, 1 > &Sza, const blitz::Array< double, 1 > &Zen, const blitz::Array< double, 1 > &Azm, bool do_solar=true, bool do_thermal=false)
Constructor.
virtual int number_moment() const =0
Number of moments for scattering matrix.
This is a RadiativeTransfer that supplies an interface that can be called for a single wavenumber...
virtual void update_geometry(int spec_index) const
Update the geometry if necessary, only needs to change when spectrometer index changes.
Abstract Interface for Rt classes based on Spurr driver implementations.
blitz::Array< double, 1 > zen
blitz::Array< double, 1 > azm
blitz::Array< double, 1 > sza
virtual void print(std::ostream &Os, bool Short_form=false) const
Print to a stream.
Contains classes to abstract away details in various Spurr Radiative Transfer software.
virtual void update_altitude(int spec_index) const
Update the altitude information.
boost::shared_ptr< StokesCoefficient > stokes_coef
Object to go from stokes vector to reflectance.
virtual int number_stream() const =0
Number of quadtature streams in the cosine half space.
virtual int number_stokes() const
Number of stokes in returned stokes values Note that LIDORT will only ever calculate the first stoke ...
Simple Mixin to be and Observer of another object of class T.
virtual int surface_type() const
Integer representing the surface type using the LIDORT indexing nomenclature.