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

Last change on this file since 6653 was 6653, checked in by stuerze, 11 years ago

sinex tro file support added,
troposphere results in overall ppp logfile added

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 getTrp(void);
83
84 void predictCovCrdPart(const SymmetricMatrix& QFltOld);
85
86 bncTime _epoTime;
87 t_pppParlist* _parlist;
88 SymmetricMatrix _QFlt;
89 ColumnVector _xFlt;
90 ColumnVector _x0;
91 t_slip _slips[t_prn::MAXPRN+1];
92 int _numSat;
93 t_dop _dop;
94 bncTime _firstEpoTime;
95};
96
97}
98
99#endif
Note: See TracBrowser for help on using the repository browser.