source: ntrip/trunk/BNC/src/PPP/pppFilter.h@ 8912

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

minor changes regarding PPP (not completed)

  • Property svn:keywords set to Author Date Id Rev URL;svn:eol-style=native
  • Property svn:mime-type set to text/plain
File size: 2.8 KB
Line 
1#ifndef FILTER_H
2#define FILTER_H
3
4#include <vector>
5#include <newmat.h>
6#include "pppInclude.h"
7#include "pppParlist.h"
8#include "bnctime.h"
9#include "t_prn.h"
10
11namespace BNC_PPP {
12
13class t_pppParlist;
14class t_pppObsPool;
15class t_pppSatObs;
16
17class t_pppFilter {
18 public:
19 t_pppFilter(t_pppObsPool* obsPool);
20 ~t_pppFilter();
21
22 t_irc processEpoch(int num);
23
24 void datumTransformation();
25
26 const ColumnVector& x() const {return _xFlt;}
27 const SymmetricMatrix& Q() const {return _QFlt;}
28
29 int numSat() const {return _numSat;}
30 double HDOP() const {return _dop.H;}
31 double HDOV() const {return _dop.V;}
32 double PDOP() const {return _dop.P;}
33 double GDOP() const {return _dop.G;}
34 double trp() const {
35 const std::vector<t_pppParam*>& par = _parlist->params();
36 for (unsigned ii = 0; ii < par.size(); ++ii) {
37 if (par[ii]->type() == t_pppParam::trp) {
38 return x()[ii];
39 }
40 }
41 return 0.0;
42 };
43 double trpStdev() const {
44 const std::vector<t_pppParam*>& par = _parlist->params();
45 for (unsigned ii = 0; ii < par.size(); ++ii) {
46 if (par[ii]->type() == t_pppParam::trp) {
47 return sqrt(Q()[ii][ii]);
48 }
49 }
50 return 0.0;
51 };
52
53 private:
54 class t_slip {
55 public:
56 t_slip() {
57 _slip = false;
58 _obsSlipCounter = -1;
59 _biasJumpCounter = -1;
60 }
61 bool _slip;
62 int _obsSlipCounter;
63 int _biasJumpCounter;
64 };
65
66 class t_dop {
67 public:
68 t_dop() {reset();}
69 void reset() {H = V = P = T = G = 0.0;}
70 double H;
71 double V;
72 double P;
73 double T;
74 double G;
75 };
76
77 t_irc processSystem(const std::vector<t_lc::type>& LCs,
78 const std::vector<t_pppSatObs*>& obsVector,
79 const t_prn& refPrn,
80 bool pseudoObsIonoAvailable,
81 bool preProcessing);
82
83 t_irc detectCycleSlips(const std::vector<t_lc::type>& LCs,
84 const std::vector<t_pppSatObs*>& obsVector,
85 const t_prn& refPrn,
86 bool preProcessing);
87
88 t_irc resetAmb(t_prn prn, const std::vector<t_pppSatObs*>& obsVector,
89 SymmetricMatrix* QSav = 0, ColumnVector* xSav = 0);
90
91 void cmpDOP(const std::vector<t_pppSatObs*>& obsVector);
92
93 void predictCovCrdPart(const SymmetricMatrix& QFltOld);
94
95 void initDatumTransformation(int numOfAllUsedLCs);
96
97 bncTime _epoTime;
98 t_pppParlist* _parlist;
99 t_pppObsPool* _obsPool;
100 SymmetricMatrix _QFlt;
101 Matrix _AA1;
102 Matrix _AA2;
103 ColumnVector _xFlt;
104 ColumnVector _x0;
105 t_slip _slips[t_prn::MAXPRN+1];
106 int _numSat;
107 int _numOfEpochProcessing;
108 t_dop _dop;
109 bncTime _firstEpoTime;
110 bncTime _lastEpoTimeOK;
111 t_prn _refPrn;
112};
113
114}
115
116#endif
Note: See TracBrowser for help on using the repository browser.