Changeset 10451 in ntrip for trunk/BNC/src/combination/bnccomb.cpp
- Timestamp:
- Apr 24, 2024, 3:46:28 PM (6 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/combination/bnccomb.cpp
r10449 r10451 176 176 newAC->name = hlp[1]; 177 177 newAC->weightFactor = hlp[2].toDouble(); 178 newAC->isAPC = bool(newAC->mountPoint.mid(0,4) == "SSRA"); 178 newAC->excludeSats = hlp[3].split(QRegExp("[ ,]"), QString::SkipEmptyParts); 179 newAC->isAPC = bool(newAC->mountPoint.mid(0,4) == "SSRA"); 179 180 QMapIterator<char, unsigned> itSys(_cmbSysPrn); 180 181 // init … … 182 183 itSys.next(); 183 184 char sys = itSys.key(); 184 if (!_masterOrbitAC.contains(sys)) { 185 if (!_masterOrbitAC.contains(sys) && 186 !newAC->excludeSats.contains(QString(sys), Qt::CaseSensitive)) { 185 187 _masterOrbitAC[sys] = newAC->name; 186 188 _masterIsAPC[sys] = newAC->isAPC; … … 299 301 // Maximal Residuum 300 302 // ---------------- 301 _MAXRES = settings.value("cmbMaxres").toDouble(); 302 if (_MAXRES <= 0.0) { 303 _MAXRES = 999.0; 304 } 303 _MAX_RES = settings.value("cmbMaxres").toDouble(); 304 if (_MAX_RES <= 0.0) { 305 _MAX_RES = 999.0; 306 } 307 308 // Maximal Displacement 309 // -------------------- 310 _MAX_DISPLACEMENT = settings.value("cmbMaxdisplacement").toDouble(); 311 if (_MAX_DISPLACEMENT <= 0.0) { 312 _MAX_DISPLACEMENT = 2.0; 313 } 314 305 315 _newCorr = 0; 306 316 } … … 395 405 // ---------------------- 396 406 QString acName; 407 QStringList excludeSats; 397 408 QListIterator<cmbAC*> icAC(_ACs); 398 409 while (icAC.hasNext()) { … … 400 411 if (AC->mountPoint == staID) { 401 412 acName = AC->name; 413 excludeSats = AC->excludeSats; 402 414 break; 403 415 } 404 416 } 405 if (acName.isEmpty() ) {417 if (acName.isEmpty() || excludeSat(orbCorr._prn, excludeSats)) { 406 418 continue; 407 419 } … … 431 443 // ---------------------- 432 444 QString acName; 445 QStringList excludeSats; 433 446 QListIterator<cmbAC*> icAC(_ACs); 434 447 while (icAC.hasNext()) { … … 436 449 if (AC->mountPoint == staID) { 437 450 acName = AC->name; 451 excludeSats = AC->excludeSats; 438 452 break; 439 453 } 440 454 } 441 if (acName.isEmpty() ) {455 if (acName.isEmpty() || excludeSat(satCodeBias._prn, excludeSats)) { 442 456 continue; 443 457 } … … 480 494 // ---------------------- 481 495 QString acName; 496 QStringList excludeSats; 482 497 bool isAPC; 483 498 QString staID(newClk._staID.c_str()); … … 487 502 if (AC->mountPoint == staID) { 488 503 acName = AC->name; 504 QStringList excludeSats; 489 505 isAPC = AC->isAPC; 490 506 break; 491 507 } 492 508 } 493 if (acName.isEmpty() || isAPC != _masterIsAPC[sys]) { 509 if (acName.isEmpty() || 510 isAPC != _masterIsAPC[sys] || 511 excludeSat(newClk._prn, excludeSats)) { 494 512 continue; 495 513 } … … 962 980 << " Maximum Residuum " << maxRes << ' ' 963 981 << corrs(sys)[maxResIndex-1]->_acName << ' ' << corrs(sys)[maxResIndex-1]->_prn.mid(0,3); 964 if (maxRes > _MAX RES) {982 if (maxRes > _MAX_RES) { 965 983 for (int iPar = 1; iPar <= _params[sys].size(); iPar++) { 966 984 cmbParam* pp = _params[sys][iPar-1]; … … 1368 1386 << corrs(sys)[maxResIndex-1]->_acName << ' ' << corrs(sys)[maxResIndex-1]->_prn.mid(0,3); 1369 1387 1370 if (maxRes > _MAX RES) {1388 if (maxRes > _MAX_RES) { 1371 1389 out << " Outlier" << "\n"; 1372 1390 delete corrs(sys)[maxResIndex-1]; … … 1398 1416 t_irc bncComb::checkOrbits(bncTime epoTime, char sys, QTextStream& out) { 1399 1417 1400 const double MAX_DISPLACEMENT = 2.0;1401 1402 1418 // Switch to last ephemeris (if possible) 1403 1419 // -------------------------------------- … … 1500 1516 else if (corr == maxDiff[prn]) { 1501 1517 double norm = corr->_diffRao.NormFrobenius(); 1502 if (norm > MAX_DISPLACEMENT) {1518 if (norm > _MAX_DISPLACEMENT) { 1503 1519 out << epoTime.datestr().c_str() << " " 1504 1520 << epoTime.timestr().c_str() << " " … … 1577 1593 } 1578 1594 } 1595 1596 // 1597 //////////////////////////////////////////////////////////////////////////// 1598 bool bncComb::excludeSat(const t_prn& prn, const QStringList excludeSats) const { 1599 QStringListIterator it(excludeSats); 1600 while (it.hasNext()) { 1601 string prnStr = it.next().toLatin1().data(); 1602 if (prnStr == prn.toString() || prnStr == prn.toString().substr(0,1)) { 1603 return true; 1604 } 1605 } 1606 return false; 1607 }
Note:
See TracChangeset
for help on using the changeset viewer.