Ephemeridenzeit und Uhrkorrekturen in RINEX-Navigationsdateien

RINEX (Receiver INdependent EXchange Format) ist eine Reihe von Dateiformaten zur Verteilung von Daten von Satellitennavigationssystemen, einschließlich GNSS. Einer dieser Standards, Navigationsdateien, liefert Positionsinformationen über Satelliten.

Der Standard unterscheidet sich für verschiedene Satellitennavigationssysteme, kann aber grob in zwei Typen eingeteilt werden: diejenigen, die Zustandsvektoren als Orbitalelemente bereitstellen, und diejenigen, die Zustandsvektoren als kartesische Koordinaten (in einem ECEF-Rahmen) bereitstellen. Als Repräsentanten jeder Klasse sind die RINEX-Navigationsdateien für GPS vom Orbitalelementtyp, während die für GLONASS vom kartesischen Koordinatentyp sind.

Ich versuche derzeit, die in solchen RINEX-Navigationsdateien bereitgestellten Zustandsvektoren als Ausgangspunkt für die Ausbreitung mit einem hochpräzisen numerischen Propagator zu verwenden. Um eine solche Operation durchzuführen, glaube ich jedoch, dass es entscheidend ist, genau zu wissen, auf welchen Zeitpunkt sich die bereitgestellten Zustandsvektoren beziehen.

Mehrere Zeitparameter werden in RINEX-Navigationsdateien bereitgestellt, wie beispielsweise hier beschrieben , und auf interaktivere Weise hier für GPS-Dateien und hier für GLONASS-Dateien .

Meine Frage ist, wie können wir aus den verschiedenen angegebenen Zeitparametern die Zeit erhalten, der die Zustandsvektoren so genau wie möglich entsprechen?

Ich hinterlasse unten eine Zusammenfassung dessen, was ich bisher ausgearbeitet habe, aufgeteilt in GPS- und GLONASS-Abschnitte.

GPS

Das Format wird in den Tabellen A3 und A4 des Anhangs dieses Dokuments beschrieben , mit einem Beispiel in Tabelle A8 desselben Anhangs.

Die erste Zeile jeder Nachricht enthält Felder für Jahr, Monat, Tag, Stunde, Minute und Sekunde der Epoche. Allerdings bin ich mir bei folgenden Punkten in Bezug auf solche Epochenfelder unsicher:

  • In welchem ​​Zeitsystem liegen sie genau?
  • Solche Epochenfelder beziehen sich auf den Zeitpunkt der Übertragung der Nachricht oder auf den Zeitpunkt, dem der bereitgestellte Zustandsvektor entspricht?

Der Header enthält eine Reihe von Parametern mit der Bezeichnung Delta-UTC, die anscheinend verwendet werden können, um "Zeit in UTC zu berechnen", genannt A0, A1, Referenzzeit und Wochennummer. Die Umrechnungsformel scheint gemäß Abschnitt 5.4.1 dieses Dokuments und Abschnitt 8.2 dieses Dokuments zu sein :

T U T C = T S v A F 0 A F 1 ( T S v T Ö C ) A 0 Δ T L S

Wo T U T C ist die Zeit in UTC, T S v ist "Raumfahrzeugzeit" und T Ö C ist "Satellitenzeit der Uhr".

Dazu bin ich mir bei folgendem unsicher:

  • Was genau sind T S v Und T Ö C ?
  • Sind die A F 0 Und A F 1 Parameter der Clock-Bias und Clock-Drift, die in der ersten Zeile jeder Nachricht enthalten sind?
  • Könnte die Formel um einen quadratischen Term erweitert werden, so etwas wie A F 2 ( T S v T Ö C ) 2 , Wo A F 2 wäre die Driftrate der Uhr auch in der ersten Zeile jeder Nachricht enthalten?
  • Die im Header angegebenen Parameter A1, Referenzzeit und Wochennummer scheinen nicht zur Berechnung der UTC-Zeit verwendet zu werden. Was ist der Zweck dieser Parameter?
  • Was ist der Δ T L S Parameter, und wie kann er berechnet werden?
  • Enthält die obige Formel relativistische Korrekturen, von denen ich annehme, dass sie eingeführt werden sollten, um die UTC-Zeit aus der Zeit zu erhalten, die von den internen Uhren der Satelliten gemeldet wird?

