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

Last change on this file was 10805, checked in by stuerze, 7 months ago

minor changes regarding ppp output

  • 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.6 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();
20 ~t_pppFilter();
21
22 t_irc processEpoch(t_pppObsPool* obsPool);
23
24 const ColumnVector& x() const {return _xFlt;}
25 const SymmetricMatrix& Q() const {return _QFlt;}
26
27 int numSat() const {return _numSat;}
28 double HDOP() const {return _dop.H;}
29 double HDOV() const {return _dop.V;}
30 double PDOP() const {return _dop.P;}
31 double GDOP() const {return _dop.G;}
32 double fixRatio() const {return _fixRatio;}
33 double trp() const {
34 const std::vector<t_pppParam*>& par = _parlist->params();
35 for (unsigned ii = 0; ii < par.size(); ++ii) {
36 if (par[ii]->type() == t_pppParam::trp) {
37 return x()[ii];
38 }
39 }
40 return 0.0;
41 };
42 double trpStdev() const {
43 const std::vector<t_pppParam*>& par = _parlist->params();
44 for (unsigned ii = 0; ii < par.size(); ++ii) {
45 if (par[ii]->type() == t_pppParam::trp) {
46 return sqrt(Q()[ii][ii]);
47 }
48 }
49 return 0.0;
50 };
51
52 private:
53 class t_slip {
54 public:
55 t_slip() {
56 _slip = false;
57 _obsSlipCounter = -1;
58 _biasJumpCounter = -1;
59 }
60 bool _slip;
61 int _obsSlipCounter;
62 int _biasJumpCounter;
63 };
64
65 class t_dop {
66 public:
67 t_dop() {reset();}
68 void reset() {H = V = P = T = G = 0.0;}
69 double H;
70 double V;
71 double P;
72 double T;
73 double G;
74 };
75
76 t_irc processSystem(const std::vector<t_lc>& LCs,
77 const std::vector<t_pppSatObs*>& obsVector,
78 bool pseudoObsIonoAvailable);
79
80 t_irc detectCycleSlips(const std::vector<t_lc>& LCs,
81 const std::vector<t_pppSatObs*>& obsVector);
82
83 t_irc resetAmb(t_prn prn, const std::vector<t_pppSatObs*>& obsVector, t_lc lc,
84 SymmetricMatrix* QSav = 0, ColumnVector* xSav = 0);
85
86 void cmpDOP(const std::vector<t_pppSatObs*>& obsVector);
87
88 void setStateVectorAndVarCovMatrix(const ColumnVector& xFltOld, const SymmetricMatrix& QFltOld,
89 bool setNeuNoiseToZero);
90
91 void predictCovCrdPart(const SymmetricMatrix& QFltOld, bool setNeuNoiseToZero);
92
93
94 bncTime _epoTime;
95 t_pppParlist* _parlist;
96 SymmetricMatrix _QFlt;
97 ColumnVector _xFlt;
98 ColumnVector _x0;
99 t_slip _slips[t_prn::MAXPRN+1];
100 int _numSat;
101 t_dop _dop;
102 bncTime _firstEpoTime;
103 bncTime _lastEpoTimeOK;
104 double _fixRatio;
105};
106
107}
108
109#endif
Note: See TracBrowser for help on using the repository browser.