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


Ignore:
Timestamp:
Jun 29, 2020, 10:09:16 AM (4 years ago)
Author:
stuerze
Message:

PPP update: pseudo obs tropo added

File:
1 edited

Legend:

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

    r8956 r8961  
    117117  // Init Datum Trafo
    118118  // ----------------------------------------
    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)) {
    122121    _numAllUsedLCs = 0;
    123122    for (unsigned iSys = 0; iSys < OPT->systems().size(); iSys++) {
    124123      char system = OPT->systems()[iSys];
    125124      _numAllUsedLCs += OPT->LCs(system).size();
    126       if (OPT->_pseudoObsIono && !epoch->pseudoObsIono()) {
     125      if (OPT->_pseudoObsIono && epoch->pseudoObsIono() == false) {
    127126        _numAllUsedLCs -= 1;  // GIM not used
    128127      }
    129128    }
    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    }
    131141    _datumTrafo->initAA(maxObs, _parlist->nPar());
    132142  }
     
    144154        _refPrn = (_obsPool->getRefSatMapElement(system))->prn();
    145155        if (_obsPool->hasHistoricalRefSat(_refPrn)) {
     156          LOG << epoTimeStr << " Warning: prevent to process erroneous refSat again!";
    146157          return failure;
    147158        }
     
    219230  }
    220231
    221   unsigned usedLCs = LCs.size(); //qDebug() << "usedLCs: " << usedLCs;
     232  unsigned usedLCs = LCs.size();
    222233  if (OPT->_pseudoObsIono && !pseudoObsIonoAvailable) {
    223234    usedLCs -= 1;  // GIM not used
    224235  }
     236
    225237  ColumnVector               xSav       = _xFlt;
    226238  SymmetricMatrix            QSav       = _QFlt;
    227239  string                     epoTimeStr = string(_epoTime);
    228240  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);
    232247  if (OPT->_pseudoObsIono && pseudoObsIonoAvailable) { // stecDiff w.r.t refSat
    233248    maxObs -= 1;
     249  }
     250  if (OPT->_pseudoObsTropo) {
     251    maxObs +=1;   // tropo pseudo obs once per station
    234252  }
    235253
     
    257275        for (unsigned jj = 0; jj < usedLCs; jj++) {
    258276          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;}
    260279          ++iObs;
    261280          usedObs.push_back(obs);
     
    417436          _slips[obs->prn()]._obsSlipCounter = obs->slipCounter();
    418437        }
    419 
    420438        if (_slips[obs->prn()]._biasJumpCounter != -1 &&
    421439            _slips[obs->prn()]._biasJumpCounter != obs->biasJumpCounter()) {
     
    468486t_irc t_pppFilter::resetAmb(t_prn prn, const vector<t_pppSatObs*>& obsVector,
    469487                            SymmetricMatrix* QSav, ColumnVector* xSav) {
    470 
     488                           
    471489  t_irc irc = failure;
    472490  vector<t_pppParam*>& params = _parlist->params();
     
    587605////////////////////////////////////////////////////////////////////////////
    588606void t_pppFilter::datumTransformation(const ColumnVector& xFltOld, const SymmetricMatrix& QFltOld) {
    589 
    590607  Matrix D21 = _datumTrafo->computeTrafoMatrix();
    591608  _QFlt << D21 * QFltOld * D21.t();
Note: See TracChangeset for help on using the changeset viewer.