Changeset 9504 in ntrip for trunk/BNC/src/PPP/pppFilter.cpp


Ignore:
Timestamp:
Sep 24, 2021, 2:34:28 PM (3 years ago)
Author:
stuerze
Message:

update regarding PPP

File:
1 edited

Legend:

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

    r9491 r9504  
    3434////////////////////////////////////////////////////////////////////////////
    3535t_pppFilter::t_pppFilter(t_pppObsPool* obsPool) {
    36   _parlist = 0;
    3736  _numSat = 0;
    3837  _obsPool = obsPool;
     
    4443////////////////////////////////////////////////////////////////////////////
    4544t_pppFilter::~t_pppFilter() {
    46   delete _parlist;
    4745  delete _datumTrafo;
    4846}
     
    5351  _numSat     = 0;
    5452  const double maxSolGap = 60.0;
    55 
    56   if (!_parlist) {
    57     _parlist = new t_pppParlist();
    58   }
    5953
    6054  // Vector of all Observations
     
    7872  string epoTimeStr = string(_epoTime);
    7973
     74  if (OPT->_obsModelType == OPT->DCMcodeBias ||
     75      OPT->_obsModelType == OPT->DCMphaseBias) {
     76     // Save parameters of epoch before
     77    _parlist_sav = _parlist;
     78 }
     79
    8080  //--
    8181  // Set Parameters
    82   // --------------
    83   if (_parlist->set(_epoTime, allObs, _obsPool->getRefSatMap()) != success) {
     82  if (_parlist.set(_epoTime, allObs, _obsPool->getRefSatMap()) != success) {
    8483    return failure;
    8584  }
    86   const vector<t_pppParam*>& params = _parlist->params();
     85
     86  const vector<t_pppParam*>& params = _parlist.params();
    8787#ifdef BNC_DEBUG_PPP
    88   for (unsigned iPar = 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;
    9090  }
    9191#endif
     
    9696  SymmetricMatrix QFltOld = _QFlt;
    9797
    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;
    101101
    102102  for (unsigned ii = 0; ii < params.size(); ii++) {
     
    130130      OPT->_obsModelType == OPT->DCMphaseBias) {
    131131    preProcessing = true;
    132     QList<char>& usedSystems = _parlist->usedSystems();
     132    const QList<char>& usedSystems = _parlist.usedSystems();
    133133    for (int iSys = 0; iSys < usedSystems.size(); iSys++) {
    134134      char sys = usedSystems[iSys];
     
    155155      _xFlt = xFltOld;
    156156      _QFlt = QFltOld;
     157      _parlist = _parlist_sav;
    157158      return success;
    158159    }
     
    165166  // ------------------------------------
    166167  preProcessing = false;
    167   QList<char>& usedSystems = _parlist-> usedSystems();
     168  const QList<char>& usedSystems = _parlist. usedSystems();
    168169  for (int iSys = 0; iSys < usedSystems.size(); iSys++) {
    169170    char sys = usedSystems[iSys];
     
    195196  // ----------------------
    196197  cmpDOP(allObs);
    197   _parlist->printResult(_epoTime, _QFlt, _xFlt);
     198  _parlist.printResult(_epoTime, _QFlt, _xFlt);
    198199  _lastEpoTimeOK = _epoTime;  // remember time of last successful epoch processing
    199200  if (OPT->_refSatRequired) {
    200201    _obsPool->saveLastEpoRefSats();
    201     _datumTrafo->setLastEpoParlist(_parlist);
    202202  }
    203203  return success;
     
    226226  SymmetricMatrix            QSav       = _QFlt;
    227227  string                     epoTimeStr = string(_epoTime);
    228   const vector<t_pppParam*>& params     = _parlist->params();
     228  const vector<t_pppParam*>& params     = _parlist.params();
    229229
    230230  unsigned usedLCs     = LCs.size();
     
    256256    // First-Design Matrix, Terms Observed-Computed, Weight Matrix
    257257    // -----------------------------------------------------------
    258     Matrix                AA(maxObs, _parlist->nPar());
     258    Matrix                AA(maxObs, _parlist.nPar());
    259259    ColumnVector          ll(maxObs);
    260260    DiagonalMatrix        PP(maxObs); PP = 0.0;
     
    318318        (!preProcessing)) {
    319319      _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);
    321321    }
    322322
     
    460460  char sys = refPrn.system();
    461461  string epoTimeStr = string(_epoTime);
    462   const vector<t_pppParam*>& params  = _parlist->params();
     462  const vector<t_pppParam*>& params  = _parlist.params();
    463463
    464464  for (unsigned ii = 0; ii < LCs.size(); ii++) {
     
    542542
    543543  t_irc irc = failure;
    544   vector<t_pppParam*>& params = _parlist->params();
     544  vector<t_pppParam*>& params = _parlist.params();
    545545  for (unsigned iPar = 0; iPar < params.size(); iPar++) {
    546546    t_pppParam* par = params[iPar];
     
    579579
    580580  t_irc irc = failure;
    581   vector<t_pppParam*>& params = _parlist->params();
     581  vector<t_pppParam*>& params = _parlist.params();
    582582  for (unsigned iPar = 0; iPar < params.size(); iPar++) {
    583583    t_pppParam* par = params[iPar];
     
    614614        ++_numSat;
    615615        for (unsigned iPar = 0; iPar < numPar; iPar++) {
    616           const t_pppParam* par = _parlist->params()[iPar];
     616          const t_pppParam* par = _parlist.params()[iPar];
    617617          AA[_numSat-1][iPar] = par->partial(_epoTime, obs, t_lc::c1, refPrn);
    618618        }
     
    640640void t_pppFilter::predictCovCrdPart(const SymmetricMatrix& QFltOld) {
    641641
    642   const vector<t_pppParam*>& params = _parlist->params();
     642  const vector<t_pppParam*>& params = _parlist.params();
    643643  if (params.size() < 3) {
    644644    return;
     
    705705  // set AA2
    706706  // =======
    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) {
    709708    return failure;
    710709  }
    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();
    713712#ifdef BNC_DEBUG_PPP
    714713  LOG << " parameters of last epoch" << endl;
    715714  for (unsigned iPar = 0; iPar < nPar; iPar++) {
    716     LOG << params[iPar]->toString() << "\t\t" << endl;
     715    LOG << _params[iPar]->toString() << "\t\t" << endl;
    717716  }
    718717#endif
    719   QList<char>& usedSystems = _parlist->usedSystems();
     718  const QList<char>& usedSystems = _parlist.usedSystems();
    720719  for (int iSys = 0; iSys < usedSystems.size(); iSys++) {
    721720    char sys = usedSystems[iSys];
     
    760759        if (tLC == t_lc::Tz0) {continue;}
    761760        ++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];
    764763          AA[iObs][iPar] = par->partial(_epoTime, obs, tLC, refPrn);
    765764        }
     
    778777          ++iObs;
    779778          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];
    782781            AA[iObs][iPar] = par->partial(_epoTime, obs, tLC, refPrn);
    783782          }
     
    836835  _datumTrafo->switchAA();
    837836
    838   // save parameter list
    839   // ====================
    840   _datumTrafo->setLastEpoParlist(_parlist);
    841837  return success;
    842838}
     
    847843                                          bool pseudoObsIono) {
    848844  unsigned trafoObs = 0;
    849   QList<char>& usedSystems = _parlist-> usedSystems();
     845  const QList<char>& usedSystems = _parlist. usedSystems();
    850846  for (int iSys = 0; iSys < usedSystems.size(); iSys++) {
    851847    char sys = usedSystems[iSys];
     
    875871  }
    876872  _datumTrafo->setNumObs(trafoObs);
    877   _datumTrafo->setNumPar(_parlist->nPar());
     873  _datumTrafo->setNumPar(_parlist.nPar());
    878874  _datumTrafo->initAA();
    879875}
     
    884880  bool resetRefSat;
    885881  // reference satellite definition per system
    886   QList<char>& usedSystems = _parlist-> usedSystems();
     882  const QList<char>& usedSystems = _parlist.usedSystems();
    887883  for (int iSys = 0; iSys < usedSystems.size(); iSys++) {
    888884    resetRefSat = false;
Note: See TracChangeset for help on using the changeset viewer.