source: ntrip/trunk/BNC/src/pppModel.h@ 7996

Last change on this file since 7996 was 7996, checked in by stuerze, 8 years ago

reading of ocean loading files is added

File size: 2.1 KB
Line 
1#ifndef PPPMODEL_H
2#define PPPMODEL_H
3
4#include <math.h>
5#include <newmat.h>
6#include "bnctime.h"
7#include "t_prn.h"
8#include "satObs.h"
9#include "bncutils.h"
10
11namespace BNC_PPP {
12
13class t_astro {
14 public:
15 static ColumnVector Sun(double Mjd_TT);
16 static ColumnVector Moon(double Mjd_TT);
17 static Matrix rotX(double Angle);
18 static Matrix rotY(double Angle);
19 static Matrix rotZ(double Angle);
20
21 private:
22 static const double RHO_DEG;
23 static const double RHO_SEC;
24 static const double MJD_J2000;
25
26 static double GMST(double Mjd_UT1);
27 static Matrix NutMatrix(double Mjd_TT);
28 static Matrix PrecMatrix (double Mjd_1, double Mjd_2);
29};
30
31class t_tides {
32 public:
33 t_tides() {
34 _lastMjd = 0.0;
35 _rSun = 0.0;
36 _rMoon = 0.0;
37 }
38 ~t_tides() {}
39 ColumnVector displacement(const bncTime& time, const ColumnVector& xyz);
40 private:
41 double _lastMjd;
42 ColumnVector _xSun;
43 ColumnVector _xMoon;
44 double _rSun;
45 double _rMoon;
46};
47
48class t_loading {
49 public:
50 t_loading(const QString& fileName);
51 ~t_loading();
52 t_irc readFile(const QString& fileName);
53 void printAll() const;
54
55 private:
56 class t_blqData {
57 public:
58 t_blqData() {}
59 Matrix amplitudes;
60 Matrix phases;
61 };
62 t_blqData* newBlqData;
63 QMap <QString, t_blqData*> blqMap;
64
65};
66
67class t_windUp {
68 public:
69 t_windUp();
70 ~t_windUp() {};
71 double value(const bncTime& etime, const ColumnVector& rRec, t_prn prn,
72 const ColumnVector& rSat);
73 private:
74 double lastEtime[t_prn::MAXPRN+1];
75 double sumWind[t_prn::MAXPRN+1];
76};
77
78class t_tropo {
79 public:
80 static double delay_saast(const ColumnVector& xyz, double Ele);
81};
82
83class t_iono {
84 public:
85 t_iono();
86 ~t_iono();
87 double stec(const t_vTec* vTec, double signalPropagationTime,
88 const ColumnVector& rSat, const bncTime& epochTime,
89 const ColumnVector& xyzSta);
90 private:
91 double vtecSingleLayerContribution(const t_vTecLayer& vTecLayer);
92 void piercePoint(double layerHeight, double epoch, const double* geocSta,
93 double sphEle, double sphAzi);
94 double _psiPP;
95 double _phiPP;
96 double _lambdaPP;
97 double _lonS;
98
99
100};
101
102}
103
104#endif
Note: See TracBrowser for help on using the repository browser.