Changeset 10010 in ntrip for trunk/BNC/src
- Timestamp:
- Mar 17, 2023, 2:27:30 PM (2 years ago)
- Location:
- trunk/BNC/src/PPP
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/PPP/pppFilter.cpp
r10009 r10010 72 72 73 73 const QMap<char, t_pppRefSat*> &refSatMap = epoch->refSatMap(); 74 74 const QList<char> &usedSystems = _parlist.usedSystems(); 75 75 //-- 76 76 // Set Parameters … … 78 78 return failure; 79 79 } 80 80 #ifdef BNC_DEBUG_PPP 81 81 if (OPT->_obsModelType == OPT->DCMcodeBias || 82 OPT->_obsModelType == OPT->DCMphaseBias) {83 #ifdef BNC_DEBUG_PPP 84 _parlist.printParams(_epoTime);82 OPT->_obsModelType == OPT->DCMphaseBias) { 83 _parlist.printParams(_epoTime); 84 } 85 85 #endif 86 } 86 87 87 // Status Vector, Variance-Covariance Matrix 88 88 // ----------------------------------------- 89 89 ColumnVector xFltOld = _xFlt; 90 90 SymmetricMatrix QFltOld = _QFlt; 91 setStateVectorAndVarCovMatrix(xFltOld, QFltOld); 91 bool setNeuNoiseToZero = false; 92 for (int iSys = 0; iSys < usedSystems.size(); iSys++) { 93 char sys = usedSystems[iSys]; 94 int num = 0; 95 for (unsigned jj = 0; jj < allObs.size(); jj++) { 96 if (allObs[jj]->prn().system() == sys) { 97 ++num; 98 } 99 } 100 if (num < OPT->_minObs) { 101 setNeuNoiseToZero = true; 102 } 103 } 104 setStateVectorAndVarCovMatrix(xFltOld, QFltOld, setNeuNoiseToZero); 92 105 93 106 // Pre-Process Satellite Systems separately … … 97 110 OPT->_obsModelType == OPT->DCMphaseBias) { 98 111 preProcessing = true; 99 const QList<char> &usedSystems = _parlist.usedSystems();100 112 for (int iSys = 0; iSys < usedSystems.size(); iSys++) { 101 113 char sys = usedSystems[iSys]; … … 137 149 // ------------------------------------ 138 150 preProcessing = false; 139 const QList<char> &usedSystems = _parlist.usedSystems();140 151 for (int iSys = 0; iSys < usedSystems.size(); iSys++) { 141 152 char sys = usedSystems[iSys]; … … 594 605 // 595 606 //////////////////////////////////////////////////////////////////////////// 596 void t_pppFilter::predictCovCrdPart(const SymmetricMatrix &QFltOld ) {607 void t_pppFilter::predictCovCrdPart(const SymmetricMatrix &QFltOld, bool setNeuNoiseToZero) { 597 608 598 609 const vector<t_pppParam*> ¶ms = _parlist.params(); … … 622 633 } else { 623 634 double dt = _epoTime - _firstEpoTime; 624 if (dt < OPT->_seedingTime ) {635 if (dt < OPT->_seedingTime || setNeuNoiseToZero) { 625 636 _QFlt.SymSubMatrix(1, 3) = QFltOld.SymSubMatrix(1, 3); 626 637 } else { … … 633 644 //////////////////////////////////////////////////////////////////////////// 634 645 void t_pppFilter::setStateVectorAndVarCovMatrix(const ColumnVector &xFltOld, 635 const SymmetricMatrix &QFltOld ) {646 const SymmetricMatrix &QFltOld, bool setNeuNoiseToZero) { 636 647 637 648 const vector<t_pppParam*> ¶ms = _parlist.params(); … … 666 677 } 667 678 } 668 predictCovCrdPart(QFltOld );679 predictCovCrdPart(QFltOld, setNeuNoiseToZero); 669 680 } 670 681 -
trunk/BNC/src/PPP/pppFilter.h
r10008 r10010 206 206 const QMap<char, t_pppRefSat*>& refSatMap); 207 207 208 void setStateVectorAndVarCovMatrix(const ColumnVector& xFltOld, const SymmetricMatrix& QFltOld); 209 210 void predictCovCrdPart(const SymmetricMatrix& QFltOld); 208 void setStateVectorAndVarCovMatrix(const ColumnVector& xFltOld, const SymmetricMatrix& QFltOld, 209 bool setNeuNoiseToZero); 210 211 void predictCovCrdPart(const SymmetricMatrix& QFltOld, bool setNeuNoiseToZero); 211 212 212 213 t_irc addNoiseToPar(t_pppParam::e_type parType, char sys); -
trunk/BNC/src/PPP/pppSatObs.cpp
r10009 r10010 33 33 using namespace std; 34 34 35 const double GLO_WEIGHT_FACTOR = 1.0;36 const double BDS_WEIGHT_FACTOR = 1.0;35 const double GLO_WEIGHT_FACTOR = 2.0; 36 const double BDS_WEIGHT_FACTOR = 2.0; 37 37 38 38 // Constructor … … 355 355 // De-Weight GLO+BDS 356 356 // ----------------- 357 if (_prn.system() == 'R' ) {357 if (_prn.system() == 'R' && t_lc::includesCode(tLC)) { 358 358 retVal *= GLO_WEIGHT_FACTOR; 359 359 } 360 if (_prn.system() == 'C' ){360 if (_prn.system() == 'C' && t_lc::includesCode(tLC)){ 361 361 retVal *= BDS_WEIGHT_FACTOR; 362 362 } … … 398 398 399 399 retVal = sqrt(retVal); 400 401 // De-Weight GLO+BDS 402 // ----------------- 403 if (_prn.system() == 'R' && t_lc::includesCode(tLC)) { 404 retVal *= GLO_WEIGHT_FACTOR; 405 } 406 if (_prn.system() == 'C' && t_lc::includesCode(tLC)){ 407 retVal *= BDS_WEIGHT_FACTOR; 408 } 409 400 410 401 411 return retVal;
Note:
See TracChangeset
for help on using the changeset viewer.