Changeset 10008 in ntrip
- Timestamp:
- Mar 16, 2023, 5:25:56 PM (2 years ago)
- Location:
- trunk/BNC/src/PPP
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/PPP/pppFilter.cpp
r10003 r10008 342 342 for (unsigned iPar = 0; iPar < nPar; iPar++) { 343 343 t_pppParam *hlp = params[iPar]; 344 if (hlp->type() == t_pppParam::amb && hlp->prn() == obs->prn() 345 && hlp->tLC() == usedTypes[maxOutlierIndex]) { 344 if (hlp->type() == t_pppParam::amb && 345 hlp->prn() == obs->prn() && 346 hlp->tLC() == usedTypes[maxOutlierIndex]) { 346 347 par = hlp; 347 348 } … … 355 356 << ' ' << setw(8) << setprecision(4) << maxOutlier << endl; 356 357 break; 357 } //else {obs->setOutlier(); 358 } //else {obs->setOutlier();} 358 359 } else { // fin-processing 359 360 LOG << epoTimeStr << " Outlier " << t_lc::toString(maxOutlierLC) << ' ' … … 364 365 OPT->_obsModelType == OPT->DCMcodeBias || 365 366 OPT->_obsModelType == OPT->DCMphaseBias) { 366 resetAmb(par->prn(), obsVector, &QSav, &xSav);367 resetAmb(par->prn(), obsVector, maxOutlierLC, &QSav, &xSav); 367 368 } 368 369 else { … … 456 457 _obsPool->setRefSatChangeRequired(sys, true); 457 458 } else { 458 resetAmb(obs->prn(), obsVector );459 resetAmb(obs->prn(), obsVector, tLC); 459 460 } 460 461 } … … 477 478 _obsPool->setRefSatChangeRequired(sys, true); 478 479 } else { 479 resetAmb(obs->prn(), obsVector );480 resetAmb(obs->prn(), obsVector, tLC); 480 481 } 481 482 } … … 490 491 //////////////////////////////////////////////////////////////////////////// 491 492 t_irc t_pppFilter::resetAmb(t_prn prn, const vector<t_pppSatObs*> &obsVector, 492 SymmetricMatrix *QSav, ColumnVector *xSav) {493 t_lc::type lc, SymmetricMatrix *QSav, ColumnVector *xSav) { 493 494 494 495 t_irc irc = failure; … … 499 500 int ind = par->indexNew(); 500 501 t_lc::type tLC = par->tLC(); 502 if (tLC != lc) {continue;} 501 503 LOG << string(_epoTime) << " RESET " << par->toString() << endl; 502 504 delete par; … … 688 690 // reset old and set new refSats in last epoch (ambiguities/GIM) 689 691 // ============================================================= 690 if (resetRefSatellitesLastEpoch(allObs, refSatMap, refSatMapLastEpoch) 691 != true) { 692 LOG << "datumTransformation: resetRefSatellitesLastEpoch != success" 693 << endl; 692 if (resetRefSatellitesLastEpoch(allObs, refSatMap, refSatMapLastEpoch) != true) { 693 LOG << "datumTransformation: resetRefSatellitesLastEpoch != success" << endl; 694 694 return failure; 695 695 } … … 767 767 LOG << "AA.SubMatrix(1 .. " << iObs+1 << " , 1 .. " << nPar << ")" << endl; 768 768 #endif 769 if (_datumTrafo->prepareAA(AA.SubMatrix(1, iObs + 1, 1, nPar), 2) 770 != success) { 769 if (_datumTrafo->prepareAA(AA.SubMatrix(1, iObs + 1, 1, nPar), 2) != success) { 771 770 return failure; 772 771 } … … 776 775 // Datum Transformation 777 776 // ==================== 778 #ifdef BNC_DEBUG_PPP779 //LOG << "AA1\n"; _datumTrafo->printMatrix(_datumTrafo->AA1(), _datumTrafo->numObs(), _datumTrafo->numPar());780 //LOG << "AA2\n"; _datumTrafo->printMatrix(_datumTrafo->AA2(), _datumTrafo->numObs(), _datumTrafo->numPar());781 #endif782 777 if (_datumTrafo->computeTrafoMatrix() != success) { 783 778 return failure; 784 779 } 785 #ifdef BNC_DEBUG_PPP 786 //LOG << "D21" << endl; _datumTrafo->printMatrix(_datumTrafo->D21(), _datumTrafo->numObs(), _datumTrafo->numPar()); 787 #endif 780 788 781 ColumnVector xFltOld = _xFlt; 789 782 SymmetricMatrix QFltOld = _QFlt; … … 801 794 for (int iSys = 0; iSys < usedSystems.size(); iSys++) { 802 795 char sys = usedSystems[iSys]; 796 vector<t_lc::type> LCs = OPT->LCs(sys); 797 unsigned usedLCs = LCs.size(); 798 if (OPT->_pseudoObsIono && !pseudoObsIono) { 799 usedLCs -= 1; // GIM not used 800 } 803 801 t_prn refPrnOld = refSatMapLastEpoch[sys]->prn(); 804 802 t_prn refPrnNew = refSatMap[sys]->prn(); 805 803 if (refPrnNew != refPrnOld) { 806 resetAmb(refPrnOld, allObs);/* 807 if (resetAmb(refPrnOld, allObs) == success) { 808 if (OPT->_obsModelType == OPT->DCMcodeBias) { 809 addNoiseToPar(t_pppParam::ion, sys); 810 } else if (OPT->_obsModelType == OPT->DCMphaseBias) { 811 if (sys == 'G') { 812 addNoiseToPar(t_pppParam::pBiasG1, sys); 813 addNoiseToPar(t_pppParam::pBiasG2, sys); 814 } else if (sys == 'R') { 815 addNoiseToPar(t_pppParam::pBiasR1, sys); 816 addNoiseToPar(t_pppParam::pBiasR2, sys); 817 } else if (sys == 'E') { 818 addNoiseToPar(t_pppParam::pBiasE1, sys); 819 addNoiseToPar(t_pppParam::pBiasE2, sys); 820 } else if (sys == 'C') { 821 addNoiseToPar(t_pppParam::pBiasC1, sys); 822 addNoiseToPar(t_pppParam::pBiasC2, sys); 823 } 824 } 825 }*/ 804 for (unsigned jj = 0; jj < usedLCs; jj++) { 805 const t_lc::type tLC = LCs[jj]; 806 if (tLC == t_lc::GIM) { 807 continue; 808 } 809 resetAmb(refPrnOld, allObs, tLC); 810 } 826 811 } 827 812 } -
trunk/BNC/src/PPP/pppFilter.h
r10006 r10008 200 200 bool preProcessing); 201 201 202 t_irc resetAmb(t_prn prn, const std::vector<t_pppSatObs*>& obsVector, 202 t_irc resetAmb(t_prn prn, const std::vector<t_pppSatObs*>& obsVector, t_lc::type lc, 203 203 SymmetricMatrix* QSav = 0, ColumnVector* xSav = 0); 204 204
Note:
See TracChangeset
for help on using the changeset viewer.