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

Last change on this file since 7302 was 7302, checked in by stuerze, 9 years ago

minor changes to consider observation gaps

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