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

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

special ssr wind up computation is added

File size: 2.2 KB
RevLine 
[5801]1#ifndef PPPMODEL_H
2#define PPPMODEL_H
[2579]3
[5806]4#include <math.h>
[2579]5#include <newmat.h>
[7998]6#include <iostream>
[2579]7#include "bnctime.h"
[5805]8#include "t_prn.h"
[7240]9#include "satObs.h"
[7246]10#include "bncutils.h"
[2579]11
[5814]12namespace BNC_PPP {
[5805]13
[5801]14class t_astro {
15 public:
16 static ColumnVector Sun(double Mjd_TT);
17 static ColumnVector Moon(double Mjd_TT);
[6400]18 static Matrix rotX(double Angle);
19 static Matrix rotY(double Angle);
20 static Matrix rotZ(double Angle);
[2579]21
[5801]22 private:
[6268]23 static const double RHO_DEG;
24 static const double RHO_SEC;
25 static const double MJD_J2000;
[2582]26
[5801]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;
[7625]36 _rSun = 0.0;
37 _rMoon = 0.0;
[5801]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
[7996]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
[5802]68class t_windUp {
69 public:
70 t_windUp();
71 ~t_windUp() {};
72 double value(const bncTime& etime, const ColumnVector& rRec, t_prn prn,
[8619]73 const ColumnVector& rSat, bool ssr, double yaw,
74 const ColumnVector& vSat);
[5802]75 private:
76 double lastEtime[t_prn::MAXPRN+1];
77 double sumWind[t_prn::MAXPRN+1];
78};
79
[5808]80class t_tropo {
[7625]81 public:
[5808]82 static double delay_saast(const ColumnVector& xyz, double Ele);
83};
84
[7240]85class t_iono {
86 public:
87 t_iono();
88 ~t_iono();
[7246]89 double stec(const t_vTec* vTec, double signalPropagationTime,
90 const ColumnVector& rSat, const bncTime& epochTime,
91 const ColumnVector& xyzSta);
[7240]92 private:
[7246]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;
[7240]100
101
102};
103
[5805]104}
105
[2579]106#endif
Note: See TracBrowser for help on using the repository browser.