1 #ifndef _ANTARCTIC_ATMOSPHERE_H 2 #define _ANTARCTIC_ATMOSPHERE_H 30 double MSLtoWGS84(
double h,
double lat,
double lon, Geoid g = EGM96_5) ;
33 double WGS84toMSL(
const Adu5Pat * pat, Geoid g = EGM96_5) ;
34 double WGS84toMSL(
double lat,
double lon,
double alt, Geoid g = EGM96_5) ;
61 virtual int computeAtmosphere(
double h,
Pars * p,
double phi = 0)
const= 0;
62 virtual double get(
double h, Par p,
double phi = 0)
const;
63 TGraph * makeGraph(
double hmin,
double hmax,
int nh, Par P,
bool alt_on_x=
true,
double phi = 0)
const;
65 virtual const char * name()
const {
return "atmospheric model"; }
75 void addModel(
const AtmosphericModel * m,
double phi) { atms.insert(std::pair<double,const AtmosphericModel *>(phi,m));}
76 virtual int computeAtmosphere(
double h,
Pars * p,
double phi = 0)
const;
78 std::set<std::pair<double, const AtmosphericModel *> > atms;
87 SPRadiosonde(
int year,
int month,
int day,
bool early =
true);
89 virtual int computeAtmosphere(
double h,
Pars * p,
double phi = 0)
const;
91 double max_unextrapolated_height()
const {
return N.GetX()[N.GetN()-1]; }
92 double min_height()
const {
return N.GetX()[0]; }
93 bool ok()
const {
return loaded; }
94 virtual const char * name()
const {
return my_name.Data(); }
96 const TGraph * raw_N()
const {
return &N ; }
119 StandardUS(
double sea_level_T_kelvin = 265,
double sea_level_P_mbar = 970)
121 sea_level_T = sea_level_T_kelvin;
122 sea_level_P = sea_level_P_mbar;
126 virtual int computeAtmosphere(
double h,
Pars * p,
double phi = 0)
const;
127 virtual const char * name()
const {
return "Standard US"; }
137 ExponentialRefractivity(
double a = 315,
double b = 0.1361e-3) :
StandardUS() {k_A = a ; k_B =b; my_name.Form(
"exponential refractivity, a = %g, b =%g", k_A, k_B); }
139 virtual int computeAtmosphere(
double h,
Pars * p,
double phi = 0)
const;
140 virtual double get(
double h, Par p,
double phi = 0)
const;
142 virtual const char * name()
const {
return my_name.Data(); }
159 : m(base), hmax(max_height), Amax(max_ampl) {; }
160 virtual int computeAtmosphere(
double h,
Pars * p,
double phi = 0)
const;
161 virtual double get(
double h, Par p,
double phi = 0)
const;
166 double correction(
double h)
const;
Adu5Pat – The ADU5 Position and Attitude Data.
SPRadiosonde(int year, int month, int day, bool early=true)