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

Last change on this file since 6017 was 6017, checked in by mervart, 10 years ago
File size: 3.3 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 const t_prn& prn() const {return _prn;}
19 const ColumnVector& xc() const {return _xcSat;}
20 const bncTime& time() const {return _time;}
21 t_irc cmpModel(const t_pppStation* station);
22 double obsValue(t_lc::type tLC) const;
23 double cmpValue(t_lc::type tLC) const;
24 double cmpValueForBanc(t_lc::type tLC) const;
25 double rho() const {return _model._rho;}
26 double sagnac() const {return _model._sagnac;}
27 double eleSat() const {return _model._eleSat;}
28 bool modelSet() const {return _model._set;}
29 void printModel() const;
30 double lc(t_lc::type tLC, double L1, double L2,
31 double C1, double C2, ColumnVector* coeff = 0) const;
32 double lambda(t_lc::type tLC) const;
33 double sigma(t_lc::type tLC) const;
34 double maxRes(t_lc::type tLC) const;
35 bool outlier() const {return _outlier;}
36 void setOutlier() {_outlier = true;}
37 int channel() const {return _channel;}
38 void setRes(t_lc::type tLC, double res);
39 double getRes(t_lc::type tLC) const;
40
41 bool slip() const {
42 for (unsigned ii = 1; ii < t_frequency::max; ii++) {
43 if (_obs[ii] && _obs[ii]->_slip) {
44 return true;
45 }
46 }
47 return false;
48 }
49
50 int slipCounter() const {
51 int cnt = -1;
52 for (unsigned ii = 1; ii < t_frequency::max; ii++) {
53 if (_obs[ii] && _obs[ii]->_slipCounter > cnt) {
54 cnt = _obs[ii]->_slipCounter;
55 }
56 }
57 return cnt;
58 }
59
60 int biasJumpCounter() const {
61 int jmp = -1;
62 for (unsigned ii = 1; ii < t_frequency::max; ii++) {
63 if (_obs[ii] && _obs[ii]->_biasJumpCounter > jmp) {
64 jmp = _obs[ii]->_biasJumpCounter;
65 }
66 }
67 return jmp;
68 }
69
70 private:
71 class t_model {
72 public:
73 t_model() {reset();}
74 ~t_model() {}
75 void reset() {
76 _set = false;
77 _rho = 0.0;
78 _eleSat = 0.0;
79 _azSat = 0.0;
80 _recClkM = 0.0;
81 _satClkM = 0.0;
82 _sagnac = 0.0;
83 _antEcc = 0.0;
84 _tropo = 0.0;
85 _tide = 0.0;
86 _windUp = 0.0;
87 _antPco1 = 0.0;
88 _antPco2 = 0.0;
89 _biasC1 = 0.0;
90 _biasC2 = 0.0;
91 _biasL1 = 0.0;
92 _biasL2 = 0.0;
93 }
94 bool _set;
95 double _rho;
96 double _eleSat;
97 double _azSat;
98 double _recClkM;
99 double _satClkM;
100 double _sagnac;
101 double _antEcc;
102 double _tropo;
103 double _tide;
104 double _windUp;
105 double _antPco1;
106 double _antPco2;
107 double _biasC1;
108 double _biasC2;
109 double _biasL1;
110 double _biasL2;
111 };
112
113 void prepareObs(const t_satObs& satObs);
114
115 t_prn _prn;
116 bncTime _time;
117 int _channel;
118 t_frqObs* _obs[t_frequency::max];
119 ColumnVector _xcSat;
120 ColumnVector _vvSat;
121 t_model _model;
122 bool _outlier;
123 std::map<t_lc::type, double> _res;
124};
125
126}
127
128#endif
Note: See TracBrowser for help on using the repository browser.