ReFRACtor
instrument_doppler.h
Go to the documentation of this file.
1 #ifndef INSTRUMENT_DOPPLER_H
2 #define INSTRUMENT_DOPPLER_H
3 
4 #include <boost/lexical_cast.hpp>
5 #include <boost/shared_ptr.hpp>
6 
8 
9 namespace FullPhysics {
10 /****************************************************************/
16 public:
17  InstrumentDoppler(const DoubleWithUnit& Relative_velocity,
18  const bool Used_flag = false);
19  InstrumentDoppler(const double Relative_velocity_value,
20  const std::string& Relative_velocity_units,
21  const bool Used_flag = false);
22 
23  virtual void apply_effect(Spectrum& Spec, const ForwardModelSpectralGrid& Forward_model_grid) const;
24 
26 
27  virtual std::string sub_state_identifier() const { return "instrument_doppler"; }
28 
29  virtual std::string state_vector_name_i(int i) const
30  { return "Instrument Doppler Correction " + boost::lexical_cast<std::string>(i + 1); }
31  virtual void print(std::ostream& Os) const;
32 
33  virtual std::string name() const { return "instrument_doppler"; }
34 
35 private:
36  Unit vel_units;
37 };
38 }
39 #endif
As a design principle, we have each base class with the absolutely minimum interface needed for use f...
virtual void apply_effect(Spectrum &Spec, const ForwardModelSpectralGrid &Forward_model_grid) const
Apply correction to spectrum in place.
Corrects Spectrum spectral domain to account for the doppler shift due to the relative velocity betwe...
This is the Forward Model spectral grid.
virtual std::string state_vector_name_i(int i) const
Return state vector name for ith entry in coeff.
virtual std::string name() const
Name of spectrum effect, for use when outputting effects of effect.
virtual boost::shared_ptr< SpectrumEffect > clone() const
Clone a SpectrumEffect object.
This is a full spectrum, which contains a SpectralRange and SpectralDomain.
Definition: spectrum.h:18
InstrumentDoppler(const DoubleWithUnit &Relative_velocity, const bool Used_flag=false)
We frequently have a double with units associated with it.
virtual std::string sub_state_identifier() const
Return a string to identify this part of the state, this name should be all lower case and seperate p...
Libraries such as boost::units allow unit handling where we know the units at compile time...
Definition: unit.h:25
Contains classes to abstract away details in various Spurr Radiative Transfer software.
Definition: doxygen_python.h:1
virtual void print(std::ostream &Os) const

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