Changeset 8619 in ntrip
- Timestamp:
- Feb 28, 2019, 2:49:35 PM (6 years ago)
- Location:
- trunk/BNC/src
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/PPP/pppSatObs.cpp
r8495 r8619 62 62 // ------------------------------------------ 63 63 const string preferredAttrib = "CWPXI_"; 64 //const string preferredAttrib = "G:12&PWCSLXYN G:5&IQX R:12&PC R:3&IQX E:16&BCX E:578&IQX J:1&SLXCZ J:26&SLX J:5&IQX C:IQX I:ABCX S:1&C S:5&IQX"; 64 65 65 66 for (unsigned iFreq = 1; iFreq < t_frequency::max; iFreq++) { … … 106 107 // Compute Satellite Coordinates at Time of Transmission 107 108 // ----------------------------------------------------- 108 _xcSat.ReSize( 7); _xcSat = 0.0;109 _xcSat.ReSize(6); _xcSat = 0.0; 109 110 _vvSat.ReSize(3); _vvSat = 0.0; 110 111 bool totOK = false; 111 ColumnVector satPosOld( 7); satPosOld = 0.0;112 ColumnVector satPosOld(6); satPosOld = 0.0; 112 113 t_lc::type tLC = isValid(t_lc::cIF) ? t_lc::cIF : t_lc::c1; 113 114 double prange = obsValue(tLC); … … 328 329 _model._rho = rhoV.norm_Frobenius(); 329 330 331 ColumnVector vSat = _vvSat; 332 330 333 ColumnVector neu(3); 331 334 xyz2neu(station->ellApr().data(), rhoV.data(), neu.data()); … … 371 374 // ------------------ 372 375 _model._tropo = t_tropo::delay_saast(station->xyzApr(), _model._eleSat); 373 374 // Phase Wind-Up375 // -------------376 _model._windUp = station->windUp(_time, _prn, rSat);377 376 378 377 // Code Biases … … 393 392 // Phase Biases 394 393 // ----------- 395 // TODO: consideration of fix indicators , yaw angleand jump counter394 // TODO: consideration of fix indicators and jump counter 396 395 const t_satPhaseBias* satPhaseBias = PPP_CLIENT->obsPool()->satPhaseBias(_prn); 396 double yaw = 0.0; 397 bool ssr = false; 397 398 if (satPhaseBias) { 399 yaw = satPhaseBias->_yaw; 400 ssr = true; 398 401 for (unsigned ii = 0; ii < satPhaseBias->_bias.size(); ii++) { 399 402 const t_frqPhaseBias& bias = satPhaseBias->_bias[ii]; … … 407 410 } 408 411 412 // Phase Wind-Up 413 // ------------- 414 _model._windUp = station->windUp(_time, _prn, rSat, ssr, yaw, vSat) ; 415 416 409 417 // Tidal Correction 410 418 // ---------------- … … 428 436 } 429 437 } 438 439 // Relativistic effect due to earth gravity 440 // ---------------------------------------- 441 // TODO 430 442 431 443 // Ocean Loading -
trunk/BNC/src/PPP/pppSatObs.h
r7836 r8619 90 90 _tide = 0.0; 91 91 _windUp = 0.0; 92 _rel = 0.0; 92 93 for (unsigned ii = 0; ii < t_frequency::max; ii++) { 93 94 _antPCO[ii] = 0.0; … … 108 109 double _tide; 109 110 double _windUp; 111 double _rel; 110 112 double _antPCO[t_frequency::max]; 111 113 double _codeBias[t_frequency::max]; -
trunk/BNC/src/PPP/pppStation.cpp
r7250 r8619 11 11 * Created: 29-Jul-2014 12 12 * 13 * Changes: 13 * Changes: 14 14 * 15 15 * -----------------------------------------------------------------------*/ … … 37 37 } 38 38 39 // 39 // 40 40 ////////////////////////////////////////////////////////////////////////////// 41 41 void t_pppStation::setXyzApr(const ColumnVector& xyzApr) { … … 45 45 } 46 46 47 // 47 // 48 48 ////////////////////////////////////////////////////////////////////////////// 49 49 void t_pppStation::setNeuEcc(const ColumnVector& neuEcc) { … … 53 53 } 54 54 55 // 55 // 56 56 ////////////////////////////////////////////////////////////////////////////// 57 double t_pppStation::windUp(const bncTime& time, t_prn prn, 58 const ColumnVector& rSat) const { 59 return _windUp->value(time, _xyzApr, prn, rSat); 57 double t_pppStation::windUp(const bncTime& time, t_prn prn, 58 const ColumnVector& rSat, bool ssr, double yaw, 59 const ColumnVector& vSat) const { 60 return _windUp->value(time, _xyzApr, prn, rSat, ssr, yaw, vSat); 60 61 } 61 62 -
trunk/BNC/src/PPP/pppStation.h
r7250 r8619 31 31 const ColumnVector& tideDspl() const {return _tideDspl;} 32 32 double dClk() const {return _dClk;} 33 double windUp(const bncTime& time, t_prn prn, const ColumnVector& rSat) const; 33 double windUp(const bncTime& time, t_prn prn, const ColumnVector& rSat, bool ssr, 34 double yaw, const ColumnVector& vSat) const; 34 35 double stec(const t_vTec* vTec, const double signalPropagationTime, const ColumnVector& rSat) const; 35 36 -
trunk/BNC/src/pppModel.cpp
r8204 r8619 369 369 /////////////////////////////////////////////////////////////////////////// 370 370 double t_windUp::value(const bncTime& etime, const ColumnVector& rRec, 371 t_prn prn, const ColumnVector& rSat) { 371 t_prn prn, const ColumnVector& rSat, bool ssr, 372 double yaw, const ColumnVector& vSat) { 372 373 373 374 if (etime.mjddec() != lastEtime[prn.toInt()]) { … … 380 381 // GPS Satellite unit Vectors sz, sy, sx 381 382 // ------------------------------------- 383 ColumnVector sHlp; 384 if (!ssr) { 385 sHlp = t_astro::Sun(etime.mjddec()); 386 } 387 else { 388 ColumnVector Omega(3); 389 Omega[0] = 0.0; 390 Omega[1] = 0.0; 391 Omega[2] = t_CST::omega; 392 sHlp = vSat + crossproduct(Omega, rSat); 393 } 394 sHlp /= sHlp.norm_Frobenius(); 395 382 396 ColumnVector sz = -rSat / rSat.norm_Frobenius(); 383 384 ColumnVector xSun = t_astro::Sun(etime.mjddec()); 385 xSun /= xSun.norm_Frobenius(); 386 387 ColumnVector sy = crossproduct(sz, xSun); 397 ColumnVector sy = crossproduct(sz, sHlp); 388 398 ColumnVector sx = crossproduct(sy, sz); 399 400 // Yaw consideration 401 sx = t_astro::rotZ(yaw) * sx; 389 402 390 403 // Effective Dipole of the GPS Satellite Antenna 391 404 // --------------------------------------------- 392 ColumnVector dipSat = sx - rho * DotProduct(rho,sx) 393 - crossproduct(rho, sy); 405 ColumnVector dipSat = sx - rho * DotProduct(rho,sx) - crossproduct(rho, sy); 394 406 395 407 // Receiver unit Vectors rx, ry … … 397 409 ColumnVector rx(3); 398 410 ColumnVector ry(3); 399 400 411 double recEll[3]; xyz2ell(rRec.data(), recEll) ; 401 412 double neu[3]; … … 413 424 // Effective Dipole of the Receiver Antenna 414 425 // ---------------------------------------- 415 ColumnVector dipRec = rx - rho * DotProduct(rho,rx) 416 + crossproduct(rho, ry); 426 ColumnVector dipRec = rx - rho * DotProduct(rho,rx) + crossproduct(rho, ry); 417 427 418 428 // Resulting Effect … … 420 430 double alpha = DotProduct(dipSat,dipRec) / 421 431 (dipSat.norm_Frobenius() * dipRec.norm_Frobenius()); 422 432 /* 423 433 if (alpha > 1.0) alpha = 1.0; 424 434 if (alpha < -1.0) alpha = -1.0; 425 435 */ 426 436 double dphi = acos(alpha) / 2.0 / M_PI; // in cycles 427 437 -
trunk/BNC/src/pppModel.h
r7998 r8619 71 71 ~t_windUp() {}; 72 72 double value(const bncTime& etime, const ColumnVector& rRec, t_prn prn, 73 const ColumnVector& rSat); 73 const ColumnVector& rSat, bool ssr, double yaw, 74 const ColumnVector& vSat); 74 75 private: 75 76 double lastEtime[t_prn::MAXPRN+1];
Note:
See TracChangeset
for help on using the changeset viewer.