Changeset 10248 in ntrip for trunk


Ignore:
Timestamp:
Nov 8, 2023, 4:46:27 PM (6 months ago)
Author:
stuerze
Message:

try to adjust iono noise in case of cycle slip

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

Legend:

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

    r10232 r10248  
    268268      if (par) {
    269269//        if (par->ambResetCandidate()) {
    270           resetAmb(par->prn(), obsVector, maxOutlierLC, &QSav, &xSav);
     270          resetAmb(obs->prn(), obsVector, maxOutlierLC, &QSav, &xSav);
     271          adjustNoise(t_pppParam::ion, obs->prn(), 0.1, &QSav);
    271272//        }
    272273//        else {
     
    343344        if (slip) {
    344345          resetAmb(obs->prn(), obsVector, tLC);
     346          adjustNoise(t_pppParam::ion, obs->prn(), 0.1);
    345347        }
    346348
     
    361363                << obs->prn().toString() << ' ' << setw(8) << setprecision(4) << vv << endl;
    362364            resetAmb(obs->prn(), obsVector, tLC);
     365            adjustNoise(t_pppParam::ion, obs->prn(), 0.1);
    363366          }
    364367        }
     
    372375// Reset Ambiguity Parameter (cycle slip)
    373376////////////////////////////////////////////////////////////////////////////
    374 t_irc t_pppFilter::resetAmb(t_prn prn, const vector<t_pppSatObs*> &obsVector,
    375     t_lc::type lc, SymmetricMatrix *QSav, ColumnVector *xSav) {
     377t_irc t_pppFilter::resetAmb(const t_prn prn, const vector<t_pppSatObs*> &obsVector, t_lc::type lc,
     378                            SymmetricMatrix *QSav, ColumnVector *xSav) {
    376379
    377380  t_irc irc = failure;
     
    381384    if (par->type() == t_pppParam::amb && par->prn() == prn) {
    382385      int ind = par->indexNew();
     386      double eleSat = par->ambEleSat();
    383387      bncTime firstObsTime;
    384388      bncTime lastObsTime = par->lastObsTime();
     
    396400      par->setFirstObsTime(firstObsTime);
    397401      par->setLastObsTime(lastObsTime);
     402      par->setAmbEleSat(eleSat);
    398403      params[iPar] = par;
    399404      for (unsigned ii = 1; ii <= params.size(); ii++) {
     
    412417      }
    413418      _x0[ind] = par->x0();
    414       irc = success;
     419      return success;
    415420    }
    416421  }
     
    419424}
    420425
    421 // Add noise to individual parameter
    422 ////////////////////////////////////////////////////////////////////////////
    423 t_irc t_pppFilter::addNoiseToPar(t_pppParam::e_type parType, t_prn prn, double noise) {
     426// Adjust process noise of individual parameters
     427////////////////////////////////////////////////////////////////////////////
     428t_irc t_pppFilter::adjustNoise(t_pppParam::e_type parType, t_prn prn, double noise,
     429                               SymmetricMatrix *QSav) {
     430
    424431  t_irc irc = failure;
    425   vector<t_pppParam*> &params = _parlist->params();
     432  vector<t_pppParam*>& params = _parlist->params();
    426433  for (unsigned iPar = 0; iPar < params.size(); iPar++) {
    427434    t_pppParam *par = params[iPar];
    428435    if (par->type() == parType && par->prn() == prn) {
    429436      int ind = par->indexNew();
    430       LOG << string(_epoTime) << " ADD NOISE TO " << par->toString() << endl;
    431       par->setIndex(ind);
     437      //LOG << string(_epoTime) << " ADJUSTNOISE " << par->toString() << endl;
     438      for (unsigned ii = 1; ii <= params.size(); ii++) {
     439        _QFlt(ii, ind + 1) = 0.0;
     440        if (QSav) {
     441          (*QSav)(ii, ind + 1) = 0.0;
     442        }
     443      }
    432444      _QFlt(ind + 1, ind + 1) = noise * noise;
     445      if (QSav) {
     446        (*QSav)(ind + 1, ind + 1) = _QFlt(ind + 1, ind + 1);
     447      }
    433448      irc = success;
    434449    }
  • trunk/BNC/src/PPP/pppFilter.h

    r10168 r10248  
    8383                 SymmetricMatrix* QSav = 0, ColumnVector* xSav = 0);
    8484
    85   t_irc addNoiseToPar(t_pppParam::e_type parType, t_prn prn, double noise);
     85  t_irc adjustNoise(t_pppParam::e_type parType, t_prn prn, double noise,
     86                         SymmetricMatrix* QSav = 0);
    8687
    8788  void cmpDOP(const std::vector<t_pppSatObs*>& obsVector);
Note: See TracChangeset for help on using the changeset viewer.