VProfileModel.h
Go to the documentation of this file.
1 #ifndef _atm_VProfileModel_h_
2 #define _atm_VProfileModel_h_
3 
4 #include <atm/VModel.h>
5 #include <map>
6 
7 
8 namespace atm {
9 
10  class ProfileResult;
11 
26  class VProfileModel : public atm::VModel {
27 
28  public:
29  VProfileModel();
30 
31  virtual ~VProfileModel();
32 
34  virtual const ProfileResult& EvaluateDepthVsHeight() const = 0;
35 
37  virtual const ProfileResult& EvaluateHeightVsDepth() const = 0;
38 
40  virtual const ProfileResult& EvaluatePressureVsHeight() const = 0;
41 
43  virtual const ProfileResult& EvaluateVaporPressureVsHeight() const = 0;
44 
46  virtual const ProfileResult& EvaluateTemperatureVsHeight() const = 0;
47 
49  virtual const ProfileResult& EvaluateDensityVsHeight() const = 0;
50 
52  virtual const ProfileResult& EvaluateRefractionIndexVsHeight() const;
53 
55  virtual const ProfileResult& EvaluateRefractionIndexVsHeight(const double wl) const;
56 
58  virtual double GetVerticalTimeOfFlight(const double height1, const double height2) const;
59 
60  protected:
62  void CleanRIVsWavelength() const;
63 
66  void ExtendProfilesTo100km() const;
67 
75 
76  typedef std::map<double, ProfileResult*> AltWLFunction;
78 
79  };
80 
81 
83 
84 }
85 
86 
87 #endif
ProfileResult * fTabRIVsHeight
Definition: VProfileModel.h:74
virtual ~VProfileModel()
ProfileResult * fTabLogDepthVsHeight
Definition: VProfileModel.h:68
utl::ObjectFactory< VProfileModel *, std::string > VProfileModelFactory
Definition: VProfileModel.h:82
void CleanRIVsWavelength() const
Clean up refraction indices. Derived modules decide when to do this.
virtual const ProfileResult & EvaluatePressureVsHeight() const =0
Return a table of air pressure vs. altitude.
ProfileResult * fTabTemperatureVsHeight
Definition: VProfileModel.h:72
virtual const ProfileResult & EvaluateHeightVsDepth() const =0
Return a table of altitude vs atmospheric column depth.
Base class of atmospheric functions.
Definition: VModel.h:35
virtual const ProfileResult & EvaluateRefractionIndexVsHeight() const
Return a table of wavelength-independent refractive index vs. altitude.
void ExtendProfilesTo100km() const
Class describing the Atmospheric profile.
Definition: ProfileResult.h:25
virtual const ProfileResult & EvaluateVaporPressureVsHeight() const =0
Return a table of H2O vapor pressure vs. altitude.
ProfileResult * fTabLogVaporPressureVsHeight
Definition: VProfileModel.h:71
ProfileResult * fTabLogDensityVsHeight
Definition: VProfileModel.h:73
Template for object factory.
Definition: ObjectFactory.h:71
std::map< double, ProfileResult * > AltWLFunction
Definition: VProfileModel.h:76
ProfileResult * fTabLogPressureVsHeight
Definition: VProfileModel.h:70
virtual double GetVerticalTimeOfFlight(const double height1, const double height2) const
Evaluate light signal time-of-flight between two altitudes.
virtual const ProfileResult & EvaluateDepthVsHeight() const =0
Return a table of vertical column depth vs. altitude.
ProfileResult * fTabHeightVsLogDepth
Definition: VProfileModel.h:69
virtual const ProfileResult & EvaluateDensityVsHeight() const =0
Return a table of air density vs. altitude.
AltWLFunction fTabRIVsHeightAndWaveLength
Definition: VProfileModel.h:77
Base class for a Profile Model.
Definition: VProfileModel.h:26
virtual const ProfileResult & EvaluateTemperatureVsHeight() const =0
Return a table of air temperature vs. altitude.

, generated on Tue Sep 26 2023.