ReFRACtor
radiative_transfer_single_wn.h
Go to the documentation of this file.
1 #ifndef RADIATIVE_TRANSFER_SINGLE_WN_H
2 #define RADIATIVE_TRANSFER_SINGLE_WN_H
4 #include "rt_atmosphere.h"
5 
6 namespace FullPhysics {
7 /****************************************************************/
23 {
24 public:
27 
28 //-----------------------------------------------------------------------
34 //-----------------------------------------------------------------------
35 
36  virtual int number_stream() const = 0;
37  virtual blitz::Array<double, 2> stokes(const SpectralDomain& Spec_domain,
38  int Spec_index) const;
40  (const SpectralDomain& Spec_domain, int Spec_index) const;
41 
42 //-----------------------------------------------------------------------
54 //-----------------------------------------------------------------------
55 
56  virtual blitz::Array<double, 1> stokes_single_wn
57  (double Wn, int Spec_index, const ArrayAd<double, 2>& Iv = ArrayAd<double, 2>()) const = 0;
58 
59 //-----------------------------------------------------------------------
71 //-----------------------------------------------------------------------
72 
74  (double Wn, int Spec_index, const ArrayAd<double, 2>& Iv = ArrayAd<double, 2>()) const = 0;
75  virtual void print(std::ostream& Os, bool Short_form = false) const;
76 
78  { return atm; }
79 protected:
80 //-----------------------------------------------------------------------
85 //-----------------------------------------------------------------------
86 
91  atm(Atm) {}
92 
93 //-----------------------------------------------------------------------
95 //-----------------------------------------------------------------------
97 
99 };
100 }
101 #endif
virtual ArrayAd< double, 1 > stokes_and_jacobian_single_wn(double Wn, int Spec_index, const ArrayAd< double, 2 > &Iv=ArrayAd< double, 2 >()) const =0
Calculate stokes vector and Jacobian for the given wavenumber.
For different instruments, it is more natural to either work with wavenumbers (e.g., GOSAT) or wavelength (e.g., OCO).
RadiativeTransferSingleWn()
Default constructor. Derived classes should fill in atm and stokes_coef.
virtual blitz::Array< double, 1 > stokes_single_wn(double Wn, int Spec_index, const ArrayAd< double, 2 > &Iv=ArrayAd< double, 2 >()) const =0
Calculate stokes vector for the given wavenumber.
This is a RadiativeTransfer that supplies an interface that can be called for a single wavenumber...
virtual int number_stream() const =0
Number of streams to use in processing.
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 ArrayAd< double, 2 > stokes_and_jacobian(const SpectralDomain &Spec_domain, int Spec_index) const
Calculate stokes vector for the given set of wavenumbers/wavelengths.
boost::shared_ptr< RtAtmosphere > atmosphere_ptr() const
Contains classes to abstract away details in various Spurr Radiative Transfer software.
Definition: doxygen_python.h:1
RadiativeTransferFixedStokesCoefficient()
Default constructor, derived classes should set up stokes_coef.
const boost::shared_ptr< RtAtmosphere > & atmosphere() const
For GOSAT and OCO, we have a set of stokes coefficients to go from Stokes vector to radiation...
virtual void print(std::ostream &Os, bool Short_form=false) const
Print to stream.

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