source: ntrip/trunk/BNC/src/PPP/pppSatObs.h@ 5906

Last change on this file since 5906 was 5844, checked in by mervart, 10 years ago
File size: 3.6 KB
Line 
1#ifndef SATOBS_H
2#define SATOBS_H
3
4#include <string>
5#include <map>
6#include <newmat.h>
7#include "pppInclude.h"
8#include "bnctime.h"
9
10namespace BNC_PPP {
11
12class t_pppStation;
13
14class t_pppSatObs {
15 public:
16 t_pppSatObs(const t_satObs& satObs);
17 ~t_pppSatObs();
18 bool isValid() const {return _valid;}
19 void prepareObs();
20 const t_prn& prn() const {return _prn;}
21 const ColumnVector& xc() const {return _xcSat;}
22 const bncTime& time() const {return _time;}
23 t_irc cmpModel(const t_pppStation* station);
24 double obsValue(t_lc::type tLC) const;
25 double cmpValue(t_lc::type tLC) const;
26 double cmpValueForBanc(t_lc::type tLC) const;
27 double rho() const {return _model._rho;}
28 double sagnac() const {return _model._sagnac;}
29 double eleSat() const {return _model._eleSat;}
30 bool modelSet() const {return _model._set;}
31 void printModel() const;
32 double lc(t_lc::type tLC, double L1, double L2,
33 double C1, double C2, ColumnVector* coeff = 0) const;
34 double lambda(t_lc::type tLC) const;
35 double sigma(t_lc::type tLC) const;
36 bool outlier() const {return _outlier;}
37 void setOutlier() {_outlier = true;}
38 int channel() const {return _channel;}
39 void setRes(t_lc::type tLC, double res);
40 double getRes(t_lc::type tLC) const;
41
42 bool slip() const {
43 for (unsigned ii = 0; ii < _allObs.size(); ii++) {
44 if (_allObs[ii]->_slip) {
45 return true;
46 }
47 }
48 return false;
49 }
50
51 int slipCounter() const {
52 int cnt = -1;
53 for (unsigned ii = 0; ii < _allObs.size(); ii++) {
54 if (_allObs[ii]->_slipCounter > cnt) {
55 cnt = _allObs[ii]->_slipCounter;
56 }
57 }
58 return cnt;
59 }
60
61 int biasJumpCounter() const {
62 int jmp = -1;
63 for (unsigned ii = 0; ii < _allObs.size(); ii++) {
64 if (_allObs[ii]->_biasJumpCounter > jmp) {
65 jmp = _allObs[ii]->_biasJumpCounter;
66 }
67 }
68 return jmp;
69 }
70
71 private:
72 class t_model {
73 public:
74 t_model() {reset();}
75 ~t_model() {}
76 void reset() {
77 _set = false;
78 _rho = 0.0;
79 _eleSat = 0.0;
80 _azSat = 0.0;
81 _recClkM = 0.0;
82 _satClkM = 0.0;
83 _sagnac = 0.0;
84 _antEcc = 0.0;
85 _tropo = 0.0;
86 _tide = 0.0;
87 _windUp = 0.0;
88 _antPco1 = 0.0;
89 _antPco2 = 0.0;
90 _biasC1 = 0.0;
91 _biasC2 = 0.0;
92 _biasL1 = 0.0;
93 _biasL2 = 0.0;
94 }
95 bool _set;
96 double _rho;
97 double _eleSat;
98 double _azSat;
99 double _recClkM;
100 double _satClkM;
101 double _sagnac;
102 double _antEcc;
103 double _tropo;
104 double _tide;
105 double _windUp;
106 double _antPco1;
107 double _antPco2;
108 double _biasC1;
109 double _biasC2;
110 double _biasL1;
111 double _biasL2;
112 };
113
114 t_prn _prn;
115 bncTime _time;
116 int _channel;
117 std::vector<t_frqObs*> _allObs;
118 bool _valid;
119 t_frqObs* _validObs1;
120 t_frqObs* _validObs2;
121 double _f1;
122 double _f2;
123 double _rawC1;
124 double _rawC2;
125 double _rawL1;
126 double _rawL2;
127 ColumnVector _xcSat;
128 ColumnVector _vvSat;
129 t_model _model;
130 bool _outlier;
131 std::map<t_lc::type, double> _res;
132};
133
134}
135
136#endif
Note: See TracBrowser for help on using the repository browser.