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


Ignore:
Timestamp:
Apr 6, 2020, 10:43:22 AM (4 years ago)
Author:
stuerze
Message:

minor changes regarding PPP (not completed)

File:
1 edited

Legend:

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

    r8910 r8912  
    5151t_irc t_pppFilter::processEpoch(int num) {
    5252  _numSat     = 0;
     53  _numOfEpochProcessing = num;
    5354  const double maxSolGap = 60.0;
    5455
     
    8788  ColumnVector    xFltOld = _xFlt;
    8889  SymmetricMatrix QFltOld = _QFlt;
    89 
    9090  _QFlt.ReSize(_parlist->nPar()); _QFlt = 0.0;
    9191  _xFlt.ReSize(_parlist->nPar()); _xFlt = 0.0;
    9292  _x0.ReSize(_parlist->nPar());   _x0   = 0.0;
    93 
    9493  for (unsigned ii = 0; ii < params.size(); ii++) {
    9594    const t_pppParam* par1 = params[ii];
     
    111110    }
    112111  }
    113 
    114112  predictCovCrdPart(QFltOld);
    115113
     
    141139  // Process Satellite Systems separately
    142140  // ------------------------------------
     141  int numOfAllUsedLCs = 0;
     142  preProcessing = false;
    143143  for (unsigned iSys = 0; iSys < OPT->systems().size(); iSys++) {
    144144    char system = OPT->systems()[iSys];
     145    numOfAllUsedLCs += OPT->LCs(system).size();
    145146    if (OPT->_refSatRequired) {
    146147      _refPrn = (_obsPool->getRefSatMapElement(system))->prn();
     
    160161    }
    161162  }
    162   if (_obsPool->epoReProcessing()) {
    163     // set A1 und A2 abhängig von num
    164     // if num == 1 => A1
    165     // if num >  1 => A2
    166   }
     163
     164  // refSat change required?
     165  // -----------------------
     166  if (_obsPool->refSatChangeRequired()) {
     167    _xFlt = xFltOld;
     168    _QFlt = QFltOld;
     169    initDatumTransformation(numOfAllUsedLCs);
     170  }
     171  // close epoch processing
     172  // ----------------------
    167173  else {
    168174    cmpDOP(allObs);
     
    223229    ColumnVector          ll(maxObs);
    224230    DiagonalMatrix        PP(maxObs); PP = 0.0;
    225     //TETSPLOT
     231
     232    // TETSPLOT
    226233    for (unsigned iPar = 0; iPar < params.size(); iPar++) {
    227234      const t_pppParam* par = params[iPar];
     
    229236    }
    230237    cout << endl;
     238    //END TETSPLOT
    231239
    232240    int iObs = -1;
     
    307315      if      (par && preProcessing) {
    308316        if (par->prn() == refPrn) {
    309           _obsPool->setEpoReProcessing(true);
     317          _obsPool->setRefSatChangeRequired(true);
    310318        }
    311319      }
     
    392400          if (preProcessing) {
    393401            if (obs->prn() == refPrn) {
    394               _obsPool->setEpoReProcessing(true);
     402              _obsPool->setRefSatChangeRequired(true);
    395403            }
    396404          }
     
    412420            if (preProcessing) {
    413421              if (obs->prn() == refPrn) {
    414                 _obsPool->setEpoReProcessing(true);
     422                _obsPool->setRefSatChangeRequired(true);
    415423              }
    416424            }
     
    542550  }
    543551}
     552
     553//
     554////////////////////////////////////////////////////////////////////////////
     555void t_pppFilter::initDatumTransformation(int numOfUsedLCs) {
     556
     557  if (_numOfEpochProcessing == 1) {
     558           _AA1.ReSize(numOfUsedLCs, _parlist->nPar());
     559           _AA1 = 0.0;
     560     _AA2.ReSize(numOfUsedLCs, _parlist->nPar());
     561     _AA2 = 0.0;
     562  }
     563}
     564
     565//
     566////////////////////////////////////////////////////////////////////////////
     567void t_pppFilter::datumTransformation() {
     568
     569  Matrix D21 = (_AA2.t() * _AA2).i() * _AA2.t() * _AA1;
     570
     571  _QFlt = D21 * _QFlt * D21.t();
     572}
     573
     574
     575
     576
Note: See TracChangeset for help on using the changeset viewer.