1 #ifndef CHAPMAN_BOA_RT_H 2 #define CHAPMAN_BOA_RT_H 16 public boost::noncopyable {
19 const blitz::Array<double, 1>& Sza);
22 const blitz::Array<double, 1>& Sza,
35 {
return sza.extent(blitz::firstDim);}
46 bool Skip_jacobian =
false)
const;
50 virtual void print(std::ostream& Os,
bool Short_form =
false)
const;
55 void compute_chapman_factors(
const int Spec_idx)
const;
58 mutable blitz::Array<bool, 1> chapman_cache_stale;
61 mutable std::vector<boost::shared_ptr<ChapmanBOA> > chapman_boa;
70 blitz::Array<double, 1> sza;
This class is responsible for setting up the atmosphere and ground information needed to run the Radi...
For different instruments, it is more natural to either work with wavenumbers (e.g., GOSAT) or wavelength (e.g., OCO).
ChapmanBoaRT(const boost::shared_ptr< AtmosphereOco > &Atm, const blitz::Array< double, 1 > &Sza)
const boost::shared_ptr< AtmosphereOco > & atmosphere_ptr() const
Pointer to the Atmosphere class we are using.
virtual blitz::Array< double, 2 > stokes(const SpectralDomain &Spec_domain, int Spec_index) const
Calculate stokes vector for the given set of wavenumbers/wavelengths.
virtual int number_stokes() const
Number of stokes parameters we will return in stokes and stokes_and_jacobian.
virtual int number_spectrometer() const
Number of spectrometer we have.
void notify_update(const RtAtmosphere &updated_atm)
Regenerate chapman factors when Atmosphere changes.
This runs a Radiative Transfer code to determine the reflectance for a given set of wavelengths...
This is a full spectrum, which contains a SpectralRange and SpectralDomain.
This gives the upper and lower bounds of the SpectralWindow.
virtual ArrayAd< double, 2 > stokes_and_jacobian(const SpectralDomain &Spec_domain, int Spec_index) const
Calculate stokes vector for the given set of wavenumbers/wavelengths.
virtual Spectrum reflectance(const SpectralDomain &Spec_domain, int Spec_index, bool Skip_jacobian=false) const
Calculate reflectance for the given set of wavenumbers/wavelengths.
virtual void print(std::ostream &Os, bool Short_form=false) const
Print to stream.
Contains classes to abstract away details in various Spurr Radiative Transfer software.
Simple Mixin to be and Observer of another object of class T.