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

Last change on this file since 10550 was 8905, checked in by stuerze, 5 years ago

some developments regarding PPP, not completed!

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 <iostream>
7#include <string>
8#include "bnctime.h"
9#include "t_prn.h"
10#include "satObs.h"
11#include "bncutils.h"
12
13namespace BNC_PPP {
14
15class t_astro {
16 public:
17 static ColumnVector Sun(double Mjd_TT);
18 static ColumnVector Moon(double Mjd_TT);
19 static Matrix rotX(double Angle);
20 static Matrix rotY(double Angle);
21 static Matrix rotZ(double Angle);
22
23 private:
24 static double GMST(double Mjd_UT1);
25 static Matrix NutMatrix(double Mjd_TT);
26 static Matrix PrecMatrix (double Mjd_1, double Mjd_2);
27};
28
29class t_tides {
30 public:
31 t_tides();
32 ~t_tides();
33 ColumnVector earth(const bncTime& time, const ColumnVector& xyz);
34 ColumnVector ocean(const bncTime& time, const ColumnVector& xyz, const std::string& station);
35 t_irc readBlqFile(const char* fileName);
36 void printAllBlqSets() const;
37 private:
38 double _lastMjd;
39 ColumnVector _xSun;
40 ColumnVector _xMoon;
41 double _rSun;
42 double _rMoon;
43
44 class t_blqData {
45 public:
46 t_blqData() {}
47 Matrix amplitudes;
48 Matrix phases;
49 };
50 t_blqData* newBlqData;
51 QMap <QString, t_blqData*> blqMap;
52 void printBlqSet(const std::string& station, t_blqData* blq);
53};
54
55class t_windUp {
56 public:
57 t_windUp();
58 ~t_windUp() {};
59 double value(const bncTime& etime, const ColumnVector& rRec, t_prn prn,
60 const ColumnVector& rSat, bool ssr, double yaw,
61 const ColumnVector& vSat);
62 private:
63 double lastEtime[t_prn::MAXPRN+1];
64 double sumWind[t_prn::MAXPRN+1];
65};
66
67class t_tropo {
68 public:
69 static double delay_saast(const ColumnVector& xyz, double Ele);
70};
71
72class t_iono {
73 public:
74 t_iono();
75 ~t_iono();
76 double stec(const t_vTec* vTec, double signalPropagationTime,
77 const ColumnVector& rSat, const bncTime& epochTime,
78 const ColumnVector& xyzSta);
79 private:
80 double vtecSingleLayerContribution(const t_vTecLayer& vTecLayer);
81 void piercePoint(double layerHeight, double epoch, const double* geocSta,
82 double sphEle, double sphAzi);
83 double _psiPP;
84 double _phiPP;
85 double _lambdaPP;
86 double _lonS;
87};
88
89}
90
91#endif
Note: See TracBrowser for help on using the repository browser.