- Timestamp:
- Oct 31, 2011, 8:29:43 AM (13 years ago)
- Location:
- trunk/BNC/combination
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/combination/bnccomb.cpp
r3486 r3487 44 44 using namespace std; 45 45 46 // Auxiliary Class for Single-Differences47 ////////////////////////////////////////////////////////////////////////////48 class t_sDiff {49 public:50 QMap<QString, double> diff;51 };52 53 46 // Constructor 54 47 //////////////////////////////////////////////////////////////////////////// … … 546 539 } 547 540 548 SymmetricMatrix QQ_sav = _QQ; 541 // Check Satellite Positions for Outliers 542 // -------------------------------------- 543 if (checkOrbits() != success) { 544 return failure; 545 } 549 546 550 547 // Update and outlier detection loop 551 548 // --------------------------------- 549 SymmetricMatrix QQ_sav = _QQ; 552 550 while (true) { 553 551 … … 782 780 cmbCorr* corr = itCorr.next(); 783 781 QString prn = corr->prn; 784 switchToLastEph(_eph[prn]->last, corr); 782 785 783 ++iObs; 786 784 … … 848 846 QMap<QString, t_corr*>& resCorr, 849 847 ColumnVector& dx) { 848 849 // Check Satellite Positions for Outliers 850 // -------------------------------------- 851 if (checkOrbits() != success) { 852 return failure; 853 } 850 854 851 855 // Outlier Detection Loop … … 991 995 return failure; 992 996 } 997 998 // Check Satellite Positions for Outliers 999 //////////////////////////////////////////////////////////////////////////// 1000 t_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 87 87 void printResults(QTextStream& out, const QMap<QString, t_corr*>& resCorr); 88 88 void switchToLastEph(const t_eph* lastEph, t_corr* corr); 89 t_irc checkOrbits(); 89 90 90 91 QVector<cmbCorr*>& corrs() {return _buffer[_resTime].corrs;}
Note:
See TracChangeset
for help on using the changeset viewer.