ReFRACtor
level_1b_average.h
Go to the documentation of this file.
1 #ifndef LEVEL_1B_AVERAGE_H
2 #define LEVEL_1B_AVERAGE_H
3 #include "level_1b.h"
4 #include <boost/shared_ptr.hpp>
5 #include <functional>
6 #include <vector>
7 
8 namespace FullPhysics {
9 /****************************************************************/
14 class Level1bAverage: public Level1b {
15 public:
16  Level1bAverage(const std::vector<boost::shared_ptr<Level1b> >& Data)
17  : l1b(Data) {}
18  virtual ~Level1bAverage() {}
19  virtual int number_spectrometer() const;
20  virtual DoubleWithUnit relative_velocity(int Spec_index) const;
21  virtual Time time(int Spec_index) const;
22  virtual SpectralDomain sample_grid(int Spec_index) const;
23 
24  virtual DoubleWithUnit latitude(int i) const;
25  virtual DoubleWithUnit longitude(int i) const;
26  virtual DoubleWithUnit sounding_zenith(int i) const;
27  virtual DoubleWithUnit sounding_azimuth(int i) const;
28  virtual blitz::Array<double, 1> stokes_coefficient(int i) const;
29  virtual DoubleWithUnit solar_zenith(int i) const;
30  virtual DoubleWithUnit solar_azimuth(int i) const;
31  virtual DoubleWithUnit altitude(int i) const;
32 
33  virtual void print(std::ostream& Os) const;
34  virtual SpectralRange radiance(int Spec_index) const;
35 private:
36  template <typename T>
37  bool check_field_equal(T && check_field) const;
38  template <typename T>
39  bool check_field_equal(T && check_field, int arg1) const;
40  template <typename T>
41  void assert_field_equal(T && check_field) const;
42  template <typename T>
43  void assert_field_equal(T && check_field, int arg1) const;
44  std::vector<boost::shared_ptr<Level1b> > l1b;
45 };
46 }
47 #endif
virtual DoubleWithUnit sounding_zenith(int i) const
Sounding zenith.
virtual DoubleWithUnit solar_azimuth(int i) const
Solar azimuth.
virtual int number_spectrometer() const
Number of spectrometers.
For different instruments, it is more natural to either work with wavenumbers (e.g., GOSAT) or wavelength (e.g., OCO).
virtual SpectralDomain sample_grid(int Spec_index) const
Returns the sample grid (ie wavenumber, wavelength, etc) for the corresponding radiance values...
virtual SpectralRange radiance(int Spec_index) const
Radiance, for given spectral band.
virtual DoubleWithUnit longitude(int i) const
Longitude.
This is used to read a Level 1B file.
Definition: level_1b.h:15
virtual DoubleWithUnit solar_zenith(int i) const
Solar zenith.
virtual blitz::Array< double, 1 > stokes_coefficient(int i) const
Return stokes coefficients.
virtual DoubleWithUnit latitude(int i) const
Latitude.
Level1bAverage(const std::vector< boost::shared_ptr< Level1b > > &Data)
We frequently have a double with units associated with it.
We have a number of different spectrums that appear in different parts of the code.
This is a simple time class.
Definition: fp_time.h:29
virtual void print(std::ostream &Os) const
Print description of object.
Contains classes to abstract away details in various Spurr Radiative Transfer software.
Definition: doxygen_python.h:1
virtual DoubleWithUnit sounding_azimuth(int i) const
Sounding azimuth.
This reads averages a set of Level1b classes to get the various values.
virtual Time time(int Spec_index) const
Time of sounding.
virtual DoubleWithUnit altitude(int i) const
Altitude.
virtual DoubleWithUnit relative_velocity(int Spec_index) const
Relative velocity.

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