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


Ignore:
Timestamp:
Mar 30, 2021, 9:59:17 AM (3 years ago)
Author:
stuerze
Message:

update regarding PPP

File:
1 edited

Legend:

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

    r9386 r9395  
    138138        }
    139139      }
     140      if (!obsVector.size()) {continue;}
    140141      if (processSystem(OPT->LCs(sys), obsVector, _refPrn,
    141142                        epoch->pseudoObsIono(), preProcessing) != success) {
     
    174175      }
    175176    }
     177    if (!num) {continue;}
    176178    LOG << epoTimeStr << " SATNUM " << system << ' ' << right << setw(2) << num << endl;
    177179    if (processSystem(OPT->LCs(system), obsVector, _refPrn,
     
    266268          if (tLC == t_lc::GIM) {continue;}
    267269          if (tLC == t_lc::Tz0) {continue;}
     270          ++iObs;
     271          usedObs.push_back(obs);
     272          usedTypes.push_back(tLC);
     273          for (unsigned iPar = 0; iPar < params.size(); iPar++) {
     274            const t_pppParam* par = params[iPar];
     275            AA[iObs][iPar] = par->partial(_epoTime, obs, tLC, refPrn);
     276          }
     277          ll[iObs] = obs->obsValue(tLC) - obs->cmpValue(tLC) - DotProduct(_x0, AA.Row(iObs+1));
     278          PP[iObs] = 1.0 / (obs->sigma(tLC) * obs->sigma(tLC));
     279        }
     280      }
     281    }
     282
     283    // pseudo Obs Tropo
     284    // ================
     285    if (OPT->_pseudoObsTropo) {
     286      for (unsigned ii = 0; ii < obsVector.size(); ii++) {
     287        t_pppSatObs* obs = obsVector[ii];
     288        if (!obs->isReference()) {continue;}
     289        for (unsigned jj = 0; jj < usedLCs; jj++) {
     290          const t_lc::type tLC = LCs[jj];
     291          if (tLC != t_lc::Tz0) {continue;}
    268292          ++iObs;
    269293          usedObs.push_back(obs);
     
    309333      }
    310334    }
    311     // pseudo Obs Tropo
    312     // ================
    313     if (OPT->_pseudoObsTropo) {
    314       for (unsigned ii = 0; ii < obsVector.size(); ii++) {
    315         t_pppSatObs* obs = obsVector[ii];
    316         if (!obs->isReference()) {continue;}
    317         for (unsigned jj = 0; jj < usedLCs; jj++) {
    318           const t_lc::type tLC = LCs[jj];
    319           if (tLC != t_lc::Tz0) {continue;}
    320           ++iObs;
    321           usedObs.push_back(obs);
    322           usedTypes.push_back(tLC);
    323           for (unsigned iPar = 0; iPar < params.size(); iPar++) {
    324             const t_pppParam* par = params[iPar];
    325             AA[iObs][iPar] = par->partial(_epoTime, obs, tLC, refPrn);
    326           }
    327           ll[iObs] = obs->obsValue(tLC) - obs->cmpValue(tLC) - DotProduct(_x0, AA.Row(iObs+1));
    328           PP[iObs] = 1.0 / (obs->sigma(tLC) * obs->sigma(tLC));
    329         }
    330       }
    331     }
    332335
    333336    // Check number of observations, truncate matrices
     
    561564}
    562565
    563 // Add innfinite noise to iono
     566// Add infinite noise to iono
    564567////////////////////////////////////////////////////////////////////////////
    565568t_irc t_pppFilter::addNoiseToIono(char sys) {
     
    745748      }
    746749    }
     750    // pseudo Obs Tropo
     751    // ================
     752    if (OPT->_pseudoObsTropo) {
     753      for (unsigned ii = 0; ii < obsVector.size(); ii++) {
     754        t_pppSatObs* obs = obsVector[ii];
     755        if (!obs->isReference()) {continue;}
     756        for (unsigned jj = 0; jj < usedLCs; jj++) {
     757          const t_lc::type tLC = LCs[jj];
     758          if (tLC != t_lc::Tz0) {continue;}
     759          ++iObs;
     760          for (unsigned iPar = 0; iPar < params.size(); iPar++) {
     761            const t_pppParam* par = params[iPar];
     762            AA[iObs][iPar] = par->partial(_epoTime, obs, tLC, refPrn);
     763          }
     764        }
     765      }
     766    }
    747767    _datumTrafo->updateIndices(iObs+1);
    748768    _datumTrafo->prepareAA(AA.SubMatrix(1, iObs+1 , 1, _parlist->nPar()), 2);
     
    791811////////////////////////////////////////////////////////////////////////////
    792812void t_pppFilter::initDatumTransformation(const std::vector<t_pppSatObs*>& allObs) {
    793   unsigned realObs = 0;
     813  unsigned trafoObs = 0;
    794814  for (unsigned iSys = 0; iSys < OPT->systems().size(); iSys++) {
    795815    char system = OPT->systems()[iSys];
     
    809829      realUsedLCs -= 1;
    810830    }
    811     realObs += satNum * realUsedLCs;
    812   }
    813   _datumTrafo->setObsNum(realObs);
     831    trafoObs += satNum * realUsedLCs;
     832
     833    if (OPT->_pseudoObsTropo) {
     834      trafoObs += 1;
     835    }
     836
     837  }
     838  _datumTrafo->setObsNum(trafoObs);
    814839  _datumTrafo->setParNum(_parlist->nPar());
    815840  _datumTrafo->initAA();
Note: See TracChangeset for help on using the changeset viewer.