Die Nachrichten enthalten auch Felder für "Ephemeridenzeit" (erstes Feld der 4. Nachrichtenzeile) und "Übertragungszeit" (erstes Feld der 8. Nachrichtenzeile), beide in Einheiten von "Sekunden der GPS-Woche".

  • Wie hängen diese Parameter mit den Epochenfeldern zusammen, die in der ersten Zeile jeder Nachricht angegeben sind?

Schließlich ist das 3. Feld der 6. Nachrichtenzeile "GPS-Wochennummer". Ich neige zu der Annahme, dass dieser Wert möglicherweise mit dem Feld "Ephemeridenzeit" kombiniert werden könnte, um die Epochenzeit für die gemeldeten Ephemeriden zu erhalten.

  • Ist diese Deutung richtig?
  • Wenn dies der Fall ist, müsste das resultierende Paar aus GPS-Wochennummer und Sekunden der aktuellen GPS-Woche in UTC-Zeit konvertiert werden. Kann mir jemand eine Quelle nennen, die beschreibt, wie man das richtig macht?
  • Wie würde sich die resultierende Zeit bei einer Konvertierung in UTC-Zeit von der Epoche unterscheiden, die in der ersten Zeile jeder Nachricht angegeben ist?

GLONASS

Das Format wird in den Tabellen A10 und A11 des Anhangs dieses Dokuments beschrieben , mit einem Beispiel in Tabelle A12 desselben Anhangs.

Die Situation für GLONASS-Nachrichten scheint etwas anders zu sein. Der Header (der für alle in der Datei enthaltenen Nachrichten gültig ist, die von verschiedenen Satelliten in der Konstellation kommen können und tatsächlich gewöhnlich zu sein scheinen) enthält einen Satz von Parametern, die als "CORR TO SYSTEM TIME" bezeichnet sind. Diese sind:

  • Bezugsjahr
  • Bezugsmonat
  • Referenztag
  • Korrektur der Systemzeit

Diese Parameter werden zur Durchführung einer „Korrektur der Systemzeitskala zur Korrektur der GLONASS-Systemzeit auf UTC“ beschrieben, indem die in Abschnitt 5.4.2 dieses Dokuments und Abschnitt 8.2 dieses Dokuments beschriebene Formel angewendet wird

T U T C = T S v + T A u N G A M M A N ( T S v T B ) + T A u C

Der T A u N Und G A M M A N Parameter scheinen in der ersten Zeile jeder Nachricht bereitgestellt zu werden, und ich vermute, dass es sich wieder um eine Form von Taktabweichung und Taktdrift handelt. Allerdings sind mir noch folgende Dinge unklar:

  • Was genau sind T S v , T B Und T A u C ?
  • Die zuvor erwähnten Parameter, die im Header bereitgestellt werden, scheinen nicht für die Zeitkonvertierung verwendet zu werden. Welchen Zweck haben diese dann?
  • Die erste Zeile jeder Nachricht enthält, ähnlich wie bei GPS-Nachrichten, Epochenjahr, -monat, -tag, -stunde, -minute und -sekunde. Was genau ist diese Epoche? Ist es der Zeitpunkt der Übermittlung der Nachricht, der Zeitpunkt, zu dem der bereitgestellte Zustandsvektor gültig ist, oder etwas anderes?
  • Wären auch relativistische Korrekturen erforderlich, um eine UTC-Zeit korrekt zu erhalten?

Bearbeiten : Ich dachte, es wäre eine gute Idee, hier die Klarstellungen zu verfolgen, die wir für die verschiedenen Fragen finden.

  • @PM2Ring stellt fest , dass die Δ T L S Parameter, der zur Berechnung der UTC-Zeit aus der GPS-Zeit erforderlich ist, ist die Anzahl der Schaltsekunden, die bis zum Zeitpunkt der Übertragung der Nachricht eingeführt werden. Praktischerweise wird dies im Header von RINEX GPS-Navigationsdateien angegeben

Bearbeiten 2 : Ich habe als weitere Antwort das Verfahren hinterlassen, das ich nach Klarstellungen von @NgPh für richtig halte

