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

Last change on this file since 10254 was 10249, checked in by stuerze, 9 months ago

minor changes

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