Changeset 11102 in ntrip


Ignore:
Timestamp:
Oct 21, 2026, 1:56:26 AM (10 hours ago)
Author:
stuerze
Message:

minor changes

Location:
trunk/BNC
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/CHANGELOG.md

    r11099 r11102  
    1414- CHANGED: Combination: an AC excluded from the clock datum because of inconsistent code biases is used again only after 12 passing checks in a row (1 hour), not after the first one (a borderline AC changed the clock datum every 5 minutes)
    1515- ADDED: Combination of APC (SSRA) and CoM (SSRC) streams together: with an ANTEX file the combination is done in the CoM frame, the orbits of the APC streams are converted to CoM; ACs not combined because of a different reference point are reported
    16 - ADDED: Option 'Reference Signals' (key ssrRefSignals): reference signals of the satellite clocks per GNSS for the combination (AC clock referral, code biases from the Bias SINEX file) and the SSR QC, default IGS Real-Time convention G:1W&2W R:1P&2P E:1C&5Q C:2I&6I J:1C&2L S:1C&5Q, e.g. for a switch of BDS to C1P/C5P or of QZSS to L1/L5
     16- ADDED: Option 'Reference Signals' (key ssrRefSignals): reference signals of the satellite clocks per GNSS for the combination (AC clock referral, code biases from the Bias SINEX file) and the SSR QC, default IGS Real-Time convention G:1W&2W R:1P&2P E:1C&5Q C:2I&6I J:1C&2L S:1C&5Q, e.g. for a switch of BDS to C1X/C5X or of QZSS to L1/L5
    1717- ADDED: Detection and conversion of outdated or erroneous IGS-SSR epoch time encodings (GLONASS as UTC seconds of day or of week, BDS as BDT) with an hourly warning, and a plausibility check of the orbit/clock epochs of all systems of a stream
    1818- ADDED: ANTEX file name, number of entries and latest satellite entry are logged; satellites without a valid ANTEX entry are reported (and not combined)
  • trunk/BNC/src/bncantex.cpp

    r11079 r11102  
    523523// simple sz×xSun formula.
    524524////////////////////////////////////////////////////////////////////////////
     525// GPS block types with a yaw model in gpsYawAngle() (ANTEX "BLOCK ..." names);
     526// other blocks (e.g. a future IIIF) use the nominal Sun-pointing yaw
     527////////////////////////////////////////////////////////////////////////////
     528bool bncAntex::gpsYawModelKnown(const QString& blockType) {
     529  return blockType == "IIA" || blockType.startsWith("IIR") ||
     530         blockType == "IIF" || blockType == "IIIA";
     531}
     532
    525533double bncAntex::gpsYawAngle(const QString& prn, const QString& blockType,
    526534                              double Mjd,
    … …  
    531539  // Max yaw rate [rad/s] by GPS block type
    532540  double psiDotMax;
    533   if      (blockType == "IIA")   psiDotMax = 0.12 * M_PI / 180.0;
    534   else if (blockType == "IIR")   psiDotMax = 0.20 * M_PI / 180.0;
    535   else if (blockType == "IIR-M") psiDotMax = 0.20 * M_PI / 180.0;
    536   else if (blockType == "IIF")   psiDotMax = 0.11 * M_PI / 180.0;
    537   else if (blockType == "IIIA")  psiDotMax = 0.15 * M_PI / 180.0;
    538   else return 0.0; // unknown block: caller uses simple Sun-pointing
     541  if      (blockType == "IIA")         psiDotMax = 0.12 * M_PI / 180.0;
     542  else if (blockType.startsWith("IIR")) psiDotMax = 0.20 * M_PI / 180.0; // IIR-A, IIR-B, IIR-M
     543  else if (blockType == "IIF")         psiDotMax = 0.11 * M_PI / 180.0;
     544  else if (blockType == "IIIA")        psiDotMax = 0.15 * M_PI / 180.0;
     545  else return 0.0; // unknown block: not called, see gpsYawModelKnown()
    539546
    540547  const double MAX_CALL_GAP = 1800.0 / 86400.0; // 30 min in days
    … …  
    844851      }
    845852      else if (mode == ATT_COMPUTED && prn[0] == 'G' && vSat.size() == 3
    846                && !map->blockType.isEmpty()) {
     853               && gpsYawModelKnown(map->blockType)) {
    847854        psiEff = gpsYawAngle(yawKey, map->blockType, Mjd, xSat, vSat, xSun);
    848855        useVelocityFrame = true;
  • trunk/BNC/src/bncantex.h

    r11079 r11102  
    145145                          const ColumnVector& vSat, const ColumnVector& xSun);
    146146
     147  static bool gpsYawModelKnown(const QString& blockType);
    147148  double gpsYawAngle(const QString& prn, const QString& blockType, double Mjd,
    148149                     const ColumnVector& xSat, const ColumnVector& vSat,
  • trunk/BNC/src/bnchelp.html

    r11100 r11102  
    50285028    Antenna IOD is GNSS-specific, so the same Metadata entries serve as the trust anchor for every GNSS. In
    50295029    addition, since a Satellite Antenna IOD is only guaranteed unique within a rolling 64-day period, BNC discards
    5030     any Satellite Antenna correction that is 64 days or older, even if its IOD would otherwise still match, and
    5031     falls back to using ANTEX-based satellite antenna corrections instead.
     5030    any Satellite Antenna correction that is 64 days or older, even if its IOD would otherwise still match. If the
     5031    referenced Satellite Antenna information is not available or not trusted for a satellite, the satellite is
     5032    excluded. ANTEX is never used for the satellite antenna with new RTCM-SSR: without a Metadata reference, no
     5033    satellite antenna correction is applied at all, because orbits, clocks and biases refer to the provider's point
     5034    on the nadir axis and form a consistent set. The receiver antenna is corrected with ANTEX as usual.
    50325035  </p>
    50335036  <p>
    … …  
    85308533  <p>
    85318534    Specify the reference signals of the satellite clocks per GNSS as '&lt;system&gt;:&lt;band&gt;&lt;attribute&gt;&amp;&lt;band&gt;&lt;attribute&gt;',
    8532     separated by blanks, e.g. 'C:1P&amp;5P J:1C&amp;5Q'. The clocks refer to the ionosphere-free linear combination of
     8535    separated by blanks, e.g. 'C:1X&amp;5X J:1C&amp;5Q'. The clocks refer to the ionosphere-free linear combination of
    85338536    the code signals of these two signals. Systems not specified keep the default of the IGS Real-Time Committee:
    85348537  </p>
    … …  
    85538556  <p>
    85548557    Changing the reference signals is meant for a coordinated switch of the IGS Real-Time convention, e.g. for BDS from
    8555     C2I/C6I to C1P/C5P (B1C/B2a) following the IGS products, or for QZSS to an L1/L5 pair because the QZSS Block III
     8558    C2I/C6I to C1X/C5X (B1C/B2a data+pilot) following the IGS products - note that IGS-SSR cannot carry the BDS signals 1X/5X (signal IDs reserved), so that ACs would have to provide them in RTCM-SSR -, or for QZSS to an L1/L5 pair because the QZSS Block III
    85568559    satellites no longer transmit L2. All ACs of a combination should then provide the code biases of the new reference
    85578560    signals. A switch changes the combined clocks of the affected satellites by the ionosphere-free combination of the
Note: See TracChangeset for help on using the changeset viewer.