Ich sage nur: Sie stellen eine ganze Reihe von Fragen in einer Frage. Ich habe 17 Fragezeichen gezählt. Das ist im Allgemeinen kein guter Stil. Ein weiteres Problem: Keine Referenzen. Sie haben offensichtlich Ihre Hausaufgaben gemacht, aber Sie haben keine Referenzen zu den relevanten Gleichungen angegeben.
@DavidHammen danke für den Kommentar, der mir geholfen hat, meine Fragen zu verbessern. Ich habe bearbeitet, um Referenzen für die verschiedenen Formatspezifikationen und die erwähnten Gleichungen hinzuzufügen. Was die Anzahl der Fragen betrifft, so ist sie meines Erachtens ziemlich hoch. Ich glaube jedoch, dass alle diese Fragen eng miteinander verbunden sind und allesamt kleinere Teile der allgemeinen Frage sind, wie die Zeit berechnet wird, der die bereitgestellten Ephemeriden entsprechen.
Die GPS-Zeit verwendet keine Schaltsekunden, daher ist eine Schaltsekundenkorrektur erforderlich, um UTC aus der GPS-Zeit zu berechnen. Δ T L S ist die "Delta Time aufgrund von Schaltsekunden". Sie können es nicht berechnen, aber Sie können auf dieser IERS-Seite nachsehen, wann Schaltsekunden zu UTC hinzugefügt wurden: ietf.org/timezones/data/leap-seconds.list
@PM2Ring Ich verstehe, vielen Dank! Tatsächlich liefern die RINEX-Navigationsdateien praktischerweise die Anzahl der Schaltsekunden, die bis zum Übertragungspunkt der Nachricht addiert wurden. Ich werde überprüfen, ob diese mit den auf der IERS-Seite beschriebenen Werten übereinstimmen
Ich poste die folgenden Links mit einiger Beklommenheit, da sie ein wahrer Kaninchenbau sind. ;) A Brief History of Time Scales und seine übergeordnete Seite, die eine riesige Sammlung von Informationen über Schaltsekunden ist .
@PM2Ring vielen Dank! Dies sind in der Tat sehr nützliche Informationen :) Nach dem GPS-Zeitabschnitt im Link bin ich zum IS-GPS-200-Dokument gelangt , das auf Seite 97 eine weitere Formel zur Korrektur der GPS-Zeit enthält. Diese Formel enthält jedoch keine Schaltsekundenkorrektur, daher gehe ich davon aus, dass sie nicht auf UTC korrigiert. Worauf korrigiert es dann? Es enthält einen relativistischen Korrekturterm und enthält die Parameter af0, af1 und af2, aber nicht A0 oder A1, wie in der zuvor verlinkten Formel. Gibt es 2 Polynomkorrekturen, um zu UTC zu gelangen?
Nur als zukünftige Referenz, wie in der Antwort von @ NgPh verdeutlicht, gibt es tatsächlich 2 Polynomkorrekturen, um zur UTC-Zeit zu gelangen. Der erste konvertiert die Uhrzeit eines bestimmten Satelliten in der Konstellation in die gemeinsame GPST-Zeit und der zweite konvertiert von GPST in UTC

Antworten (2)

Was genau sind T S v Und T Ö C ?

Die erste ist jede Zeit (z. B. die Zeit, zu der die Nachricht gesendet wurde), ausgedrückt in dem Zeitsystem, das von einem bestimmten Satelliten (Raumfahrzeug) verwaltet wird. Die Sekunde ist die Referenzzeit für die Uhrkorrektur, ausgedrückt im gleichen Zeitsystem. Die Korrektur wird benötigt, damit jede von einem beliebigen Satelliten angekündigte Zeit in ein gemeinsames GPS-Zeitsystem (auch GPST genannt) umgewandelt werden kann. Daher ist Gl. 2 der GPS-Referenzspezifikation (IS-GPS-200M, Seite 95 - die Sie oben in den Kommentaren erwähnt haben) ermöglicht es einem Empfänger, die Uhrfehler in einem bestimmten SV aus den von diesem SV gesendeten Navigationsdaten zu korrigieren, um zu den gemeinsamen zu gelangen Zeitreferenz. Diese Sendedaten werden vom GPS Operation Center berechnet und regelmäßig aktualisiert. Diese Erklärung aus der GPS-Spezifikation (IS-GPS-200M, Abschnitt 20.3.3.3.3.1) ist klarer:


Geben Sie hier die Bildbeschreibung ein


Könnte die Formel um einen quadratischen Term erweitert werden, so etwas wie A F 2 ( T S v T Ö C ) 2 , Wo A F 2 wäre die Driftrate der Uhr auch in der ersten Zeile jeder Nachricht enthalten?

