ReFRACtor
level_1b.h
Go to the documentation of this file.
1 #ifndef LEVEL_1B_H
2 #define LEVEL_1B_H
3 #include "fp_time.h"
4 #include "printable.h"
5 #include "double_with_unit.h"
6 #include "spectral_range.h"
7 #include "spectral_domain.h"
8 #include <blitz/array.h>
9 #include <stdint.h>
10 
11 namespace FullPhysics {
12 /****************************************************************/
15 class Level1b: public Printable<Level1b> {
16 public:
17  virtual ~Level1b() { };
18 
19 //-----------------------------------------------------------------------
21 //-----------------------------------------------------------------------
22 
23  virtual int number_spectrometer() const = 0;
24 
25 //-----------------------------------------------------------------------
30 //-----------------------------------------------------------------------
31 
32  virtual DoubleWithUnit latitude(int i) const = 0;
33 
34 //-----------------------------------------------------------------------
39 //-----------------------------------------------------------------------
40 
41  virtual DoubleWithUnit longitude(int i) const = 0;
42 
43 //-----------------------------------------------------------------------
48 //-----------------------------------------------------------------------
49 
50  virtual DoubleWithUnit sounding_zenith(int i) const = 0;
51 
52 //-----------------------------------------------------------------------
57 //-----------------------------------------------------------------------
58 
59  virtual DoubleWithUnit sounding_azimuth(int i) const = 0;
60 
61 //-----------------------------------------------------------------------
66 //-----------------------------------------------------------------------
67 
68  virtual blitz::Array<double, 1> stokes_coefficient(int i) const = 0;
69 
70 //-----------------------------------------------------------------------
75 //-----------------------------------------------------------------------
76 
77  virtual DoubleWithUnit solar_zenith(int i) const = 0;
78 
79 //-----------------------------------------------------------------------
84 //-----------------------------------------------------------------------
85 
86  virtual DoubleWithUnit solar_azimuth(int i) const = 0;
87 
88 //-----------------------------------------------------------------------
93 // angles.
94 //-----------------------------------------------------------------------
95 
96  virtual DoubleWithUnit relative_azimuth(int i) const;
97 
98 //-----------------------------------------------------------------------
103 //-----------------------------------------------------------------------
104 
105  virtual DoubleWithUnit altitude(int i) const = 0;
106 
107 //-----------------------------------------------------------------------
110 //-----------------------------------------------------------------------
111 
112  virtual DoubleWithUnit relative_velocity(int Spec_index) const = 0;
113 
114 //-----------------------------------------------------------------------
119 //-----------------------------------------------------------------------
120 
121  virtual SpectralDomain sample_grid(int Spec_index) const = 0;
122 
123 //-----------------------------------------------------------------------
125 //-----------------------------------------------------------------------
126 
127  virtual Time time(int Spec_index) const = 0;
128 
129 //-----------------------------------------------------------------------
131 //-----------------------------------------------------------------------
132 
133  virtual void print(std::ostream& Os) const {Os << "Level1b";}
134 
135 //-----------------------------------------------------------------------
139 //-----------------------------------------------------------------------
140 
141  virtual SpectralRange radiance(int Spec_index) const = 0;
142 
143 //-----------------------------------------------------------------------
151 //-----------------------------------------------------------------------
152 
153  virtual DoubleWithUnit signal(int Spec_index, const std::vector<int>& Sample_indexes = std::vector<int>()) const;
154 
155 };
156 } // End of FullPhysics namespace
157 #endif
virtual Time time(int Spec_index) const =0
Time of sounding.
virtual DoubleWithUnit solar_azimuth(int i) const =0
Solar azimuth.
virtual DoubleWithUnit altitude(int i) const =0
Altitude.
virtual ~Level1b()
Definition: level_1b.h:17
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 =0
Returns the sample grid (ie wavenumber, wavelength, etc) for the corresponding radiance values...
virtual blitz::Array< double, 1 > stokes_coefficient(int i) const =0
Return stokes coefficients.
virtual SpectralRange radiance(int Spec_index) const =0
Radiance, for given spectral band.
virtual void print(std::ostream &Os) const
Print description of object.
Definition: level_1b.h:133
This is used to read a Level 1B file.
Definition: level_1b.h:15
This is a Mixin for classes that can be printed.
Definition: printable.h:24
virtual DoubleWithUnit latitude(int i) const =0
Latitude.
virtual DoubleWithUnit relative_azimuth(int i) const
Realtive azimuth.
We frequently have a double with units associated with it.
virtual DoubleWithUnit longitude(int i) const =0
Longitude.
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 DoubleWithUnit sounding_zenith(int i) const =0
Sounding zenith.
Contains classes to abstract away details in various Spurr Radiative Transfer software.
Definition: doxygen_python.h:1
virtual DoubleWithUnit signal(int Spec_index, const std::vector< int > &Sample_indexes=std::vector< int >()) const
Calculate an approximation to the size of the continuum signal where there is no significant atmosphe...
virtual DoubleWithUnit sounding_azimuth(int i) const =0
Sounding azimuth.
virtual DoubleWithUnit solar_zenith(int i) const =0
Solar zenith.
virtual DoubleWithUnit relative_velocity(int Spec_index) const =0
Relative velocity.
virtual int number_spectrometer() const =0
Number of spectrometers.

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