Changeset 11009 in ntrip for trunk/BNC/src/PPP
- Timestamp:
- Sep 9, 2026, 12:08:46 PM (6 weeks ago)
- Location:
- trunk/BNC/src/PPP
- Files:
-
- 4 edited
-
pppClient.cpp (modified) (2 diffs)
-
pppClient.h (modified) (1 diff)
-
pppObsPool.cpp (modified) (3 diffs)
-
pppObsPool.h (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/PPP/pppClient.cpp
r10952 r11009 112 112 void t_pppClient::putTec(const t_vTec* vTec) { 113 113 _obsPool->putTec(new t_vTec(*vTec)); 114 } 115 116 // 117 ////////////////////////////////////////////////////////////////////////////// 118 void t_pppClient::putMetaData(const t_metaData* metaData) { 119 _obsPool->putMetaData(new t_metaData(*metaData)); 114 120 } 115 121 … … 457 463 // Tides 458 464 // ----- 459 station->setTideDsplEarth(_tides->earth(time, station->xyzApr())); 465 // SSR Metadata (model correction type 3 = solid earth tides) tells us 466 // whether - and with which model - the correction stream's generation 467 // system already accounted for solid earth tides. To stay consistent with 468 // the orbit/clock corrections, mirror that choice here: skip our own 469 // correction if the provider applied none, apply our default model if the 470 // provider used its own default, and fall back to our default (with a 471 // warning) if the provider used some other, unsupported model - we have no 472 // way to reproduce an unknown model exactly. Absent any Metadata message 473 // (e.g. RTNET or older streams), keep today's unconditional behavior. 474 bool applyEarthTide = true; 475 const t_metaData* metaData = _obsPool->metaData(); 476 if (metaData) { 477 for (unsigned ii = 0; ii < metaData->_entries.size(); ii++) { 478 const t_metaDataEntry& entry = metaData->_entries[ii]; 479 if (entry._typeIndicator == 3) { // solid earth tides 480 if (!entry._applicationIndicator) { 481 applyEarthTide = false; 482 } 483 else if (entry._nonDefaultIndicator) { 484 LOG << "WARNING: SSR Metadata signals a non-default solid earth " 485 << "tide model (identifier " << entry._nonDefaultIdentifier 486 << "); applying BNC's default model anyway, results may be " 487 << "inconsistent" << endl; 488 } 489 break; 490 } 491 } 492 } 493 if (applyEarthTide) { 494 station->setTideDsplEarth(_tides->earth(time, station->xyzApr())); 495 } 496 else { 497 ColumnVector tideDsplEarth(3); tideDsplEarth = 0.0; 498 station->setTideDsplEarth(tideDsplEarth); 499 } 460 500 station->setTideDsplOcean(_tides->ocean(time, station->xyzApr(), station->name())); 461 501 -
trunk/BNC/src/PPP/pppClient.h
r10938 r11009 28 28 void putEphemeris(const t_eph* eph); 29 29 void putTec(const t_vTec* vTec); 30 void putMetaData(const t_metaData* metaData); 30 31 void putOrbCorrections(const std::vector<t_orbCorr*>& corr); 31 32 void putClkCorrections(const std::vector<t_clkCorr*>& corr); -
trunk/BNC/src/PPP/pppObsPool.cpp
r10791 r11009 52 52 } 53 53 _vTec = 0; 54 _metaData = 0; 54 55 } 55 56 … … 64 65 } 65 66 delete _vTec; 67 delete _metaData; 66 68 while (_epochs.size() > 0) { 67 69 delete _epochs.front(); … … 144 146 // 145 147 ///////////////////////////////////////////////////////////////////////////// 148 void t_pppObsPool::putMetaData(t_metaData* metaData) { 149 delete _metaData; 150 _metaData = new t_metaData(*metaData); 151 delete metaData; 152 } 153 154 // 155 ///////////////////////////////////////////////////////////////////////////// 146 156 void t_pppObsPool::putEpoch(const bncTime& epoTime, vector<t_pppSatObs*>& obsVector, 147 157 bool pseudoObsIono) { -
trunk/BNC/src/PPP/pppObsPool.h
r10791 r11009 33 33 void putPhaseBias(t_satPhaseBias* satPhaseBias); 34 34 void putTec(t_vTec* _vTec); 35 void putMetaData(t_metaData* metaData); 35 36 void clearCodeBiases(char sys); 36 37 void clearPhaseBiases(char sys); … … 46 47 } 47 48 const t_vTec* vTec() const {return _vTec;} 49 const t_metaData* metaData() const {return _metaData;} 48 50 49 51 t_epoch* lastEpoch() { … … 60 62 t_satPhaseBias* _satPhaseBiases[t_prn::MAXPRN+1]; 61 63 t_vTec* _vTec; 64 t_metaData* _metaData; 62 65 std::deque<t_epoch*> _epochs; 63 66 };
Note:
See TracChangeset
for help on using the changeset viewer.