Es könnte, da das Feld in den Spezifikationen vorhanden ist. Es ist möglich, dass dieser quadratische Term selten verwendet wird. Sein Wert ungleich Null würde bedeuten, dass die Borduhr auch in der Frequenz driftet. Wahrscheinlich würden sie auf die Ersatz-Atomuhr umsteigen (es sei denn, beide Uhren leiden darunter).

Wären auch relativistische Korrekturen erforderlich, um eine UTC-Zeit korrekt zu erhalten?

Ich denke, die relativistische Korrektur ist anwendungsabhängig. Zum Zwecke der Lokalisierung benötigen Sie meines Erachtens keine UTC, nur um 4 gemessene Zeitdeltas mit derselben gemeinsamen Zeitreferenz (GPST) zu synchronisieren.

  • Formel im RINEX-Dokument

Die Formel im RINEX-Dokument, Abschnitt 5.4.1 (hier wiedergegeben) ist etwas verwirrend.


Geben Sie hier die Bildbeschreibung ein


Es sieht so aus, als wäre es eine unvollständige Formel, bei der ausgelassene Begriffe durch "..." ersetzt wurden (Aufhängungspunkte, die Sie in Ihrer Frage nicht wiedergegeben haben). Die GPS-Spezifikation, Abschnitt 20.3.3.5.2.4 ist viel klarer. Es liest:


Geben Sie hier die Bildbeschreibung ein


A0 und A1 haben also eine ähnliche Rolle wie af0 und af1. Zusammen mit den Schaltsekunden dienen sie dazu, die Drift von GPST in Bezug auf UTC zu korrigieren, ähnlich wie af0, af1 (und möglicherweise af2) dazu dienen, die Drift von zu korrigieren T S v in Bezug auf GPST.

Beachten Sie, dass die Bezugszeit für die Berechnung des Korrekturterms gilt T U T C Ist T Ö T (und nicht die Referenz T Ö C für den Korrekturterm für T S v )

Ich habe die GLONASS-Spezifikationen nicht gelesen, aber ich denke, dass alle GNSS-Uhrkorrekturen (Galileo, Beidou, ...) dem gleichen Ansatz folgen, nur mit Unterschieden in der Notation der Begriffe. Eine gute Übung wäre es, die gleichen Abschnitte in ihren Spezifikationen zu lesen (dafür bin ich zu faul!).

