Changeset 10127 in ntrip for trunk/BNC/src/orbComp
- Timestamp:
- Jul 20, 2023, 12:13:41 PM (19 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/orbComp/sp3Comp.cpp
r10125 r10127 225 225 for (map<t_prn, double>::iterator it = dc.begin(); it != dc.end(); it++) { 226 226 const t_prn& prn = it->first; 227 st d::string sys; sys.assign(1, prn.system());227 stringstream all; all << prn.system() << 99; 228 228 if (satIndex(clkSats, prn) != -1) { 229 229 int index = epochs.size() + satIndex(clkSats, prn); … … 233 233 dcRed[prn] = dc[prn] - dr.find(prn)->second[0]; // clock minus radial component 234 234 stat[prn.toString()]._dcRedMean += dcRed[prn]; 235 stat[ sys]._dcRedMean += dcRed[prn];235 stat[all.str() ]._dcRedMean += dcRed[prn]; 236 236 stat[prn.toString()]._nc += 1; 237 stat[ sys]._nc += 1;237 stat[all.str() ]._nc += 1; 238 238 } 239 239 } … … 380 380 for (map<t_prn, ColumnVector>::const_iterator it = dr.begin(); it != dr.end(); it++) { 381 381 const t_prn& prn = it->first; 382 st d::string sys; sys.assign(1, prn.system());382 stringstream all; all << prn.system() << 99; 383 383 if (!excludeSat(prn)) { 384 384 const ColumnVector& rao = it->second; … … 390 390 } 391 391 stat[prn.toString()]._rao += SP(rao, rao); // Schur product 392 stat[ sys]._rao += SP(rao, rao);392 stat[all.str() ]._rao += SP(rao, rao); 393 393 stat[prn.toString()]._nr += 1; 394 stat[ sys]._nr += 1;394 stat[all.str() ]._nr += 1; 395 395 if (dc.find(prn) != dc.end() && dcRed.find(prn) != dc.end()) { 396 396 double clkRes = dc.find(prn)->second; … … 401 401 } 402 402 stat[prn.toString()]._dcRMS += clkRes * clkRes; 403 stat[ sys]._dcRMS += clkRes * clkRes;403 stat[all.str() ]._dcRMS += clkRes * clkRes; 404 404 stat[prn.toString()]._dcRedRMS += clkResRed * clkResRed; 405 stat[ sys]._dcRedRMS += clkResRed * clkResRed;405 stat[all.str() ]._dcRedRMS += clkResRed * clkResRed; 406 406 stat[prn.toString()]._dcRedSig += (clkResRed - stat[prn.toString()]._dcRedMean) * 407 407 (clkResRed - stat[prn.toString()]._dcRedMean); 408 stat[ sys ]._dcRedSig += (clkResRed - stat[sys]._dcRedMean) *409 (clkResRed - stat[ sys]._dcRedMean);408 stat[all.str() ]._dcRedSig += (clkResRed - stat[all.str() ]._dcRedMean) * 409 (clkResRed - stat[all.str() ]._dcRedMean); 410 410 } 411 411 else { … … 432 432 const string& prn = it->first; 433 433 t_stat& stat = it->second; 434 st d::string sys; sys.assign(1, prn[0]);434 stringstream all; all << prn[0] << 99; 435 435 if (stat._nr > 0) { 436 436 stat._rao[0] = sqrt(stat._rao[0] / stat._nr); … … 438 438 stat._rao[2] = sqrt(stat._rao[2] / stat._nr); 439 439 stat._rao3DRMS = stat._rao.NormFrobenius(); 440 if (prn != sys) { 441 (_summaryOnly) ? out << " " << prn << ' ' : 440 // orbit values in millimeter 441 if (prn != all.str()) { 442 (_summaryOnly) ? out << " " << prn << ' ': 442 443 out << "! " << prn << ' '; 443 444 } 444 // orbit values in millimeters 445 if (prn != sys) { 446 out << setw(10) << setprecision(1) << stat._rao[0] * 1e3 << ' ' 447 << setw(10) << setprecision(1) << stat._rao[1] * 1e3 << ' ' 448 << setw(10) << setprecision(1) << stat._rao[2] * 1e3 << ' ' 449 << setw(10) << setprecision(1) << stat._rao3DRMS * 1e3 << ' ' 450 << setw( 7) << stat._nr << " "; 451 } 445 else { 446 (_summaryOnly) ? out << " " << QString("%1 ").arg(all.str()[0]).toStdString() << " ": 447 out << "! " << QString("%1 ").arg(all.str()[0]).toStdString() << " "; 448 } 449 out << setw(10) << setprecision(1) << stat._rao[0] * 1e3 << ' ' 450 << setw(10) << setprecision(1) << stat._rao[1] * 1e3 << ' ' 451 << setw(10) << setprecision(1) << stat._rao[2] * 1e3 << ' ' 452 << setw(10) << setprecision(1) << stat._rao3DRMS * 1e3 << ' ' 453 << setw( 7) << stat._nr << " "; 454 // clock values in nano seconds 452 455 if (stat._nc > 0) { 453 456 stat._dcRMS = sqrt(stat._dcRMS / stat._nc); 454 457 stat._dcRedRMS = sqrt(stat._dcRedRMS / stat._nc); 455 458 stat._dcRedSig = sqrt(stat._dcRedSig / stat._nc); 456 // clock values in nano seconds 457 if (prn != sys) { 458 out << setw(10) << setprecision(2) << stat._dcRMS / t_CST::c * 1e9 << ' ' 459 << setw(10) << setprecision(2) << stat._dcRedRMS / t_CST::c * 1e9 << ' ' 460 << setw(10) << setprecision(2) << stat._dcRedSig / t_CST::c * 1e9 << ' ' 461 << setw( 9) << stat._nc << " " 462 << setw( 9) << setprecision(2) << stat._offset / t_CST::c * 1e9; 463 } 464 } 465 else { 466 if (prn != sys) { 467 // out << " . . "; 468 } 469 } 470 if (prn != sys) { 471 out << "\n"; 472 } 473 } 474 } 475 // Print Total 476 // ------------ 477 out << "!\n! Mean"; 478 out << "\n! -----------------------------------------------------------------------------------------------------------------\n"; 479 out << "!\n! GNSS radialRMS alongRMS outRMS 3DRMS nOrb clkRMS clkRedRMS clkRedSig nClk " 480 "\n! [mm] [mm] [mm] [mm] [-] [ns] [ns] [ns] [-] " 481 "\n! -----------------------------------------------------------------------------------------------------------------"; 482 for (map<string, t_stat>::iterator it = stat.begin(); it != stat.end(); it++) { 483 const string& prn = it->first; 484 t_stat& stat = it->second; 485 std::string sys; sys.assign(1, prn[0]); 486 if (stat._nr > 0) { 487 if (prn == sys) { 488 (_summaryOnly) ? out << "\n " << sys << " " : 489 out << "\n! " << sys << " "; 490 } 491 // orbit values in millimeters 492 if (prn == sys) { 493 out << setw(10) << setprecision(1) << stat._rao[0] * 1e3 << ' ' 494 << setw(10) << setprecision(1) << stat._rao[1] * 1e3 << ' ' 495 << setw(10) << setprecision(1) << stat._rao[2] * 1e3 << ' ' 496 << setw(10) << setprecision(1) << stat._rao3DRMS * 1e3 << ' ' 497 << setw( 7) << stat._nr << " "; 498 } 499 if (stat._nc > 0) { 500 // clock values in nano seconds 501 if (prn == sys) { 502 out << setw(10) << setprecision(2) << stat._dcRMS / t_CST::c * 1e9 << ' ' 503 << setw(10) << setprecision(2) << stat._dcRedRMS / t_CST::c * 1e9 << ' ' 504 << setw(10) << setprecision(2) << stat._dcRedSig / t_CST::c * 1e9 << ' ' 505 << setw( 9) << stat._nc << " "; 506 } 507 } 508 else { 509 if (prn == sys) { 510 // out << " . . "; 511 } 512 } 459 out << setw(10) << setprecision(2) << stat._dcRMS / t_CST::c * 1e9 << ' ' 460 << setw(10) << setprecision(2) << stat._dcRedRMS / t_CST::c * 1e9 << ' ' 461 << setw(10) << setprecision(2) << stat._dcRedSig / t_CST::c * 1e9 << ' ' 462 << setw( 9) << stat._nc << " "; 463 if (prn != all.str()) { 464 out << setw( 9) << setprecision(2) << stat._offset / t_CST::c * 1e9; 465 } 466 } 467 out << "\n"; 513 468 } 514 469 }
Note:
See TracChangeset
for help on using the changeset viewer.