RINEX (formato de intercambio independiente del receptor) es un conjunto de formatos de archivo para distribuir datos de sistemas de navegación por satélite, incluido GNSS. Uno de estos estándares, los archivos de navegación, proporcionan información sobre la posición de los satélites.
El estándar difiere para los diferentes sistemas de navegación por satélite, pero se puede clasificar en términos generales en dos tipos: los que proporcionan vectores de estado como elementos orbitales y los que proporcionan vectores de estado como coordenadas cartesianas (en un marco ECEF). Como representantes de cada clase, los archivos de navegación RINEX para GPS son del tipo de elemento orbital, mientras que los de GLONASS son del tipo de coordenadas cartesianas.
Actualmente estoy tratando de utilizar los vectores de estado proporcionados en dichos archivos de navegación RINEX como punto de partida para la propagación con un propagador numérico de alta precisión. Sin embargo, para realizar dicha operación, creo que es clave saber exactamente a qué instante de tiempo se refieren los vectores de estado proporcionados.
Se proporcionan múltiples parámetros de tiempo en los archivos de navegación RINEX, como se describe por ejemplo aquí , y de una manera más interactiva aquí para los archivos GPS y aquí para los archivos GLONASS .
Mi pregunta es, a partir de los diferentes parámetros de tiempo proporcionados, ¿ cómo podemos obtener el tiempo al que corresponden los vectores de estado con la mayor precisión posible?
Dejo a continuación un resumen de lo que he logrado resolver hasta ahora, dividido en secciones de GPS y GLONASS.
GPS
El formato se describe en las Tablas A3 y A4 del apéndice de este documento , con un ejemplo en la Tabla A8 del mismo apéndice.
La primera línea de cada mensaje contiene campos para la Época año, mes, día, hora, minuto y segundo. Sin embargo, no estoy seguro acerca de los siguientes puntos con respecto a dichos campos de Época:
El encabezado contiene un conjunto de parámetros etiquetados como Delta-UTC, que aparentemente se pueden usar para "calcular el tiempo en UTC", denominados A0, A1, Hora de referencia y Número de semana. La fórmula para la conversión parece ser, según la sección 5.4.1 de este documento y la sección 8.2 de este documento :
Dónde es la hora en UTC, es "tiempo de vehículo espacial" y es "tiempo de satélite del reloj".
Con respecto a esto, no estoy seguro de lo siguiente:
Los mensajes también incluyen campos para "Tiempo de Efemérides" (primer campo de la 4ª línea de mensajes) y "Tiempo de Transmisión" (primer campo de la 8ª línea de mensajes), ambos en unidades de "segundos de semana GPS".
Finalmente, el tercer campo de la sexta línea de mensajes es "Número de semana GPS". Me inclino a pensar que este valor podría potencialmente combinarse con el campo "Tiempo de efemérides" para obtener el tiempo de época para las efemérides informadas.
GLONASS
El formato se describe en las Tablas A10 y A11 del apéndice de este documento , con un ejemplo en la Tabla A12 del mismo apéndice.
La situación de los mensajes GLONASS parece ser un poco diferente. El encabezado (que es válido para todos los mensajes incluidos en el archivo, que puede y, de hecho, generalmente parece provenir de diferentes satélites en la constelación) contiene un conjunto de parámetros etiquetados como "CORR TO SYSTEM TIME". Estos son:
Estos parámetros se describen para ser utilizados para realizar una "corrección a la escala de tiempo del sistema para corregir la hora del sistema GLONASS a UTC", aplicando la fórmula descrita en la sección 5.4.2 de este documento y la sección 8.2 de este documento
El y los parámetros parecen estar provistos en la primera línea de cada mensaje, y supongo que son nuevamente alguna forma de polarización del reloj y deriva del reloj. Sin embargo, lo siguiente todavía no me queda claro:
Editar : pensé que sería una buena idea hacer un seguimiento aquí de las aclaraciones que encontramos para las diferentes preguntas.
Edición 2 : he dejado como otra respuesta el procedimiento que creo que es correcto después de las aclaraciones proporcionadas por @NgPh
que son exactamente y ?
El primero es cualquier momento (por ejemplo, el momento en que se transmitió el mensaje) expresado en el sistema de tiempo mantenido por un satélite particular (vehículo espacial). El segundo es el tiempo de referencia para la corrección del reloj, expresado en el mismo sistema horario. La corrección es necesaria para que cualquier hora anunciada por cualquier satélite se pueda convertir a un sistema de hora GPS común (también llamado GPST). Por lo tanto, la ecuación. 2 de la especificación de referencia de GPS (IS-GPS-200M, página 95, que mencionó en los comentarios anteriores) permite que un receptor corrija los errores de reloj en un SV en particular , a partir de los datos de navegación transmitidos por este SV, para llegar al común referencia de tiempo. Estos datos de transmisión son calculados por el Centro de Operaciones GPS y actualizados regularmente por él. Esta explicación de la especificación GPS (IS-GPS-200M, Sección 20.3.3.3.3.1) es más clara:
¿Podría expandirse la fórmula para incluir un término cuadrático, algo como , dónde ¿Cuál sería la tasa de deriva del reloj, también incluida en la primera línea de cada mensaje?
Podría, ya que el campo existe en las especificaciones. Es posible que este término cuadrático rara vez se use. Su valor distinto de cero significaría que el reloj integrado también se está desviando en frecuencia. Probablemente, cambiarían al reloj atómico de repuesto (a menos que ambos relojes sufran esto).
¿Se requerirían también correcciones relativistas para obtener correctamente una hora UTC?
Creo que la corrección relativista depende de la aplicación. Para fines de localización, creo que no necesita UTC, solo para sincronizar 4 deltas de tiempo medidos con la misma referencia de tiempo común (GPST).
La fórmula en el documento RINEX, Sección 5.4.1 (reproducida aquí) es un poco desconcertante.
Parece que es una fórmula incompleta, con términos omitidos reemplazados por "..." (puntos de suspensión que no reprodujiste en tu pregunta). La especificación GPS, Sección 20.3.3.5.2.4 es mucho más clara. Se lee:
Entonces, A0 y A1 tienen un papel similar al de af0 y af1. Junto con los segundos intercalares, sirven para corregir la deriva de GPST con respecto a UTC, de manera similar a como af0, af1 (y posiblemente af2) sirven para corregir la deriva de con respecto al GPST.
Tenga en cuenta que el tiempo de referencia para calcular el término de corrección para es (y no la referencia para el término de corrección de )
No he leído las especificaciones de GLONASS pero creo que todas las correcciones de reloj GNSS (Galileo, Beidou,...) siguen el mismo enfoque, con solo diferencias en notaciones de términos. Un buen ejercicio sería leer las mismas secciones en sus especificaciones (¡soy demasiado perezoso para eso!).
Gracias a la explicación muy perspicaz de @NgPh, creo que finalmente pude descubrir cómo realizar correctamente las correcciones de reloj a UTC para los archivos de navegación GPS y GLONASS RINEX. Ahora he completado mi propia implementación, y pensé que sería una buena idea dejar un resumen del proceso, ya que creo que es correcto aquí. Tenga en cuenta que los procesos descritos aquí se refieren a cómo corregir el tiempo de las efemérides (para decirlo en palabras simples, el tiempo en el que el vector de estado proporcionado del satélite es válido).
GPS
Hay 2 pasos involucrados aquí: conversión de tiempo de satélite GPS individual a GPST de todo el sistema, y conversión de GPST a UTC.
GLONASS
La situación parece más fácil para los archivos GLONASS, aunque todavía hay un par de cosas de las que no estoy 100% seguro. Debe tenerse en cuenta que la hora GLONASS está vinculada a la hora UTC, y solo habrá una pequeña desviación en un momento dado (generalmente en el rango de unos pocos cientos de nanosegundos y, en cualquier caso, siempre por debajo de 1 ms, como se indica en la página 15 de las especificaciones de GLONASS ). Además, los archivos de navegación RINEX GLONASS proporcionan efemérides directamente en coordenadas cartesianas en el marco ECEF. Creo que el procedimiento correcto para obtener la hora UTC más precisa es:
david hamen
rafa
PM 2 Anillo
rafa
PM 2 Anillo
rafa
rafa