Nachdem ich die GPS-Spezifikation (IS-GPS-200M) sorgfältiger gelesen hatte, habe ich mehrere Änderungen vorgenommen, um einige mögliche Mehrdeutigkeiten in den vorherigen Versionen meiner Antwort zu korrigieren. Verzeihung!
vielen Dank für die sehr ausführlichen Erläuterungen. Die Dinge werden endlich viel klarer! Ich strebe derzeit an, RINEX-Navigationsdateien zur Verbreitung der Position des Satelliten selbst zu verwenden, anstatt zur Lokalisierung, daher glaube ich, dass ich tatsächlich UTC-Zeit benötigen würde (um Planetenephemeriden, Erdorientierung usw. richtig berechnen zu können). Wenn ich also richtig verstanden habe, müsste man, um UTC zu erhalten, zuerst die Zeit an einem bestimmten GPS-Satelliten auf GPST korrigieren, was durch die Terme af0 und af1 (und möglicherweise af2) erfolgt. Danach würden wir von GPST zu UTC umwandeln, indem wir ...
... Anwenden einer Schaltsekundenkorrektur, einer Polynomkorrektur zur Berücksichtigung der Drift von GPST in Bezug auf UTC (unter Verwendung der A0- und A1-Terme, also auch einer Polynomkorrektur, aber in diesem Fall auf die erste Ordnung beschränkt) und einer relativistischen Korrektur aufgrund von speziellen und allgemeinen Relativitätstheorien, wie in der GPS-Spezifikation beschrieben. Würden Sie dieser Zusammenfassung zustimmen?
Nebenbei bemerkt scheint die GLONASS-Situation viel einfacher zu sein. Erstens scheint die GLONASS-Zeit eng mit der UTC-Zeit verbunden zu sein, sodass keine Schaltsekunden erforderlich sind. Außerdem scheinen, wie hier in Anmerkung 1 beschrieben , relativistische Korrekturen implizit in den Äquivalenten zu den af0- und af1-Termen (TauN und GammaN) enthalten zu sein. Letztendlich scheint es sich also nur um eine Polynomkorrektur erster Ordnung zu handeln, plus einen Term, der A0 (TauC) entspricht, der die Abweichung zu UTC korrigiert und in der Größenordnung von Hunderten von Nanosekunden zu liegen scheint.
Auch beim erneuten Lesen der RINEX-Dokumentation zum GPS-Navigationsdateiformat scheint es, als sei die Epoche in der ersten Zeile jedes Nachrichtenblocks beschrieben T Ö C , die Sie als Referenzzeit für die Korrektur der Zeit eines gegebenen GPS-Satelliten zum gemeinsamen GPST beschrieben haben. Die Zeit der Ephemeriden scheint in der dritten Zeile zu stehen, angegeben als Paar GPS-Woche-GPS-Sekunden der aktuellen Woche. Endlich glaube ich T Ö T für die Korrektur von GPST auf UTC wären auch die Referenzzeit und die Referenzwoche, die ich erwähnt habe, im Header der RINEX-Dateien angegeben, was sinnvoll ist, da sie für alle Satelliten gelten
Es scheint auch, dass GLONASS-Dateien die Zeit der Ephemeriden direkt in der ersten Zeile jedes Blocks des Nachrichtentexts der Datei angeben ( Tabelle A11 hier ). Und tatsächlich ist TauC im Header der Datei angegeben, was wiederum sinnvoll ist, da es analog zu A0 von GPS-Dateien ist und auch für alle Satelliten der Konstellation gilt. Ich denke, alle Teile fallen jetzt zusammen! Nochmals vielen Dank für die Klärung dieses komplexen Themas!
@Rafa, um ehrlich zu sein, war mir nicht klar, wie komplex die Navigationsnachrichten sind, bevor ich mich mit Ihren Fragen befasse. Ihre Zusammenfassung sieht für mich in Ordnung aus (es handelt sich tatsächlich um einen zweistufigen Korrekturprozess). Die relativistische Korrektur sollte in der 1. sein, da sie Teil der Offsets zwischen 2 Atomuhren ist, von denen eine jedem SV eigen ist. Wenn Sie unsere Schlussfolgerungen in einem praktischen Setup überprüfen können, wäre es schön, ein Feedback zu posten (Sie können eine Antwort auf Ihre eigene Frage posten). Ich werde mich mit GLONASS beschäftigen, wenn ich etwas Mut habe.
Ich hatte endlich die Gelegenheit, meine Implementierung von RINEX-Navigationsdatei-Parsern abzuschließen, und habe eine weitere Antwort mit dem Verfahren gepostet, wie ich es verstehe, um Uhrkorrekturen durchzuführen, um eine genaue Ephemeridenzeit in UTC für GPS und GLONASS zu erhalten. Leider habe ich keine praktischen Daten, um zu überprüfen, ob die berechneten korrigierten Zeiten tatsächlich korrekt sind. Ich denke, dies würde erfordern, die Position eines Beobachters zum Zeitpunkt der Ephemeriden für 4 Satelliten zu kennen und diese mit der Position zu vergleichen, die aus den Positionen, korrigierten Uhrzeiten und der Ankunftszeit von ... berechnet wurde.
... Signale von diesen 4 Satelliten zur erwähnten Zeit der Ephemeriden. Ist eine Art solcher Daten öffentlich verfügbar, um zu überprüfen, ob die Uhrkorrekturen tatsächlich korrekt durchgeführt werden?
@Rafa, schau dir diese Seite an . Möglicherweise können die bereitgestellten Daten zur Validierung Ihres Algorithmus verwendet werden. (Ich habe es noch nie benutzt).
@Rafa, nur laut gedacht: Wenn Sie einen hochpräzisen Propagator haben, dem Sie (natürlich) vertrauen , um Ihre Berechnung der Zeitreferenz zu testen, können Sie nicht eine Broadcast-Ephemeride bei t0 nehmen und sie dann an die nächste Sendung weitergeben t1? Wenn t0 und t1 korrekt sind, sollten die propagierte Ephemeride und die neu gesendete übereinstimmen, oder?
Es hat eine Weile gedauert, aber ich habe endlich meine eigene Implementierung eines hochpräzisen Propagators. Ich habe es für einen GPS-Satelliten getestet und nach 24-stündiger Ausbreitung einen Positionsfehler von 70 Metern erhalten. Jetzt bin ich mir nicht sicher, ob ein solcher Fehler für eine 24-Stunden-Ausbreitung einer GPS-Umlaufbahn im akzeptablen Bereich liegt oder ob er von Fehlern in meiner Implementierung herrührt ... Andererseits habe ich auch meine Implementierung von RINEX getestet Parser für mehrere GPS-Dateien und der Grad der meisten Korrekturen liegt unter Mikrosekunden, daher bin ich mir nicht sicher, ob die Ausbreitung genau genug wäre, um solche Unterschiede zu erkennen
Nach meinem (begrenzten) Verständnis können solche Zeitunterschiede, die sich aus der Anwendung oder Nichtanwendung dieser Korrekturen ergeben, jedoch zu einem ziemlich großen Unterschied in der aus GPS-Signalen bestimmten Position führen. Deshalb dachte ich ursprünglich daran, die Genauigkeit der Korrekturen von der bekannten Position eines Beobachters zum Zeitpunkt der Ephemeriden für 4 Satelliten zu testen
@Rafa, sehr glücklich, dass es dir gelungen ist. Nur um zu überprüfen, als Sie "Korrekturen unter Mikrosekunden" sagten, sind das die (Broadcast-)Korrekturen der integrierten Uhrenfehler, richtig? Und so würden ohne solche Korrekturen die Borduhrfehler Hunderte von Metern Fehler in den Entfernungen verursachen (?).
Ja! das meinte ich, ebenso wie die explizite relativistische Korrektur, die für GPS erforderlich ist. Am Ende ist die wichtigste Korrektur die Schaltsekunde für GPS. Alle anderen Korrekturen, nämlich Taktabweichungen und Taktdrifts (zweimal, einmal von der SV-Zeit zur GNSS-Zentralsystemzeit und dann von der GNSS-Zentralsystemzeit zur UTC-Zeit), sowie die relativistische Korrektur liegen unter Mikrosekunden. Ich glaube, dass die Auswirkungen, die eine korrekte oder falsche Berücksichtigung dieser Faktoren auf die propagierte Ephemeride haben würde, wahrscheinlich unter anderen Fehlerquellen liegen. Ich bin mir also nicht sicher, ob ich die Ephemeridenausbreitung verwenden kann, um ...
... testen, ob die Uhrkorrekturen so genau wie möglich waren. Ich weiß, dass sie ungefähr richtig sind, weil die propagierte Ephemeride nach 24 Stunden "nur" 70 Meter von der tatsächlichen Position entfernt ist (ich sage "nur", aber mir fehlt das Fachwissen, um zu beurteilen, ob ein solches Ergebnis in der Größenordnung dessen liegt, was akzeptabel wäre für ein anständiger Hochpräzisions-Propagator, oder wenn er eigentlich zu groß ist). Angesichts der viel größeren Auswirkungen, die sie an der Position eines Beobachters haben würden, der aus den Ankunftszeiten von GPS-Signalen berechnet wird, könnte dies ein besserer Ansatz sein, um zu testen, ob selbst solche feinen Uhrenkorrekturen gut durchgeführt wurden
Leider bin ich mir nicht sicher, ob die dafür erforderlichen Daten öffentlich verfügbar sind. Ich glaube, es wäre erforderlich, die tatsächliche Position eines Beobachters von 4 Satelliten zu einer bestimmten UTC-Zeit, die Ankunftszeit von mindestens 4 GPS-Satelliten zur gleichen UTC-Zeit und RINEX-Navigationsdateien für dieselben Satelliten zu kennen gleichen Augenblick. Ich könnte dann die Position des Beobachters durch ein multilaterationsähnliches Verfahren mit und ohne feine Uhrenkorrekturen berechnen und dann beides mit der realen, bekannten Position des Beobachters vergleichen

