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

Last change on this file since 9251 was 8905, checked in by stuerze, 4 years ago

some developments regarding PPP, not completed!

File size: 2.1 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>
[8905]7#include <string>
[2579]8#include "bnctime.h"
[5805]9#include "t_prn.h"
[7240]10#include "satObs.h"
[7246]11#include "bncutils.h"
[2579]12
[5814]13namespace BNC_PPP {
[5805]14
[5801]15class t_astro {
16 public:
17 static ColumnVector Sun(double Mjd_TT);
18 static ColumnVector Moon(double Mjd_TT);
[6400]19 static Matrix rotX(double Angle);
20 static Matrix rotY(double Angle);
21 static Matrix rotZ(double Angle);
[2579]22
[5801]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:
[8905]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;
[5801]37 private:
38 double _lastMjd;
39 ColumnVector _xSun;
40 ColumnVector _xMoon;
41 double _rSun;
42 double _rMoon;
43
[7996]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;
[8905]52 void printBlqSet(const std::string& station, t_blqData* blq);
[7996]53};
54
[5802]55class t_windUp {
56 public:
57 t_windUp();
58 ~t_windUp() {};
59 double value(const bncTime& etime, const ColumnVector& rRec, t_prn prn,
[8619]60 const ColumnVector& rSat, bool ssr, double yaw,
61 const ColumnVector& vSat);
[5802]62 private:
63 double lastEtime[t_prn::MAXPRN+1];
64 double sumWind[t_prn::MAXPRN+1];
65};
66
[5808]67class t_tropo {
[7625]68 public:
[5808]69 static double delay_saast(const ColumnVector& xyz, double Ele);
70};
71
[7240]72class t_iono {
73 public:
74 t_iono();
75 ~t_iono();
[7246]76 double stec(const t_vTec* vTec, double signalPropagationTime,
77 const ColumnVector& rSat, const bncTime& epochTime,
78 const ColumnVector& xyzSta);
[7240]79 private:
[7246]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;
[7240]87};
88
[5805]89}
90
[2579]91#endif
Note: See TracBrowser for help on using the repository browser.