Changeset 3487 in ntrip for trunk/BNC


Ignore:
Timestamp:
Oct 31, 2011, 8:29:43 AM (13 years ago)
Author:
mervart
Message:
 
Location:
trunk/BNC/combination
Files:
2 edited

Legend:

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

    r3486 r3487  
    4444using namespace std;
    4545
    46 // Auxiliary Class for Single-Differences
    47 ////////////////////////////////////////////////////////////////////////////
    48 class t_sDiff {
    49  public:
    50   QMap<QString, double> diff;
    51 };
    52 
    5346// Constructor
    5447////////////////////////////////////////////////////////////////////////////
     
    546539  }
    547540
    548   SymmetricMatrix QQ_sav = _QQ;
     541  // Check Satellite Positions for Outliers
     542  // --------------------------------------
     543  if (checkOrbits() != success) {
     544    return failure;
     545  }
    549546
    550547  // Update and outlier detection loop
    551548  // ---------------------------------
     549  SymmetricMatrix QQ_sav = _QQ;
    552550  while (true) {
    553551
     
    782780    cmbCorr* corr = itCorr.next();
    783781    QString  prn  = corr->prn;
    784     switchToLastEph(_eph[prn]->last, corr);
     782
    785783    ++iObs;
    786784
     
    848846                                        QMap<QString, t_corr*>& resCorr,
    849847                                        ColumnVector& dx) {
     848
     849  // Check Satellite Positions for Outliers
     850  // --------------------------------------
     851  if (checkOrbits() != success) {
     852    return failure;
     853  }
    850854
    851855  // Outlier Detection Loop
     
    991995  return failure;
    992996}
     997
     998// Check Satellite Positions for Outliers
     999////////////////////////////////////////////////////////////////////////////
     1000t_irc bncComb::checkOrbits() {
     1001
     1002  // Compute Mean Corrections for all Satellites
     1003  // -------------------------------------------
     1004  QMap<QString, ColumnVector> meanRao;
     1005  QVectorIterator<cmbCorr*> itCorr(corrs());
     1006  while (itCorr.hasNext()) {
     1007    cmbCorr* corr = itCorr.next();
     1008    QString  prn  = corr->prn;
     1009    if (meanRao.find(prn) == meanRao.end()) {
     1010      meanRao[prn].ReSize(4);
     1011      meanRao[prn].Rows(1,3) = corr->rao;
     1012      meanRao[prn](4)        = 1;
     1013    }
     1014    else {
     1015      meanRao[prn].Rows(1,3) += corr->rao;
     1016      meanRao[prn](4)        += 1;
     1017    }
     1018    switchToLastEph(_eph[prn]->last, corr);
     1019  }
     1020
     1021  QMutableVectorIterator<cmbCorr*> it(corrs());
     1022  while (it.hasNext()) {
     1023    cmbCorr* corr = it.next();
     1024    QString  prn  = corr->prn;
     1025    if (meanRao[prn](4) != 0) {
     1026      meanRao[prn] /= meanRao[prn](4);
     1027      meanRao[prn](4) = 0;
     1028    }
     1029    ColumnVector dRao = corr->rao - meanRao[prn].Rows(1,3);
     1030  }
     1031
     1032
     1033  return success;
     1034}
  • trunk/BNC/combination/bnccomb.h

    r3485 r3487  
    8787  void printResults(QTextStream& out, const QMap<QString, t_corr*>& resCorr);
    8888  void switchToLastEph(const t_eph* lastEph, t_corr* corr);
     89  t_irc checkOrbits();
    8990
    9091  QVector<cmbCorr*>& corrs() {return _buffer[_resTime].corrs;}
Note: See TracChangeset for help on using the changeset viewer.