Changeset 10092 in ntrip
- Timestamp:
- Jun 16, 2023, 6:54:01 AM (15 months ago)
- Location:
- trunk/BNC/src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/bnchelp.html
r10086 r10092 2390 2390 </p> 2391 2391 <pre><p style="font-family:Monospace"> 2392 ! SP3 File 1: Input/CNE1SSRRTS_20222410000_01D_05S_ORB.SP3 2393 ! SP3 File 2: Input/BKG1SSRRTS_20222410000_01D_05S_ORB.SP3 2392 ! SP3 File 1: /data/stuerze/tools/BNC/Example_Configs/Input/CNE1MGXRTS_20222410000_01D_05S_ORB.SP3 2393 ! SP3 File 2: /data/stuerze/tools/BNC/Example_Configs/Input/BKG1MGXRTS_20222410000_01D_05S_ORB.SP3 2394 ! 2395 ! Clock residuals and orbit differences in [m] 2396 ! ---------------------------------------------------------------------------- 2394 2397 ! 2395 2398 ! Epoch PRN radial along out clk clkRed iPRN 2396 2399 ! ---------------------------------------------------------------------------- 2397 .. 2398 2022-08-29_08:01:30.000 E02 -0.0023 0.1159 -0.0047 0.0187 0.0210 60 2399 2022-08-29_08:01:30.000 E03 -0.0567 -0.0411 0.0146 -0.0093 0.0474 61 2400 2022-08-29_08:01:30.000 E04 0.0695 -0.0406 0.0880 -0.0219 -0.0914 62 2401 2022-08-29_08:01:30.000 E05 -0.1042 0.1161 -0.0503 -0.0101 0.0942 63 2402 2022-08-29_08:01:30.000 E07 0.0354 0.0384 -0.0346 0.0134 -0.0219 65 2403 2022-08-29_08:01:30.000 E08 -0.0312 0.0312 -0.0481 0.0130 0.0442 66 2404 2022-08-29_08:01:30.000 E09 -0.0548 0.1941 0.0263 -0.0113 0.0436 67 2405 2022-08-29_08:01:30.000 E12 0.0402 -0.0023 0.0012 -0.0051 -0.0454 70 2406 2022-08-29_08:01:30.000 E13 0.0420 -0.0608 -0.0525 -0.0006 -0.0427 71 2407 2022-08-29_08:01:30.000 E15 0.0478 0.0348 -0.0353 -0.0122 -0.0600 73 2408 2022-08-29_08:01:30.000 E21 0.0639 0.0033 0.0292 -0.0167 -0.0806 79 2409 2022-08-29_08:01:30.000 E24 0.0900 -0.1113 -0.0385 0.0047 -0.0853 82 2410 2022-08-29_08:01:30.000 E25 0.0106 0.0340 -0.0564 0.0023 -0.0083 83 2411 2022-08-29_08:01:30.000 E26 0.0598 0.0506 -0.0983 -0.0011 -0.0609 84 2412 2022-08-29_08:01:30.000 E27 0.0763 -0.0972 -0.0480 0.0041 -0.0722 85 2413 2022-08-29_08:01:30.000 E30 0.0385 0.0266 0.0028 0.0092 -0.0293 88 2414 2022-08-29_08:01:30.000 E31 0.1017 -0.1834 -0.0211 0.0021 -0.0997 89 2415 2022-08-29_08:01:30.000 E33 0.0827 0.0385 -0.0741 -0.0060 -0.0887 91 2416 2022-08-29_08:01:30.000 E36 0.0099 -0.0769 0.0384 0.0269 0.0170 94 2417 2400 2022-08-29_08:01:30.000 G01 0.0297 -0.0526 -0.0198 -0.0005 -0.0301 1 2401 2022-08-29_08:01:30.000 G02 0.0225 -0.0179 0.0055 0.0054 -0.0171 2 2402 2022-08-29_08:01:30.000 G03 0.0210 -0.0387 -0.0153 0.0025 -0.0185 3 2403 2022-08-29_08:01:30.000 G06 0.0650 0.0599 -0.0260 -0.0074 -0.0724 6 2404 2022-08-29_08:01:30.000 G07 0.0112 0.0774 0.0331 -0.0021 -0.0133 7 2405 2022-08-29_08:01:30.000 G08 0.0241 0.0725 0.0009 -0.0008 -0.0248 8 2406 2022-08-29_08:01:30.000 G09 -0.0145 0.0669 0.0069 0.0051 0.0196 9 2407 2022-08-29_08:01:30.000 G11 0.0375 0.0650 -0.0080 -0.0094 -0.0469 11 2408 2022-08-29_08:01:30.000 G12 0.0634 0.0229 -0.0003 0.0078 -0.0556 12 2409 2022-08-29_08:01:30.000 G13 0.0163 0.0551 0.0904 0.0010 -0.0153 13 2410 2022-08-29_08:01:30.000 G14 0.0365 0.0646 -0.0398 0.0034 -0.0332 14 2411 2022-08-29_08:01:30.000 G15 0.0175 0.0892 0.0512 -0.0032 -0.0207 15 2412 2022-08-29_08:01:30.000 G16 0.0453 0.0408 0.0346 -0.0029 -0.0483 16 2413 2022-08-29_08:01:30.000 G17 0.0381 -0.0064 -0.0701 0.0020 -0.0362 17 2414 2022-08-29_08:01:30.000 G18 -0.0886 0.0031 0.0721 -0.0055 0.0831 18 2415 2022-08-29_08:01:30.000 G19 0.0310 -0.0190 -0.0264 -0.0000 -0.0311 19 2416 2022-08-29_08:01:30.000 G20 0.0199 0.0308 0.0476 0.0106 -0.0093 20 2417 2022-08-29_08:01:30.000 G21 0.0163 0.0079 -0.0464 0.0047 -0.0116 21 2418 2022-08-29_08:01:30.000 G22 0.0471 0.0173 -0.0315 -0.0023 -0.0494 22 2419 2022-08-29_08:01:30.000 G23 -0.0354 -0.0042 0.0247 -0.0035 0.0319 23 2420 2022-08-29_08:01:30.000 G24 0.0110 0.0030 -0.0323 0.0112 0.0002 24 2421 2022-08-29_08:01:30.000 G25 0.0037 0.0712 -0.0175 -0.0019 -0.0056 25 2422 2022-08-29_08:01:30.000 G26 0.0421 -0.0002 0.0511 -0.0009 -0.0430 26 2423 2022-08-29_08:01:30.000 G27 0.0164 0.1203 0.0347 -0.0041 -0.0205 27 2424 2022-08-29_08:01:30.000 G29 -0.0093 0.0141 0.0570 0.0095 0.0188 29 2425 2022-08-29_08:01:30.000 G30 0.0199 0.0805 0.0529 -0.0074 -0.0273 30 2426 2022-08-29_08:01:30.000 G31 0.0336 -0.0079 -0.0281 -0.0132 -0.0468 31 2427 2022-08-29_08:01:30.000 G32 -0.0185 -0.0200 -0.0103 0.0019 0.0205 32 2418 2428 .. 2419 2429 ! 2420 ! RMS[m] 2430 ! Summary 2431 ! ----------------------------------------------------------------------------------------------------------------- 2421 2432 ! 2422 ! PRN radial along out nOrb clk clkRed nClk Offset 2423 ! ---------------------------------------------------------------------- 2424 ! E02 0.0072 0.1160 0.0267 165 0.0110 0.0158 165 -0.0345 2425 ! E03 0.0610 0.0387 0.0151 165 0.0083 0.0617 165 -0.0376 2426 ! E04 0.0830 0.0619 0.0819 165 0.0112 0.0828 165 0.0649 2427 ! E05 0.0966 0.1193 0.0418 165 0.0058 0.0965 165 -0.0073 2428 ! E07 0.0296 0.0309 0.0389 165 0.0102 0.0296 165 -0.0904 2429 ! E08 0.0371 0.0193 0.0424 165 0.0080 0.0372 165 -0.1017 2430 ! E09 0.0436 0.1744 0.0422 165 0.0044 0.0433 165 -0.0300 2431 ! E12 0.0490 0.0033 0.0107 165 0.0042 0.0489 165 -0.1174 2432 ! E13 0.0336 0.0393 0.0661 165 0.0046 0.0341 165 -0.0683 2433 ! E15 0.0548 0.0273 0.0375 165 0.0064 0.0547 165 0.0536 2434 ! E21 0.0667 0.0116 0.0301 165 0.0079 0.0671 165 -0.0384 2435 ! E24 0.0913 0.1101 0.0332 165 0.0050 0.0913 165 0.0946 2436 ! E25 0.0099 0.0412 0.0628 165 0.0033 0.0101 165 0.0797 2437 ! E26 0.0621 0.0516 0.0946 165 0.0033 0.0622 165 0.0300 2438 ! E27 0.0734 0.0841 0.0522 165 0.0052 0.0733 165 0.1015 2439 ! E30 0.0382 0.0380 0.0072 165 0.0046 0.0384 165 0.0682 2440 ! E31 0.0937 0.1700 0.0234 165 0.0089 0.0943 165 0.1110 2441 ! E33 0.0926 0.0340 0.0654 165 0.0032 0.0926 165 0.0010 2442 ! E36 0.0059 0.0630 0.0456 165 0.0089 0.0073 165 -0.0790 2433 ! PRN radialRMS alongRMS outRMS 3DRMS nOrb clkRMS clkRedRMS clkRedSig nClk Offset 2434 ! [mm] [mm] [mm] [mm] [-] [ns] [ns] [ns] [-] [ns] 2435 ! ----------------------------------------------------------------------------------------------------------------- 2443 2436 .. 2437 ! G01 49.4 90.1 4.0 102.8 165 0.01 0.16 0.16 165 -2.71 2438 ! G02 39.8 34.2 6.2 52.8 165 0.01 0.13 0.13 165 4.13 2439 ! G03 27.8 57.7 12.8 65.3 165 0.01 0.09 0.09 165 -2.18 2440 ! G06 61.8 50.7 22.2 82.9 165 0.01 0.21 0.21 165 -2.70 2441 ! G07 22.2 80.3 31.7 89.2 165 0.01 0.07 0.07 165 -1.26 2442 ! G08 18.8 102.1 12.7 104.6 165 0.01 0.06 0.06 165 1.17 2443 ! G09 9.8 87.2 5.6 87.9 165 0.01 0.03 0.03 165 0.21 2444 ! G11 54.8 65.5 6.9 85.6 165 0.03 0.18 0.18 165 -1.93 2445 ! G12 64.4 48.2 7.3 80.8 165 0.02 0.21 0.21 165 -1.45 2446 ! G13 17.1 45.9 88.8 101.4 165 0.01 0.06 0.06 165 -0.67 2447 ! G14 34.9 79.4 32.6 92.7 165 0.01 0.12 0.12 165 -2.07 2448 ! G15 33.4 38.1 45.0 67.8 165 0.01 0.11 0.11 165 -2.19 2449 ! G16 50.0 67.9 51.2 98.7 165 0.01 0.17 0.17 165 3.27 2450 ! G17 44.1 12.0 73.8 86.8 165 0.01 0.15 0.15 165 -1.67 2451 ! G18 78.7 15.0 65.4 103.4 165 0.01 0.26 0.26 165 -2.37 2452 ! G19 29.1 12.7 38.2 49.7 165 0.01 0.10 0.10 165 6.27 2453 ! G20 19.0 25.2 33.4 45.9 165 0.02 0.06 0.06 165 5.58 2454 ! G21 8.6 13.3 44.5 47.3 165 0.01 0.03 0.03 165 5.40 2455 ! G22 53.5 18.3 29.0 63.5 165 0.01 0.18 0.18 165 1.54 2456 ! G23 29.8 35.8 16.1 49.2 165 0.01 0.10 0.10 165 -1.84 2457 ! G24 13.4 20.2 28.4 37.3 165 0.02 0.04 0.04 165 -2.67 2458 ! G25 9.2 88.4 28.0 93.2 165 0.02 0.04 0.04 165 1.68 2459 ! G26 45.2 33.4 60.5 82.5 165 0.02 0.15 0.15 165 0.36 2460 ! G27 22.4 128.4 39.9 136.3 165 0.01 0.07 0.07 165 0.59 2461 ! G29 17.2 42.3 59.7 75.1 165 0.02 0.06 0.06 165 -2.56 2462 ! G30 19.9 91.7 61.2 112.0 165 0.01 0.07 0.07 165 2.15 2463 ! G31 30.3 20.1 39.4 53.6 165 0.04 0.11 0.11 165 -1.97 2464 ! G32 16.7 28.9 8.2 34.4 165 0.01 0.06 0.06 165 -2.11 2444 2465 ! 2445 ! Total 0.0552 0.0877 0.0690 10395 0.0075 0.0551103952466 ! Total 55.2 87.7 69.0 124.5 10395 0.02 0.18 0.18 10395 2446 2467 </p> 2447 2468 </pre> 2448 2469 <p> 2449 The first part of this output uses the following abbreviations:2470 The first part of this output following string 'following string' uses the following abbreviations: 2450 2471 </p> 2451 2472 … … 2461 2482 </table> 2462 2483 <p> 2463 The second part following string ' RMS' provides a summary of the comparison using the following2484 The second part following string 'Summary' provides a summary of the comparison using the following 2464 2485 abbreviations:<br> 2486 ! PRN radialRMS alongRMS outRMS 3DRMS nOrb clkRMS clkRedRMS clkRedSig nClk Offset 2487 ! [mm] [mm] [mm] [mm] [-] [ns] [ns] [ns] [-] [ns] 2465 2488 </p> 2466 2489 <table> 2467 2490 <tr><td>'PRN' </td><td>Satellite specification</td></tr> 2468 <tr><td>'radial' </td><td>RMS of radial component of orbit coordinate differences [m]</td></tr> 2469 <tr><td>'along' </td><td>RMS of along track component of orbit coordinate differences [m]</td></tr> 2470 <tr><td>'out' </td><td>RMS of out-of-plane component of orbit coordinate differences [m]</td></tr> 2491 <tr><td>'radialRMS' </td><td>RMS of the radial component of orbit coordinate differences [mm]</td></tr> 2492 <tr><td>'alongRMS' </td><td>RMS of the along track component of orbit coordinate differences [mm]</td></tr> 2493 <tr><td>'outRMS' </td><td>RMS of the out-of-plane component of orbit coordinate differences [mm]</td></tr> 2494 <tr><td>'3DRMS' </td><td>3D RMS of the orbit coordinate differences [mm]</td></tr> 2471 2495 <tr><td>'nOrb' </td><td>Number of epochs used in in orbit comparison</td></tr> 2472 <tr><td>'clk' </td><td>RMS of clock differences [m]</td></tr> 2473 <tr><td>'clkRed' </td><td>RMS of clock differences after reduction of radial orbit differences [m]</td></tr> 2496 <tr><td>'clkRMS' </td><td>RMS of clock differences [ns]</td></tr> 2497 <tr><td>'clkRedRMS' </td><td>RMS of The clock differences after reduction of radial orbit differences [ns]</td></tr> 2498 <tr><td>'clkRedSig' </td><td>Sigma of the clock differences after reduction of radial orbit differences [ns]</td></tr> 2474 2499 <tr><td>'nClk' </td><td>Number of epochs use in clock comparisons</td></tr> 2475 <tr><td>'Offset' </td><td>Clock offset [ m]</td></tr>2500 <tr><td>'Offset' </td><td>Clock offset [ns]</td></tr> 2476 2501 </table> 2477 2502 <br> -
trunk/BNC/src/orbComp/sp3Comp.cpp
r9865 r10092 217 217 // Compute clock residuals 218 218 // ----------------------- 219 const string all = "ZZZ"; 219 220 for (unsigned ie = 0; ie < epochs.size(); ie++) { 220 map<t_prn, double>& dc = epochs[ie]->_dc; 221 map<t_prn, double>& dc = epochs[ie]->_dc; 222 map<t_prn, double>& dcRed = epochs[ie]->_dcRed; 223 const map<t_prn, ColumnVector>& dr = epochs[ie]->_dr; 221 224 for (map<t_prn, double>::iterator it = dc.begin(); it != dc.end(); it++) { 222 225 const t_prn& prn = it->first; 223 226 if (satIndex(clkSats, prn) != -1) { 224 227 int index = epochs.size() + satIndex(clkSats, prn); 225 dc[prn] 228 dc[prn] = it->second - xx[ie] - xx[index]; 226 229 stat[prn.toString()]._offset = xx[index]; 227 } 230 if (dr.find(prn) != dr.end()){ 231 dcRed[prn] = dc[prn] - dr.find(prn)->second[0]; // clock minus radial component 232 stat[prn.toString()]._dcRedMean += dcRed[prn]; 233 stat[all ]._dcRedMean += dcRed[prn]; 234 stat[prn.toString()]._nc += 1; 235 stat[all ]._nc += 1; 236 } 237 } 238 } 239 } 240 241 // Compute Clock Mean 242 // ------------------ 243 for (map<string, t_stat>::iterator it = stat.begin(); it != stat.end(); it++) { 244 t_stat& stat = it->second; 245 if (stat._nc > 0) { 246 stat._dcRedMean = stat._dcRedMean / stat._nc; 228 247 } 229 248 } … … 342 361 } 343 362 344 // Print Residuals345 // --------------- 363 // Print epoch-wise Clock Residuals 364 // -------------------------------- 346 365 const string all = "ZZZ"; 347 366 348 367 out.setf(ios::fixed); 368 out << "!\n! Clock residuals and orbit differences in [m]\n" 369 "! ----------------------------------------------------------------------------\n"; 349 370 out << "!\n! Epoch PRN radial along out clk clkRed iPRN" 350 371 "\n! ----------------------------------------------------------------------------\n"; … … 353 374 const map<t_prn, ColumnVector>& dr = epochs[ii]->_dr; 354 375 const map<t_prn, double>& dc = epochs[ii]->_dc; 376 const map<t_prn, double>& dcRed = epochs[ii]->_dcRed; 355 377 for (map<t_prn, ColumnVector>::const_iterator it = dr.begin(); it != dr.end(); it++) { 356 378 const t_prn& prn = it->first; … … 362 384 << setw(7) << setprecision(4) << rao[2] << " "; 363 385 stat[prn.toString()]._rao += SP(rao, rao); // Schur product 386 stat[all ]._rao += SP(rao, rao); 364 387 stat[prn.toString()]._nr += 1; 365 stat[all]._rao += SP(rao, rao); 366 stat[all]._nr += 1; 367 if (dc.find(prn) != dc.end()) { 388 stat[all ]._nr += 1; 389 if (dc.find(prn) != dc.end() && dcRed.find(prn) != dc.end()) { 368 390 double clkRes = dc.find(prn)->second; 369 double clkResRed = clkRes - it->second[0]; // clock minus radial component391 double clkResRed = dcRed.find(prn)->second; 370 392 out << setw(7) << setprecision(4) << clkRes << ' ' 371 393 << setw(7) << setprecision(4) << clkResRed; 372 stat[prn.toString()]._dc += clkRes * clkRes; 373 stat[prn.toString()]._dcRed += clkResRed * clkResRed; 374 stat[prn.toString()]._nc += 1; 375 stat[all]._dc += clkRes * clkRes; 376 stat[all]._dcRed += clkResRed * clkResRed; 377 stat[all]._nc += 1; 394 stat[prn.toString()]._dcRMS += clkRes * clkRes; 395 stat[all ]._dcRMS += clkRes * clkRes; 396 stat[prn.toString()]._dcRedRMS += clkResRed * clkResRed; 397 stat[all ]._dcRedRMS += clkResRed * clkResRed; 398 stat[prn.toString()]._dcRedSig += (clkResRed - stat[prn.toString()]._dcRedMean) * 399 (clkResRed - stat[prn.toString()]._dcRedMean); 400 stat[all ]._dcRedSig += (clkResRed - stat[all ]._dcRedMean) * 401 (clkResRed - stat[all ]._dcRedMean); 378 402 } 379 403 else { … … 388 412 // Print Summary 389 413 // ------------- 390 out << "!\n! RMS[m]\n"; 391 out << "!\n! PRN radial along out nOrb clk clkRed nClk Offset" 392 "\n! ----------------------------------------------------------------------\n"; 414 out << "!\n! Summary"; 415 out << "\n! -----------------------------------------------------------------------------------------------------------------\n"; 416 out << "!\n! PRN radialRMS alongRMS outRMS 3DRMS nOrb clkRMS clkRedRMS clkRedSig nClk Offset " 417 "\n! [mm] [mm] [mm] [mm] [-] [ns] [ns] [ns] [-] [ns] " 418 "\n! -----------------------------------------------------------------------------------------------------------------\n"; 393 419 for (map<string, t_stat>::iterator it = stat.begin(); it != stat.end(); it++) { 394 420 const string& prn = it->first; … … 398 424 stat._rao[1] = sqrt(stat._rao[1] / stat._nr); 399 425 stat._rao[2] = sqrt(stat._rao[2] / stat._nr); 426 stat._rao3DRMS = stat._rao.NormFrobenius(); 400 427 if (prn == all) { 401 out << "!\n! Total ";428 out << "!\n! Total "; 402 429 } 403 430 else { 404 out << "! " << prn << ' '; 405 } 406 out << setw(7) << setprecision(4) << stat._rao[0] << ' ' 407 << setw(7) << setprecision(4) << stat._rao[1] << ' ' 408 << setw(7) << setprecision(4) << stat._rao[2] << ' ' 409 << setw(6) << stat._nr << " "; 431 out << "! " << prn << ' '; 432 } 433 // orbit values in millimeters 434 out << setw(10) << setprecision(1) << stat._rao[0] * 1e3 << ' ' 435 << setw(10) << setprecision(1) << stat._rao[1] * 1e3 << ' ' 436 << setw(10) << setprecision(1) << stat._rao[2] * 1e3 << ' ' 437 << setw(10) << setprecision(1) << stat._rao3DRMS * 1e3 << ' ' 438 << setw( 7) << stat._nr << " "; 410 439 if (stat._nc > 0) { 411 stat._dc = sqrt(stat._dc / stat._nc); 412 stat._dcRed = sqrt(stat._dcRed / stat._nc); 413 out << setw(7) << setprecision(4) << stat._dc << ' ' 414 << setw(7) << setprecision(4) << stat._dcRed << ' ' 415 << setw(6) << stat._nc << " "; 440 stat._dcRMS = sqrt(stat._dcRMS / stat._nc); 441 stat._dcRedRMS = sqrt(stat._dcRedRMS / stat._nc); 442 stat._dcRedSig = sqrt(stat._dcRedSig / stat._nc); 443 // clock values in nano seconds 444 out << setw(10) << setprecision(2) << stat._dcRMS / t_CST::c * 1e9 << ' ' 445 << setw(10) << setprecision(2) << stat._dcRedRMS / t_CST::c * 1e9 << ' ' 446 << setw(10) << setprecision(2) << stat._dcRedSig / t_CST::c * 1e9 << ' ' 447 << setw( 9) << stat._nc << " "; 416 448 if (prn != all) { 417 out << setw(9) << setprecision( 4) << stat._offset;449 out << setw(9) << setprecision(2) << stat._offset / t_CST::c * 1e9; 418 450 } 419 451 } -
trunk/BNC/src/orbComp/sp3Comp.h
r6431 r10092 38 38 class t_sp3Comp : public QThread { 39 39 Q_OBJECT 40 40 41 41 public: 42 42 t_sp3Comp(QObject* parent); … … 47 47 signals: 48 48 void finished(); 49 49 50 50 public slots: 51 51 52 52 public: 53 53 virtual void run(); 54 54 55 55 private: 56 56 class t_epoch { … … 60 60 std::map<t_prn, ColumnVector> _xyz; 61 61 std::map<t_prn, double> _dc; 62 std::map<t_prn, double> _dcRed; 62 63 }; 63 64 … … 65 66 public: 66 67 t_stat() { 67 _rao.ReSize(3); 68 _rao = 0.0; 69 _dc = 0.0; 70 _dcRed = 0.0; 71 _offset = 0.0; 72 _nr = 0; 73 _nc = 0; 68 _rao.ReSize(3); _rao = 0.0; 69 _rao3DRMS = 0.0; 70 _dcRMS = 0.0; 71 _dcRedRMS = 0.0; 72 _dcRedMean = 0.0; 73 _dcRedSig = 0.0; 74 _offset = 0.0; 75 _nr = 0; 76 _nc = 0; 74 77 } 75 78 ColumnVector _rao; 76 double _dc; 77 double _dcRed; 79 double _rao3DRMS; 80 double _dcRMS; 81 double _dcRedRMS; 82 double _dcRedMean; 83 double _dcRedSig; 78 84 double _offset; 79 85 int _nr;
Note:
See TracChangeset
for help on using the changeset viewer.