ReFRACtor
spectral_window.h
Go to the documentation of this file.
1 #ifndef SPECTRAL_WINDOW_H
2 #define SPECTRAL_WINDOW_H
3 
4 #include "printable.h"
5 #include <blitz/array.h>
6 #include <vector>
7 #include "spectral_bound.h"
8 #include "double_with_unit.h"
9 #include "spectrum.h"
10 
11 namespace FullPhysics {
12 /****************************************************************/
27 class SpectralWindow : public Printable<SpectralWindow> {
28 public:
29  virtual ~SpectralWindow() {}
30 
31  SpectralDomain apply(const SpectralDomain& Grid, int Spec_index) const;
32  Spectrum apply(const Spectrum& Spec, int Spec_index) const;
33 
34 //-----------------------------------------------------------------------
37 //-----------------------------------------------------------------------
38 
39  virtual std::vector<int> grid_indexes(const SpectralDomain& Grid,
40  int Spec_index) const = 0;
41 
42 //-----------------------------------------------------------------------
44 //-----------------------------------------------------------------------
45 
46  virtual int number_spectrometer() const = 0;
47 
48 //-----------------------------------------------------------------------
50 //-----------------------------------------------------------------------
51 
52  virtual SpectralBound spectral_bound() const = 0;
53 
54  virtual void print(std::ostream& Os) const { Os << "SpectralWindow";}
55 };
56 }
57 #endif
virtual SpectralBound spectral_bound() const =0
Bounds of spectral window.
virtual void print(std::ostream &Os) const
For different instruments, it is more natural to either work with wavenumbers (e.g., GOSAT) or wavelength (e.g., OCO).
This is a Mixin for classes that can be printed.
Definition: printable.h:24
virtual std::vector< int > grid_indexes(const SpectralDomain &Grid, int Spec_index) const =0
Given a list of wavenumbers, this returns the indices that fall within the window.
This is a full spectrum, which contains a SpectralRange and SpectralDomain.
Definition: spectrum.h:18
This gives the upper and lower bounds of the SpectralWindow.
virtual int number_spectrometer() const =0
Number of spectrometers.
This class represents a the spectral window.
SpectralDomain apply(const SpectralDomain &Grid, int Spec_index) const
Apply a spectral window to a SpectralDomain, returning the possibly empty part of the domain that pas...
Contains classes to abstract away details in various Spurr Radiative Transfer software.
Definition: doxygen_python.h:1

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