Changeset 9527 in ntrip for trunk/BNC/src/PPP


Ignore:
Timestamp:
Nov 2, 2021, 5:00:00 PM (3 years ago)
Author:
stuerze
Message:

update regarding PPP

Location:
trunk/BNC/src/PPP
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/PPP/pppClient.cpp

    r9508 r9527  
    617617        else {
    618618          LOG << "t_pppFilter::datumTransformation() == success" << endl;
     619          _filter->rememberState(1);
    619620        }
    620621      }
     
    648649        if (_obsPool->refSatChanged()) {
    649650          LOG << "t_pppFilter: refSatChanged()" << endl;
    650             epochReProcessing = true;
    651             continue;
     651          epochReProcessing = true;
     652          continue;
    652653        }
    653654      }
     
    682683        epochReProcessing = true;
    683684        _obsPool->deleteLastEpoch();
     685        _filter->restoreState(0);
    684686        setHistoricalRefSats();
    685687      }
    686688      else {
    687689        epochReProcessing = false;
     690        _filter->rememberState(0);
    688691      }
    689692
     
    879882  t_pppObsPool::t_epoch* epoch = _obsPool->lastEpoch();
    880883  const QMap<char, t_pppRefSat*>& refSatMapLastEpoch = epoch->refSatMap();
    881  
     884
    882885  QMapIterator<char, t_pppRefSat*> it(_refSatMap);
    883886  while (it.hasNext()) {
  • trunk/BNC/src/PPP/pppFilter.cpp

    r9526 r9527  
    7373
    7474  const QMap<char, t_pppRefSat*>& refSatMap = epoch->refSatMap();
    75 
    76   if (OPT->_obsModelType == OPT->DCMcodeBias ||
    77       OPT->_obsModelType == OPT->DCMphaseBias) {
    78     rememberState();
    79   }
    80 
    8175  //--
    8276  // Set Parameters
     
    8579  }
    8680
     81  if (OPT->_obsModelType == OPT->DCMcodeBias ||
     82      OPT->_obsModelType == OPT->DCMphaseBias) {
    8783#ifdef BNC_DEBUG_PPP
    88   _parlist.printParams();
     84  LOG << "processEpoch: printParams after set" << endl;
     85  _parlist.printParams(_epoTime);
    8986#endif
    90 
     87  }
    9188  // Status Vector, Variance-Covariance Matrix
    9289  // -----------------------------------------
     
    9491  SymmetricMatrix QFltOld = _QFlt;
    9592  setStateVectorAndVarCovMatrix(xFltOld, QFltOld);
    96 
    9793
    9894  // Pre-Process Satellite Systems separately
     
    122118        _xFlt = xFltOld;
    123119        _QFlt = QFltOld;
     120        restoreState(2);
    124121        return failure;
    125122      }
     
    130127      _xFlt = xFltOld;
    131128      _QFlt = QFltOld;
    132       restoreState();
    133129      return success;
    134130    }
     
    709705  // =============================================================
    710706  if (resetRefSatellitesLastEpoch(allObs, refSatMap, refSatMapLastEpoch) != true) {
    711     LOG  << "refsatChange required" << endl;
     707    LOG  << "datumTransformation: refsatChange required" << endl;
    712708    return success;
    713709  }
     
    724720
    725721#ifdef BNC_DEBUG_PPP
    726   _parlist.printParams();
     722  LOG << "datumTransformation: printParams after set" << endl;
     723  _parlist.printParams(_epoTime);
    727724#endif
    728725
     
    812809  // ====================
    813810#ifdef BNC_DEBUG_PPP
    814       LOG << "AA1\n"; _datumTrafo->printMatrix(_datumTrafo->AA1(), _datumTrafo->numObs(), _datumTrafo->numPar());
    815       LOG << "AA2\n"; _datumTrafo->printMatrix(_datumTrafo->AA2(), _datumTrafo->numObs(), _datumTrafo->numPar());
     811      //LOG << "AA1\n"; _datumTrafo->printMatrix(_datumTrafo->AA1(), _datumTrafo->numObs(), _datumTrafo->numPar());
     812      //LOG << "AA2\n"; _datumTrafo->printMatrix(_datumTrafo->AA2(), _datumTrafo->numObs(), _datumTrafo->numPar());
    816813#endif
    817814  if(_datumTrafo->computeTrafoMatrix() != success) {
     
    828825
    829826#ifdef BNC_DEBUG_PPP
    830   LOG << "xFltOld:\n" << xFltOld << endl;
    831   LOG << "xFlt   :\n" << _xFlt   << endl;
     827  //LOG << "xFltOld:\n" << xFltOld << endl;
     828  //LOG << "xFlt   :\n" << _xFlt   << endl;
    832829#endif
    833830
     
    853850
    854851  _obsPool->putEpoch(_epoTime, allObs, peseudoObsIono, refSatMap);
    855 
    856   rememberState();
    857852
    858853  return success;
  • trunk/BNC/src/PPP/pppFilter.h

    r9526 r9527  
    2929  void initDatumTransformation(const std::vector<t_pppSatObs*>& allObs, bool pseudoObsIono);
    3030  unsigned setTrafoObs();
    31   void restoreState()  {    LOG << "restore parameter from last epoch: _parlist = _parlist_old" << endl;
     31  void restoreState(int num)  {    LOG << "Restore parameter from last epoch    : _parlist = _parlist_sav ("<<  num << ")\n";
    3232    _QFlt    = _QFlt_sav;
    3333    _parlist = _parlist_sav;
    3434  }
    35   void rememberState() {    LOG << "Remember parameters from epoch before: _parlist_old = _parlist" << endl;
     35  void rememberState(int num) {    LOG << "Remember parameters from epoch before: _parlist_sav = _parlist ("<<  num << ")\n";
    3636    _QFlt_sav    = _QFlt;
    3737    _parlist_sav = _parlist;
     
    128128      _D21.ReSize(_numPar, _numPar); _D21 = 0.0;
    129129    }
    130     t_irc prepareAA(const Matrix& AA, int ind) {
     130    t_irc prepareAA(const Matrix& AA, int ind) {//LOG << "prepare AA" << ind << "\n";
    131131      Matrix* Prep = &_AA2;
    132132      if (ind == 1) {
  • trunk/BNC/src/PPP/pppParlist.cpp

    r9526 r9527  
    452452        char sys = par->prn().system();
    453453        t_prn refPrn = (refSatMap[sys])->prn();
    454         if (par->lastObsTime().valid() &&
    455             ((epoTime - par->lastObsTime() > 1.0) || (par->prn() == refPrn))) {
     454        if (par->lastObsTime().valid() && par->prn() == refPrn) {
    456455            remove = true;
    457456        }
     
    465464
    466465    else if (par->type() == t_pppParam::ion) {
    467       if (OPT->_obsModelType == OPT->DCMcodeBias ||
    468           OPT->_obsModelType == OPT->DCMphaseBias) {
    469         if (par->lastObsTime().valid() && (epoTime - par->lastObsTime() > 1.0)) {
    470             remove = true;
    471         }
    472       }
    473       else {
    474         if (par->lastObsTime().valid() && (epoTime - par->lastObsTime() > 60.0)) {
    475             remove = true;
    476         }
     466      if (par->lastObsTime().valid() && (epoTime - par->lastObsTime() > 60.0)) {
     467          remove = true;
    477468      }
    478469    }
    479470    if (remove) {
    480471#ifdef BNC_DEBUG_PPP
    481       LOG << "remove " << par->toString() << std::endl;
     472      LOG << "remove0 " << par->toString() << std::endl;
    482473#endif
    483474      delete par;
     
    513504  }
    514505
    515   // Check if ambiguity parameters have observations
    516   // -----------------------------------------------
     506
    517507  if (OPT->_obsModelType == OPT->DCMcodeBias ||
    518508      OPT->_obsModelType == OPT->DCMphaseBias) {
     509    // Check if ambiguity parameters have observations
     510    // -----------------------------------------------
    519511    vector<t_pppParam*>::iterator it = _params.begin();
     512    QList<t_prn> lostSats;
    520513    while (it != _params.end()) {
    521514      t_pppParam* par = *it;
    522       bool remove = false;
    523       if (par->type() == t_pppParam::amb && !par->lastObsTime().valid()) {
    524         remove = true;
    525       }
    526       if (remove) {
     515      if ((par->type() == t_pppParam::amb) &&
     516          (!par->lastObsTime().valid() || epoTime - par->lastObsTime() == 1.0)) {
    527517#ifdef BNC_DEBUG_PPP
    528         LOG << "remove " << par->toString() << std::endl;
     518        LOG << "remove1 " << par->toString() << std::endl;
    529519#endif
     520        lostSats.append(par->prn());
     521        delete par;
     522        it = _params.erase(it);
     523      }
     524      else {
     525        ++it;
     526      }
     527    }
     528    // remove respective iono parameters
     529    // ---------------------------------
     530    it = _params.begin();
     531    while (it != _params.end()) {
     532      t_pppParam* par = *it;
     533      if ((par->type() == t_pppParam::ion) &&
     534          (lostSats.contains(par->prn()) || epoTime - par->lastObsTime() == 1.0)) {
     535    #ifdef BNC_DEBUG_PPP
     536        LOG << "remove1 " << par->toString() << std::endl;
     537    #endif
    530538        delete par;
    531539        it = _params.erase(it);
     
    828836//
    829837////////////////////////////////////////////////////////////////////////////
    830 void t_pppParlist::printParams() {
     838void t_pppParlist::printParams(const bncTime& epoTime) {
    831839
    832840  for (unsigned iPar = 0; iPar < _params.size(); iPar++) {
    833     LOG << "t_pppFilter::processEpoch par_cur " << _params[iPar]->toString()
    834         << "  lastObsTime().valid() " << _params[iPar]->lastObsTime().valid() << endl;
    835   }
    836 }
    837 
     841    LOG << _params[iPar]->toString()
     842        << "\t  lastObsTime().valid() \t" << _params[iPar]->lastObsTime().valid()
     843        << "\t  epoTime - par->lastObsTime() \t" << (epoTime - _params[iPar]->lastObsTime())
     844        << endl;
     845  }
     846}
     847
  • trunk/BNC/src/PPP/pppParlist.h

    r9525 r9527  
    113113  void printResult(const bncTime& epoTime, const SymmetricMatrix& QQ,
    114114                   const ColumnVector& xx) const;
    115   void printParams();
     115  void printParams(const bncTime& epoTime);
    116116
    117117 private:
Note: See TracChangeset for help on using the changeset viewer.