- Timestamp:
- Sep 9, 2015, 3:01:54 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/PPP/pppClient.cpp
r7254 r7271 11 11 * Created: 29-Jul-2014 12 12 * 13 * Changes: 13 * Changes: 14 14 * 15 15 * -----------------------------------------------------------------------*/ … … 81 81 } 82 82 83 // 83 // 84 84 ////////////////////////////////////////////////////////////////////////////// 85 85 void t_pppClient::putEphemeris(const t_eph* eph) { … … 87 87 const t_ephGlo* ephGlo = dynamic_cast<const t_ephGlo*>(eph); 88 88 const t_ephGal* ephGal = dynamic_cast<const t_ephGal*>(eph); 89 const t_ephBDS* ephBDS = dynamic_cast<const t_ephBDS*>(eph); 89 90 if (ephGPS) { 90 91 _ephPool->putEphemeris(new t_ephGPS(*ephGPS)); … … 96 97 _ephPool->putEphemeris(new t_ephGal(*ephGal)); 97 98 } 99 else if (ephBDS) { 100 _ephPool->putEphemeris(new t_ephBDS(*ephBDS)); 101 } 98 102 } 99 103 … … 104 108 } 105 109 106 // 110 // 107 111 ////////////////////////////////////////////////////////////////////////////// 108 112 void t_pppClient::putOrbCorrections(const vector<t_orbCorr*>& corr) { … … 112 116 } 113 117 114 // 118 // 115 119 ////////////////////////////////////////////////////////////////////////////// 116 120 void t_pppClient::putClkCorrections(const vector<t_clkCorr*>& corr) { … … 120 124 } 121 125 122 // 126 // 123 127 ////////////////////////////////////////////////////////////////////////////// 124 128 void t_pppClient::putCodeBiases(const vector<t_satCodeBias*>& biases) { … … 132 136 t_irc t_pppClient::prepareObs(const vector<t_satObs*>& satObs, 133 137 vector<t_pppSatObs*>& obsVector, bncTime& epoTime) { 134 // Default 138 // Default 135 139 // ------- 136 140 epoTime.reset(); … … 179 183 // Compute the Bancroft position, check for blunders 180 184 ////////////////////////////////////////////////////////////////////////////// 181 t_irc t_pppClient::cmpBancroft(const bncTime& epoTime, 185 t_irc t_pppClient::cmpBancroft(const bncTime& epoTime, 182 186 vector<t_pppSatObs*>& obsVector, 183 187 ColumnVector& xyzc, bool print) { … … 195 199 } 196 200 if ( satObs->isValid(tLC) && (!satObs->modelSet() || satObs->eleSat() >= OPT->_minEle) ) { 197 ++iObs; 201 ++iObs; 198 202 BB[iObs][0] = satObs->xc()[0]; 199 203 BB[iObs][1] = satObs->xc()[1]; … … 222 226 (!satObs->modelSet() || satObs->eleSat() >= OPT->_minEle) ) { 223 227 ColumnVector rr = satObs->xc().Rows(1,3) - xyzc.Rows(1,3); 224 double res = rr.norm_Frobenius() - satObs->obsValue(tLC) 228 double res = rr.norm_Frobenius() - satObs->obsValue(tLC) 225 229 - (satObs->xc()[3] - xyzc[3]) * t_CST::c; 226 230 if (fabs(res) > maxRes) { … … 307 311 } 308 312 309 // 313 // 310 314 ////////////////////////////////////////////////////////////////////////////// 311 315 void t_pppClient::initOutput(t_output* output) { … … 316 320 } 317 321 318 // 322 // 319 323 ////////////////////////////////////////////////////////////////////////////// 320 324 void t_pppClient::clearObs() { … … 325 329 } 326 330 327 // 331 // 328 332 ////////////////////////////////////////////////////////////////////////////// 329 333 void t_pppClient::finish(t_irc irc) { … … 357 361 } 358 362 359 // 363 // 360 364 ////////////////////////////////////////////////////////////////////////////// 361 365 t_irc t_pppClient::cmpModel(t_pppStation* station, const ColumnVector& xyzc, … … 381 385 // ----- 382 386 station->setTideDspl( _tides->displacement(time, station->xyzApr()) ); 383 387 384 388 // Ionosphere 385 389 // ---------- … … 409 413 } 410 414 411 // 415 // 412 416 ////////////////////////////////////////////////////////////////////////////// 413 417 void t_pppClient::processEpoch(const vector<t_satObs*>& satObs, t_output* output) { … … 417 421 418 422 // Prepare Observations of the Rover 419 // --------------------------------- 423 // --------------------------------- 420 424 if (prepareObs(satObs, _obsRover, _epoTimeRover) != success) { 421 425 return finish(failure); … … 425 429 if (!_epoTimeRover.undef()) LOG << string(_epoTimeRover); 426 430 LOG << "\n--------------------------------------\n"; 427 431 428 432 for (int iter = 1; iter <= 2; iter++) { 429 433 ColumnVector xyzc(4); xyzc = 0.0; … … 440 444 441 445 // Store last epoch of data 442 // ------------------------ 446 // ------------------------ 443 447 _obsPool->putEpoch(_epoTimeRover, _obsRover); 444 448 … … 469 473 } 470 474 471 // 475 // 472 476 //////////////////////////////////////////////////////////////////////////// 473 477 double lorentz(const ColumnVector& aa, const ColumnVector& bb) { … … 475 479 } 476 480 477 // 481 // 478 482 //////////////////////////////////////////////////////////////////////////// 479 483 void t_pppClient::bancroft(const Matrix& BBpass, ColumnVector& pos) { … … 493 497 if (iter > 1) { 494 498 double zz = BB(ii,3); 495 double rho = sqrt( (xx-pos(1)) * (xx-pos(1)) + 496 (yy-pos(2)) * (yy-pos(2)) + 499 double rho = sqrt( (xx-pos(1)) * (xx-pos(1)) + 500 (yy-pos(2)) * (yy-pos(2)) + 497 501 (zz-pos(3)) * (zz-pos(3)) ); 498 502 traveltime = rho / t_CST::c; … … 504 508 BB(ii,2) = -sina * xx + cosa * yy; 505 509 } 506 510 507 511 Matrix BBB; 508 512 if (mm > 4) { … … 516 520 ColumnVector alpha(mm); alpha = 0.0; 517 521 for (int ii = 1; ii <= mm; ii++) { 518 alpha(ii) = lorentz(BB.Row(ii).t(),BB.Row(ii).t())/2.0; 522 alpha(ii) = lorentz(BB.Row(ii).t(),BB.Row(ii).t())/2.0; 519 523 } 520 524 ColumnVector BBBe = BBB * ee; … … 525 529 double root = sqrt(bb*bb-aa*cc); 526 530 527 Matrix hlpPos(4,2); 531 Matrix hlpPos(4,2); 528 532 hlpPos.Column(1) = (-bb-root)/aa * BBBe + BBBalpha; 529 533 hlpPos.Column(2) = (-bb+root)/aa * BBBe + BBBalpha; … … 532 536 for (int pp = 1; pp <= 2; pp++) { 533 537 hlpPos(4,pp) = -hlpPos(4,pp); 534 omc(pp) = BB(1,4) - 538 omc(pp) = BB(1,4) - 535 539 sqrt( (BB(1,1)-hlpPos(1,pp)) * (BB(1,1)-hlpPos(1,pp)) + 536 540 (BB(1,2)-hlpPos(2,pp)) * (BB(1,2)-hlpPos(2,pp)) + 537 (BB(1,3)-hlpPos(3,pp)) * (BB(1,3)-hlpPos(3,pp)) ) - 541 (BB(1,3)-hlpPos(3,pp)) * (BB(1,3)-hlpPos(3,pp)) ) - 538 542 hlpPos(4,pp); 539 543 }
Note:
See TracChangeset
for help on using the changeset viewer.