Changeset 8961 in ntrip for trunk/BNC/src/PPP
- Timestamp:
- Jun 29, 2020, 10:09:16 AM (5 years ago)
- Location:
- trunk/BNC/src/PPP
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/PPP/pppClient.cpp
r8956 r8961 220 220 satObs->setPseudoObsIono(t_frequency::G1, stecRef); 221 221 } 222 satObs->printObsMinusComputed();223 222 it++; 224 223 } 225 224 } 226 225 if (_opt->_pseudoObsTropo) { 226 vector<t_pppSatObs*>::iterator it = obsVector.begin(); 227 while (it != obsVector.end()) { 228 t_pppSatObs* satObs = *it; 229 if (satObs->isReference()) { 230 satObs->setPseudoObsTropo(); 231 } 232 it++; 233 } 234 } 235 /* 236 vector<t_pppSatObs*>::iterator it = obsVector.begin(); 237 while (it != obsVector.end()) { 238 t_pppSatObs* satObs = *it; 239 satObs->printObsMinusComputed(); 240 it++; 241 } 242 */ 227 243 return pseudoObsIono; 228 244 } -
trunk/BNC/src/PPP/pppFilter.cpp
r8956 r8961 117 117 // Init Datum Trafo 118 118 // ---------------------------------------- 119 if ((OPT->_obsModelType == OPT->DCMcodeBias || 120 OPT->_obsModelType == OPT->DCMphaseBias) && 121 (_numEpoProcessing == 1)) { 119 if ((OPT->_obsModelType == OPT->DCMcodeBias || 120 OPT->_obsModelType == OPT->DCMphaseBias) && (_numEpoProcessing == 1)) { 122 121 _numAllUsedLCs = 0; 123 122 for (unsigned iSys = 0; iSys < OPT->systems().size(); iSys++) { 124 123 char system = OPT->systems()[iSys]; 125 124 _numAllUsedLCs += OPT->LCs(system).size(); 126 if (OPT->_pseudoObsIono && !epoch->pseudoObsIono()) {125 if (OPT->_pseudoObsIono && epoch->pseudoObsIono() == false) { 127 126 _numAllUsedLCs -= 1; // GIM not used 128 127 } 129 128 } 130 int maxObs = allObs.size() * _numAllUsedLCs; 129 int modify = 0; 130 if (OPT->_pseudoObsTropo) { 131 modify = -1; 132 } 133 // max Obs 134 int maxObs = allObs.size() * (_numAllUsedLCs + modify); 135 if (OPT->_pseudoObsIono && epoch->pseudoObsIono() == true) { // stecDiff w.r.t refSat 136 maxObs -= 1; 137 } 138 if (OPT->_pseudoObsTropo) { 139 maxObs += 1; // once per station 140 } 131 141 _datumTrafo->initAA(maxObs, _parlist->nPar()); 132 142 } … … 144 154 _refPrn = (_obsPool->getRefSatMapElement(system))->prn(); 145 155 if (_obsPool->hasHistoricalRefSat(_refPrn)) { 156 LOG << epoTimeStr << " Warning: prevent to process erroneous refSat again!"; 146 157 return failure; 147 158 } … … 219 230 } 220 231 221 unsigned usedLCs = LCs.size(); //qDebug() << "usedLCs: " << usedLCs;232 unsigned usedLCs = LCs.size(); 222 233 if (OPT->_pseudoObsIono && !pseudoObsIonoAvailable) { 223 234 usedLCs -= 1; // GIM not used 224 235 } 236 225 237 ColumnVector xSav = _xFlt; 226 238 SymmetricMatrix QSav = _QFlt; 227 239 string epoTimeStr = string(_epoTime); 228 240 const vector<t_pppParam*>& params = _parlist->params(); 229 unsigned maxObs = obsVector.size() * usedLCs; 230 //unsigned maxObs = 2 * usedLCs; 231 241 int modify = 0; 242 if (OPT->_pseudoObsTropo) { 243 modify = -1; 244 } 245 // max Obs 246 unsigned maxObs = obsVector.size() * (usedLCs + modify); 232 247 if (OPT->_pseudoObsIono && pseudoObsIonoAvailable) { // stecDiff w.r.t refSat 233 248 maxObs -= 1; 249 } 250 if (OPT->_pseudoObsTropo) { 251 maxObs +=1; // tropo pseudo obs once per station 234 252 } 235 253 … … 257 275 for (unsigned jj = 0; jj < usedLCs; jj++) { 258 276 const t_lc::type tLC = LCs[jj]; 259 if (tLC == t_lc::GIM && obs->isReference()) {continue;} 277 if (tLC == t_lc::GIM && obs->isReference()) {continue;} 278 if (tLC == t_lc::Tz0 && ii+1 != obsVector.size()) {continue;} 260 279 ++iObs; 261 280 usedObs.push_back(obs); … … 417 436 _slips[obs->prn()]._obsSlipCounter = obs->slipCounter(); 418 437 } 419 420 438 if (_slips[obs->prn()]._biasJumpCounter != -1 && 421 439 _slips[obs->prn()]._biasJumpCounter != obs->biasJumpCounter()) { … … 468 486 t_irc t_pppFilter::resetAmb(t_prn prn, const vector<t_pppSatObs*>& obsVector, 469 487 SymmetricMatrix* QSav, ColumnVector* xSav) { 470 488 471 489 t_irc irc = failure; 472 490 vector<t_pppParam*>& params = _parlist->params(); … … 587 605 //////////////////////////////////////////////////////////////////////////// 588 606 void t_pppFilter::datumTransformation(const ColumnVector& xFltOld, const SymmetricMatrix& QFltOld) { 589 590 607 Matrix D21 = _datumTrafo->computeTrafoMatrix(); 591 608 _QFlt << D21 * QFltOld * D21.t(); -
trunk/BNC/src/PPP/pppParlist.cpp
r8956 r8961 141 141 switch (_type) { 142 142 case crdX: 143 if (tLC == t_lc::GIM) {return 0.0;} 143 if (tLC == t_lc::GIM || tLC == t_lc::Tz0) {return 0.0;} 144 144 return (sta->xyzApr()[0] - obs->xc()[0]) / rhoV.NormFrobenius(); 145 145 case crdY: 146 if (tLC == t_lc::GIM) {return 0.0;} 146 if (tLC == t_lc::GIM || tLC == t_lc::Tz0) {return 0.0;} 147 147 return (sta->xyzApr()[1] - obs->xc()[1]) / rhoV.NormFrobenius(); 148 148 case crdZ: 149 if (tLC == t_lc::GIM) {return 0.0;} 149 if (tLC == t_lc::GIM || tLC == t_lc::Tz0) {return 0.0;} 150 150 return (sta->xyzApr()[2] - obs->xc()[2]) / rhoV.NormFrobenius(); 151 151 case clkR: 152 if (tLC == t_lc::GIM) {return 0.0;} 152 if (tLC == t_lc::GIM || tLC == t_lc::Tz0) {return 0.0;} 153 153 return 1.0; 154 154 case offGG: 155 if (tLC == t_lc::GIM) {return 0.0;} 155 if (tLC == t_lc::GIM || tLC == t_lc::Tz0) {return 0.0;} 156 156 return (obs->prn().system() == 'R') ? 1.0 : 0.0; 157 157 case amb: 158 if (tLC == t_lc::GIM) {return 0.0;} 158 if (tLC == t_lc::GIM || tLC == t_lc::Tz0) {return 0.0;} 159 159 else if ((OPT->_obsModelType == OPT->IF) || 160 160 (OPT->_obsModelType == OPT->PPPRTK) || … … 181 181 break; 182 182 case trp: 183 if (tLC == t_lc::GIM) {return 0.0;} 184 return 1.0 / sin(obs->eleSat()); 183 if (tLC == t_lc::GIM) { 184 return 0.0; 185 } 186 else if (tLC == t_lc::Tz0) { 187 return 1.0; 188 } 189 else { 190 return 1.0 / sin(obs->eleSat()); 191 } 185 192 case ion: 186 187 193 if (obs->prn() == _prn) { 188 194 if (tLC == t_lc::c1) { … … 203 209 } 204 210 if (tLC == t_lc::GIM && _prn == refPrn) { 205 return 211 return 1.0; 206 212 } 207 213 break; 208 214 case cBias1: 209 215 if (tLC == t_lc::c1) { 210 return 216 return 1.0; 211 217 } 212 218 else { … … 216 222 case cBias2: 217 223 if (tLC == t_lc::c2) { 218 return 224 return 1.0; 219 225 } 220 226 else { … … 224 230 case pBias1: 225 231 if (tLC == t_lc::l1) { 226 return 232 return 1.0; 227 233 } 228 234 else { … … 232 238 case pBias2: 233 239 if (tLC == t_lc::l2) { 234 return 240 return 1.0; 235 241 } 236 242 else { -
trunk/BNC/src/PPP/pppSatObs.cpp
r8956 r8961 92 92 for (unsigned ii = 0; ii < OPT->LCs(_prn.system()).size(); ii++) { 93 93 t_lc::type tLC = OPT->LCs(_prn.system())[ii]; 94 if (tLC == t_lc::GIM) {continue;} 94 if (tLC == t_lc::GIM || tLC == t_lc::Tz0) {continue;} 95 95 if (!isValid(tLC)) { 96 96 _valid = false; … … 190 190 return; 191 191 case t_lc::GIM: 192 case t_lc::Tz0: 192 193 case t_lc::dummy: 193 194 case t_lc::maxLc: … … 218 219 } 219 220 else { 220 return _stecRefSat - _stecSat; 221 } 221 return _stecRefSat; 222 } 223 } 224 225 if (tLC == t_lc::Tz0) { 226 return _model._tropo0; 222 227 } 223 228 … … 292 297 if (tLC == t_lc::GIM) { 293 298 retVal = OPT->_sigmaGIMdiff * OPT->_sigmaGIMdiff; 299 } 300 301 if (tLC == t_lc::Tz0) { 302 retVal = OPT->_sigmaTz0 * OPT->_sigmaTz0; 294 303 } 295 304 … … 407 416 // Tropospheric Delay 408 417 // ------------------ 409 _model._tropo = t_tropo::delay_saast(rRec, _model._eleSat); 418 _model._tropo = t_tropo::delay_saast(rRec, _model._eleSat); 419 _model._tropo0 = t_tropo::delay_saast(rRec, M_PI/2.0); 410 420 411 421 // Code Biases … … 570 580 } 571 581 else if (tLC == t_lc::GIM) { 572 cmpValue = 0.0; 582 cmpValue = _stecSat; 583 } 584 else if (tLC == t_lc::Tz0) { 585 cmpValue = _model._tropo0; 573 586 } 574 587 else { … … 633 646 _stecRefSat = stecRefSat; 634 647 } 648 649 650 // 651 //////////////////////////////////////////////////////////////////////////// 652 void t_pppSatObs::setPseudoObsTropo() {qDebug() << "setPseudoObsTropo"; 653 _tropo0 = _model._tropo0; 654 } -
trunk/BNC/src/PPP/pppSatObs.h
r8905 r8961 46 46 double getRes(t_lc::type tLC) const; 47 47 void setPseudoObsIono(t_frequency::type freq, double stecRefSat); 48 void setPseudoObsTropo(); 48 49 double getIonoCodeDelay(t_frequency::type freq) {return _model._ionoCodeDelay[freq];} 49 50 … … 94 95 _antEcc = 0.0; 95 96 _tropo = 0.0; 97 _tropo0 = 0.0; 96 98 _tideEarth = 0.0; 97 99 _tideOcean = 0.0; … … 114 116 double _antEcc; 115 117 double _tropo; 118 double _tropo0; 116 119 double _tideEarth; 117 120 double _tideOcean; … … 142 145 double _stecRefSat; 143 146 double _stecSat; 147 double _tropo0; 144 148 }; 145 149
Note:
See TracChangeset
for help on using the changeset viewer.