Changeset 3476 in ntrip


Ignore:
Timestamp:
Oct 14, 2011, 9:11:22 PM (13 years ago)
Author:
mervart
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/combination/bnccomb.cpp

    r3475 r3476  
    734734    ++iObs;
    735735
    736     if (_method == filter) {
    737       if (corr->acName == _masterOrbitAC && resCorr.find(prn) == resCorr.end()) {
    738         resCorr[prn] = new t_corr(*corr);
    739       }
     736    if (corr->acName == _masterOrbitAC && resCorr.find(prn) == resCorr.end()) {
     737      resCorr[prn] = new t_corr(*corr);
    740738    }
    741739
     
    785783                                        ColumnVector& dx) {
    786784
    787   // Initialize resCorr
    788   // ------------------
     785  // Remove Satellites that are not in Master
     786  // ----------------------------------------
     787  QMutableVectorIterator<cmbCorr*> itCorr1(corrs());
     788  while (itCorr1.hasNext()) {
     789    cmbCorr* corr = itCorr1.next();
     790    QString  prn  = corr->prn;
     791    bool foundMaster = false;
     792    QVectorIterator<cmbCorr*> it(corrs());
     793    while (it.hasNext()) {
     794      cmbCorr* corr2 = it.next();
     795      QString  prn2  = corr2->prn;
     796      QString  AC   = corr2->acName;
     797      if (AC == _masterOrbitAC && prn == prn2) {
     798        foundMaster = true;
     799        break;
     800      }
     801    }
     802    if (!foundMaster) {
     803      itCorr1.remove();
     804    }
     805  }
     806
     807  // Count Number of Observations per Satellite and per AC
     808  // -----------------------------------------------------
     809  QMap<QString, int> numObsPrn;
     810  QMap<QString, int> numObsAC;
    789811  QVectorIterator<cmbCorr*> itCorr(corrs());
    790812  while (itCorr.hasNext()) {
    791813    cmbCorr* corr = itCorr.next();
    792814    QString  prn  = corr->prn;
    793     switchToLastEph(_eph[prn]->last, corr);
    794     if (corr->acName == _masterOrbitAC && resCorr.find(prn) == resCorr.end()) {
    795       resCorr[prn] = new t_corr(*corr);
    796     }
    797   }
    798 
    799   // Count Number of Observations per Satellite and per AC
    800   // -----------------------------------------------------
    801   QMap<QString, int> numObsPrn;
    802   QMap<QString, int> numObsAC;
    803   QMapIterator<QString, t_corr*> itRes(resCorr);
    804   while (itRes.hasNext()) {
    805     itRes.next();
    806     const QString& prnRes = itRes.key();
    807     QVectorIterator<cmbCorr*> itCorr(corrs());
    808     while (itCorr.hasNext()) {
    809       cmbCorr* corr = itCorr.next();
    810       QString  prn  = corr->prn;
    811       QString  AC   = corr->acName;
    812       if (prn == prnRes) {
    813         if (numObsPrn.find(prn) == numObsPrn.end()) {
    814           numObsPrn[prn]  = 1;
    815         }
    816         else {
    817           numObsPrn[prn] += 1;
    818         }
    819         if (numObsAC.find(prn) == numObsAC.end()) {
    820           numObsAC[AC]  = 1;
    821         }
    822         else {
    823           numObsAC[AC] += 1;
    824         }
    825       }
     815    QString  AC   = corr->acName;
     816    if (numObsPrn.find(prn) == numObsPrn.end()) {
     817      numObsPrn[prn]  = 1;
     818    }
     819    else {
     820      numObsPrn[prn] += 1;
     821    }
     822    if (numObsAC.find(AC) == numObsAC.end()) {
     823      numObsAC[AC]  = 1;
     824    }
     825    else {
     826      numObsAC[AC] += 1;
    826827    }
    827828  }
     
    843844    const QString& AC     = itAC.key();
    844845    int            numObs = itAC.value();
    845     if (numObs > 0) {
     846    if (AC != _masterOrbitAC && numObs > 0) {
    846847      _params.push_back(new cmbParam(cmbParam::offAC, ++nextPar, AC, ""));
    847848    }
Note: See TracChangeset for help on using the changeset viewer.