Dank der sehr aufschlussreichen Erklärung von @NgPh konnte ich endlich herausfinden, wie Uhrkorrekturen an UTC für GPS- und GLONASS-RINEX-Navigationsdateien korrekt durchgeführt werden. Ich habe jetzt meine eigene Implementierung abgeschlossen und dachte, es wäre eine gute Idee, eine Zusammenfassung des Prozesses zu hinterlassen, da ich glaube, dass sie hier richtig ist. Beachten Sie, dass sich die hier beschriebenen Prozesse darauf beziehen, wie die Zeit von Ephemeriden korrigiert wird (um es in einfachen Worten auszudrücken, die Zeit, zu der der bereitgestellte Zustandsvektor des Satelliten gültig ist).

GPS

Hier sind 2 Schritte erforderlich: Konvertierung der individuellen GPS-Satellitenzeit in systemweites GPST und Konvertierung von GPST in UTC.

  1. Abrufen T Ö C , die, wie in IS-GPS-200M, Abschnitt 20.3.3.3.3.1 beschrieben, die Referenzzeit zum Durchführen der Korrektur der individuellen GPS-Zeit auf das systemweite GPST ist. Dies wird durch die Felder 2 bis 7 (Epoch Year, Month, Day, Hour, Minute und Second) der 1. Zeile jeder Nachricht angegeben (Anmerkung: Eine einzelne RINEX-Datei enthält einen Header und mehrere Nachrichten), wie in Tabelle A4 hier beschrieben
  2. Konvertieren Sie die abgerufenen T Ö C zur GPS-Woche und Sekunden der aktuellen GPS-Woche, indem berechnet wird, wie viele Sekunden seit Mitternacht zwischen dem 5. und 6. Januar 1980 es entsprechen. Das Ergebnis kann modulo 604800 unterzogen werden, um die Sekunden der aktuellen GPS-Woche zu erhalten, und seine ganzzahlige Division durch 604800 ergibt die aktuelle GPS-Woche (in kontinuierlicher Skalierung, dh nicht modulo 1024, wie es sowieso der Fall ist, wie sich GPS-RINEX-Navigationsdateien zu verteilen scheinen GPS-Wochen)
  3. Rufen Sie die aktuelle GPS-Woche und die aktuellen Sekunden der GPS-Woche für die Ephemeridenzeit ab. Diese werden jeweils in Feld 3 von Zeile 5 und Feld 1 von Zeile 3 jeder Nachricht gespeichert. Beachten Sie, dass die GPS-Woche für die Ephemeridenzeit kontinuierlich skaliert ist, nicht modulo 1024.
  4. Berechnen Sie die Sekunden des Unterschieds zwischen der Zeit der Ephemeriden und T Ö C . Beachten Sie, dass die Differenz in Sekunden auf einen Bereich zwischen -302400 und +302400 gebracht werden sollte, um potenzielle GPS-Wochenkreuzungen zu berücksichtigen.
  5. Berechnen Sie einen relativistischen Korrekturterm. Die Formel findet sich auch bei IS-GPS-200M, Abschnitt 20.3.3.3.3.1. Bitte beachten Sie, dass die Typografie in der Datei, auf die ich zugreifen konnte, zu Verwirrung führen kann, da sie zu zeigen scheint, dass die Quadratwurzel der großen Halbachse der Exponent für die Exzentrizität zu sein scheint, während sie in Wirklichkeit nur ein weiterer multiplikativer Faktor ist . Beachten Sie auch, dass die Berechnung eines solchen relativistischen Terms die Berechnung der exzentrischen Anomalie erfordert. Dies kann nach den in Tabelle 20-IV des IS-GPS-200M-Dokuments beschriebenen Schritten erfolgen.
  6. Subtrahieren Sie von der individuellen Satellitenzeit die zuvor berechneten Sekunden der Differenz zwischen GPST und individueller Satellitenzeit und den relativistischen Term.
  7. Berechnen Sie eine Korrektur von GPST zu UTC. Dies ist eine weitere Polynomkorrektur mit Bezugszeit T Ö T die in der Kopfzeile als GPS-Wochennummer/Sekunden des GPS-Wochenpaars angegeben ist. Die Terme nullter Ordnung (Bias) und erster Ordnung (Drift) für die Korrektur sind ebenfalls in der Kopfzeile angegeben, die als A0- und A1-Parameter bezeichnet werden, wie in Tabelle A3 dieses Dokuments beschrieben . Außerdem müssen wir die seit dem 6. Januar 1980 eingeführten Schaltsekunden abziehen. Diese sind ebenfalls im Header der Datei angegeben.
  8. Durch Anwenden der obigen Korrekturen erhalten wir eine korrigierte Anzahl von Sekunden der aktuellen GPS-Woche, die zu der Anzahl von Sekunden addiert werden kann, die aus der aktuellen GPS-Woche berechnet wurde, um die Anzahl von Sekunden seit Mitternacht des 5. bis 6. Januar 1980 zu erhalten Diese kann dann direkt in eine UTC-Datum-Uhrzeit umgewandelt werden.

