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

Last change on this file since 8619 was 8619, checked in by stuerze, 16 months ago

special ssr wind up computation is added

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