Changeset 11057 in ntrip for trunk/BNC/src/rinex/reqcanalyze.cpp
- Timestamp:
- Sep 30, 2026, 11:30:26 AM (6 days ago)
- File:
-
- 1 edited
-
trunk/BNC/src/rinex/reqcanalyze.cpp (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/rinex/reqcanalyze.cpp
r11023 r11057 131 131 // ---------------- 132 132 t_reqcEdit::readEphemerides(_navFileNames, _ephs, _logStream, _checkEph); 133 t_reqcEdit::indexEphemerides(_ephs, _ephsByPrn); 133 134 134 135 // Loop over all RINEX Files … … 207 208 continue; 208 209 } 210 // observations of unhealthy satellites are excluded, as those 211 // below the elevation mask (see also setExpectedObs) 212 if (_navFileNames.size() && unhealthyAt(rnxSat.prn, _currEpo->tt)) { 213 continue; 214 } 209 215 t_satObs satObs; 210 216 t_rnxObsFile::setObsFromRnx(obsFile, _currEpo, rnxSat, satObs); … … 266 272 } 267 273 268 t_eph* eph = 0; 269 for (int ie = 0; ie < _ephs.size(); ie++) { 270 if (_ephs[ie]->prn() == prn) { 271 eph = _ephs[ie]; 272 break; 273 } 274 } 274 if (unhealthyAt(prn, _currEpo->tt)) { 275 continue; 276 } 277 t_eph* eph = ephForTime(prn, _currEpo->tt); 275 278 if (eph) { 276 279 ColumnVector xSat(6); … … 328 331 t_qcSat& qcSat) { 329 332 330 t_eph* eph = 0; 331 for (int ie = 0; ie < _ephs.size(); ie++) { 332 if (_ephs[ie]->prn() == satObs._prn) { 333 eph = _ephs[ie]; 334 break; 335 } 336 } 333 t_eph* eph = ephForTime(satObs._prn, epoTime); 337 334 if (eph) { 338 335 ColumnVector xc(6); … … 976 973 double interval, const ColumnVector& xyzSta) { 977 974 for(QMap<t_prn, int>::iterator it = _numExpObs.begin(); it != _numExpObs.end(); it++) { 978 t_eph* eph = 0;975 bool navAvail = false; 979 976 for (int ie = 0; ie < _ephs.size(); ie++) { 980 977 if (_ephs[ie]->prn() == it.key()) { 981 eph = _ephs[ie];978 navAvail = true; 982 979 break; 983 980 } 984 981 } 985 if ( eph) {982 if (navAvail) { 986 983 int numExpObs = 0; 987 984 bncTime epoTime; 988 985 for (epoTime = startTime - interval; epoTime < endTime; epoTime = epoTime + interval) { 986 // an observation is only expected if a valid ephemeris exists, 987 // the satellite is healthy (unhealthy satellite-epochs are also 988 // excluded from the observations, see analyzeFile) and above 989 // the elevation mask 990 if (unhealthyAt(it.key(), epoTime)) { 991 continue; 992 } 993 t_eph* eph = ephForTime(it.key(), epoTime, true); 994 if (!eph) { 995 continue; 996 } 989 997 ColumnVector xc(6); 990 998 ColumnVector vv(3); … … 1007 1015 } 1008 1016 } 1017 1018 // A satellite is considered unhealthy at epoch tt if the valid navigation 1019 // data set closest to tt is flagged unhealthy. Its orbit is not used then 1020 // (the geometry may be erroneous) and its observations are excluded. 1021 //////////////////////////////////////////////////////////////////////////// 1022 bool t_reqcAnalyze::unhealthyAt(const t_prn& prn, const bncTime& tt) const { 1023 t_eph* eph = ephForTime(prn, tt, true, true); 1024 return eph && eph->checkState() == t_eph::unhealthy; 1025 } 1026 1027 // Ephemeris of the given satellite for epoch tt, see t_reqcEdit::ephForTime 1028 //////////////////////////////////////////////////////////////////////////// 1029 t_eph* t_reqcAnalyze::ephForTime(const t_prn& prn, const bncTime& tt, 1030 bool validOnly, bool allowUnhealthy) const { 1031 return t_reqcEdit::ephForTime(_ephsByPrn.value(prn), prn, tt, validOnly, allowUnhealthy); 1032 }
Note:
See TracChangeset
for help on using the changeset viewer.
