Changeset 9504 in ntrip for trunk/BNC/src/PPP/pppFilter.cpp
- Timestamp:
- Sep 24, 2021, 2:34:28 PM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/PPP/pppFilter.cpp
r9491 r9504 34 34 //////////////////////////////////////////////////////////////////////////// 35 35 t_pppFilter::t_pppFilter(t_pppObsPool* obsPool) { 36 _parlist = 0;37 36 _numSat = 0; 38 37 _obsPool = obsPool; … … 44 43 //////////////////////////////////////////////////////////////////////////// 45 44 t_pppFilter::~t_pppFilter() { 46 delete _parlist;47 45 delete _datumTrafo; 48 46 } … … 53 51 _numSat = 0; 54 52 const double maxSolGap = 60.0; 55 56 if (!_parlist) {57 _parlist = new t_pppParlist();58 }59 53 60 54 // Vector of all Observations … … 78 72 string epoTimeStr = string(_epoTime); 79 73 74 if (OPT->_obsModelType == OPT->DCMcodeBias || 75 OPT->_obsModelType == OPT->DCMphaseBias) { 76 // Save parameters of epoch before 77 _parlist_sav = _parlist; 78 } 79 80 80 //-- 81 81 // Set Parameters 82 // -------------- 83 if (_parlist->set(_epoTime, allObs, _obsPool->getRefSatMap()) != success) { 82 if (_parlist.set(_epoTime, allObs, _obsPool->getRefSatMap()) != success) { 84 83 return failure; 85 84 } 86 const vector<t_pppParam*>& params = _parlist->params(); 85 86 const vector<t_pppParam*>& params = _parlist.params(); 87 87 #ifdef BNC_DEBUG_PPP 88 for ( unsignediPar = 0; iPar < params.size(); iPar++) {89 LOG << params[iPar]->toString() << endl;88 for (int iPar = 0; iPar < params.size(); iPar++) { 89 LOG << "available par " << params[iPar]->toString() << endl; 90 90 } 91 91 #endif … … 96 96 SymmetricMatrix QFltOld = _QFlt; 97 97 98 _QFlt.ReSize(_parlist ->nPar()); _QFlt = 0.0;99 _xFlt.ReSize(_parlist ->nPar()); _xFlt = 0.0;100 _x0.ReSize(_parlist ->nPar()); _x0 = 0.0;98 _QFlt.ReSize(_parlist.nPar()); _QFlt = 0.0; 99 _xFlt.ReSize(_parlist.nPar()); _xFlt = 0.0; 100 _x0.ReSize(_parlist.nPar()); _x0 = 0.0; 101 101 102 102 for (unsigned ii = 0; ii < params.size(); ii++) { … … 130 130 OPT->_obsModelType == OPT->DCMphaseBias) { 131 131 preProcessing = true; 132 QList<char>& usedSystems = _parlist->usedSystems();132 const QList<char>& usedSystems = _parlist.usedSystems(); 133 133 for (int iSys = 0; iSys < usedSystems.size(); iSys++) { 134 134 char sys = usedSystems[iSys]; … … 155 155 _xFlt = xFltOld; 156 156 _QFlt = QFltOld; 157 _parlist = _parlist_sav; 157 158 return success; 158 159 } … … 165 166 // ------------------------------------ 166 167 preProcessing = false; 167 QList<char>& usedSystems = _parlist->usedSystems();168 const QList<char>& usedSystems = _parlist. usedSystems(); 168 169 for (int iSys = 0; iSys < usedSystems.size(); iSys++) { 169 170 char sys = usedSystems[iSys]; … … 195 196 // ---------------------- 196 197 cmpDOP(allObs); 197 _parlist ->printResult(_epoTime, _QFlt, _xFlt);198 _parlist.printResult(_epoTime, _QFlt, _xFlt); 198 199 _lastEpoTimeOK = _epoTime; // remember time of last successful epoch processing 199 200 if (OPT->_refSatRequired) { 200 201 _obsPool->saveLastEpoRefSats(); 201 _datumTrafo->setLastEpoParlist(_parlist);202 202 } 203 203 return success; … … 226 226 SymmetricMatrix QSav = _QFlt; 227 227 string epoTimeStr = string(_epoTime); 228 const vector<t_pppParam*>& params = _parlist ->params();228 const vector<t_pppParam*>& params = _parlist.params(); 229 229 230 230 unsigned usedLCs = LCs.size(); … … 256 256 // First-Design Matrix, Terms Observed-Computed, Weight Matrix 257 257 // ----------------------------------------------------------- 258 Matrix AA(maxObs, _parlist ->nPar());258 Matrix AA(maxObs, _parlist.nPar()); 259 259 ColumnVector ll(maxObs); 260 260 DiagonalMatrix PP(maxObs); PP = 0.0; … … 318 318 (!preProcessing)) { 319 319 _datumTrafo->updateIndices(sys, iObs+1); 320 _datumTrafo->prepareAA(AA.SubMatrix(1, iObs+1 , 1, _parlist ->nPar()), 1);320 _datumTrafo->prepareAA(AA.SubMatrix(1, iObs+1 , 1, _parlist.nPar()), 1); 321 321 } 322 322 … … 460 460 char sys = refPrn.system(); 461 461 string epoTimeStr = string(_epoTime); 462 const vector<t_pppParam*>& params = _parlist ->params();462 const vector<t_pppParam*>& params = _parlist.params(); 463 463 464 464 for (unsigned ii = 0; ii < LCs.size(); ii++) { … … 542 542 543 543 t_irc irc = failure; 544 vector<t_pppParam*>& params = _parlist ->params();544 vector<t_pppParam*>& params = _parlist.params(); 545 545 for (unsigned iPar = 0; iPar < params.size(); iPar++) { 546 546 t_pppParam* par = params[iPar]; … … 579 579 580 580 t_irc irc = failure; 581 vector<t_pppParam*>& params = _parlist ->params();581 vector<t_pppParam*>& params = _parlist.params(); 582 582 for (unsigned iPar = 0; iPar < params.size(); iPar++) { 583 583 t_pppParam* par = params[iPar]; … … 614 614 ++_numSat; 615 615 for (unsigned iPar = 0; iPar < numPar; iPar++) { 616 const t_pppParam* par = _parlist ->params()[iPar];616 const t_pppParam* par = _parlist.params()[iPar]; 617 617 AA[_numSat-1][iPar] = par->partial(_epoTime, obs, t_lc::c1, refPrn); 618 618 } … … 640 640 void t_pppFilter::predictCovCrdPart(const SymmetricMatrix& QFltOld) { 641 641 642 const vector<t_pppParam*>& params = _parlist ->params();642 const vector<t_pppParam*>& params = _parlist.params(); 643 643 if (params.size() < 3) { 644 644 return; … … 705 705 // set AA2 706 706 // ======= 707 t_pppParlist* parlist = _datumTrafo->lastEpoParlist(); 708 if (parlist->set(epoch->epoTime(), allObs, _obsPool->getRefSatMap()) != success) { 707 if (_parlist.set(epoch->epoTime(), allObs, _obsPool->getRefSatMap()) != success) { 709 708 return failure; 710 709 } 711 vector<t_pppParam*>& params = parlist->params();712 unsigned nPar = parlist->nPar();710 const vector<t_pppParam*>& _params = _parlist.params(); 711 unsigned nPar = _parlist.nPar(); 713 712 #ifdef BNC_DEBUG_PPP 714 713 LOG << " parameters of last epoch" << endl; 715 714 for (unsigned iPar = 0; iPar < nPar; iPar++) { 716 LOG << params[iPar]->toString() << "\t\t" << endl;715 LOG << _params[iPar]->toString() << "\t\t" << endl; 717 716 } 718 717 #endif 719 QList<char>& usedSystems = _parlist->usedSystems();718 const QList<char>& usedSystems = _parlist.usedSystems(); 720 719 for (int iSys = 0; iSys < usedSystems.size(); iSys++) { 721 720 char sys = usedSystems[iSys]; … … 760 759 if (tLC == t_lc::Tz0) {continue;} 761 760 ++iObs; 762 for (unsigned iPar = 0; iPar < params.size(); iPar++) {763 const t_pppParam* par = params[iPar];761 for (unsigned iPar = 0; iPar < _params.size(); iPar++) { 762 const t_pppParam* par = _params[iPar]; 764 763 AA[iObs][iPar] = par->partial(_epoTime, obs, tLC, refPrn); 765 764 } … … 778 777 ++iObs; 779 778 pseudoObsTropoConsidered = true; 780 for (unsigned iPar = 0; iPar < params.size(); iPar++) {781 const t_pppParam* par = params[iPar];779 for (unsigned iPar = 0; iPar < _params.size(); iPar++) { 780 const t_pppParam* par = _params[iPar]; 782 781 AA[iObs][iPar] = par->partial(_epoTime, obs, tLC, refPrn); 783 782 } … … 836 835 _datumTrafo->switchAA(); 837 836 838 // save parameter list839 // ====================840 _datumTrafo->setLastEpoParlist(_parlist);841 837 return success; 842 838 } … … 847 843 bool pseudoObsIono) { 848 844 unsigned trafoObs = 0; 849 QList<char>& usedSystems = _parlist->usedSystems();845 const QList<char>& usedSystems = _parlist. usedSystems(); 850 846 for (int iSys = 0; iSys < usedSystems.size(); iSys++) { 851 847 char sys = usedSystems[iSys]; … … 875 871 } 876 872 _datumTrafo->setNumObs(trafoObs); 877 _datumTrafo->setNumPar(_parlist ->nPar());873 _datumTrafo->setNumPar(_parlist.nPar()); 878 874 _datumTrafo->initAA(); 879 875 } … … 884 880 bool resetRefSat; 885 881 // reference satellite definition per system 886 QList<char>& usedSystems = _parlist->usedSystems();882 const QList<char>& usedSystems = _parlist.usedSystems(); 887 883 for (int iSys = 0; iSys < usedSystems.size(); iSys++) { 888 884 resetRefSat = false;
Note:
See TracChangeset
for help on using the changeset viewer.