GLONASS

Bei GLONASS-Dateien scheint die Situation einfacher zu sein, obwohl es immer noch ein paar Dinge gibt, bei denen ich mir nicht 100% sicher bin. Es sollte beachtet werden, dass die GLONASS-Zeit an die UTC-Zeit gebunden ist und es zu jedem Zeitpunkt nur einen kleinen Offset gibt (normalerweise im Bereich von einigen hundert Nanosekunden und in jedem Fall immer unter 1 ms, wie auf Seite 15 von angegeben die GLONASS-Spezifikationen ). Darüber hinaus liefern RINEX GLONASS-Navigationsdateien Ephemeriden direkt in kartesischen Koordinaten im ECEF-Frame. Ich glaube, das richtige Verfahren zum Erhalten der genauesten UTC-Zeit ist:

  1. Erhalten Sie die Ephemeridenzeit in GLONASS-Zeit des einzelnen GLONASS-Satelliten. Es sollte beachtet werden, dass dies anscheinend durch die Zeitparameter in der ersten Zeile jeder Nachricht in der Datei für den Fall von RINEX GLONASS-Dateien gegeben ist. Dies ist ein entscheidender Unterschied zu GPS-Dateien, die entsprechende Felder bereitstellen T Ö C , die Referenzzeit zum Durchführen einer Korrektur von der individuellen Satelliten-GPS-Zeit zur systemweiten GPST. Dies wird durch die Tatsache unterstützt, dass Tabelle A11 in der Beschreibung von RINEX-Formaten besagt, dass solche Zeitparameter in der 1. Zeile jeder Nachricht die "Epoche der Ephemeriden" sind. Vergleichen Sie dies mit Tabelle A4 desselben Dokuments, das GPS-Dateien entspricht, wo die Zeitparameter als "Epoche: Toc - Time of Clock" beschrieben sind.
  2. Abschnitt 8.2 der erwähnten Beschreibung der RINEX-Formate besagt, dass die Zeitkorrektur für GLONASS-Satelliten wie folgt berechnet werden sollte: T U T C = T S v + T A u N G A M M A N ( T S v T B ) + T A u C . Ich verstehe T S v ist die Zeit des Satellitenfahrzeugs, die auf UTC korrigiert wird, aber ich war verwirrt, was genau T B Ist. Es gibt keine andere Erwähnung von T B in der Beschreibung der RINEX-Formate. Wenn Sie jedoch die GLONASS-Systemspezifikationen erneut im Detail überprüfen, scheint dies der Fall zu sein T B definiert den Zeitpunkt, für den die Ephemeridenparameter gültig sind. Dafür spricht beispielsweise die Tatsache, dass in Tabelle 4.6 dieses Dokuments eine Notation für die Position, Geschwindigkeit und Beschleunigung des Satelliten verwendet wird, die sie als Funktionen von definiert T B . Daher gehe ich davon aus T B in der Formel, die in dem Dokument gefunden wird, das RINEX-Formate beschreibt, ist tatsächlich die Zeit von Ephemeriden. Für den Fall der Korrektur der Ephemeridenzeit gilt also: T S v = T B , und damit das Produkt mit G A M M A N ist ebenfalls 0, wodurch die Konvertierung auf die Anwendung einer Taktvorspannung auf die systemweite GLONASS-Zeit reduziert wird (bereitgestellt von T A u N , das im 8. Feld der ersten Zeile jeder Nachricht angegeben ist), und dann ein Offset zur UTC-Zeit (bereitgestellt von T A u C , die im Header jeder Datei angegeben ist und für alle Nachrichten in der entsprechenden Datei gilt).
  3. Es gibt einen weiteren Zeitparameter in RINEX GLONASS-Navigationsdateien, T k , angegeben im 10. Feld der 1. Zeile jeder Nachricht. Es scheint auf Seite 22 der GLONASS-Systemspezifikationen definiert zu sein , aber ich verstehe seine Bedeutung noch nicht vollständig. Ich bin mir nicht sicher, wie/ob es verwendet werden sollte, um überhaupt Uhrkorrekturen durchzuführen. Wäre super, wenn das jemand klären könnte!
  4. Außerdem gibt es keine explizite relativistische Korrektur für GLONASS-Zeiten. Dies liegt daran, dass es implizit in enthalten ist T A u N Und G A M M A N , wie hier auf Seite 18 beschrieben .