Datos TLE: ¿cómo actualizar la fecha?

Teniendo datos de TLE, ¿cómo los actualizo con -digamos- la fecha de hoy?

Tengo el TLE de la ISS, llegué a la conclusión de que para tener la ubicación del satélite al momento, se deben alterar las columnas 21 a la 32 con la fecha al momento.

No tengo problema con las columnas 21,22,23, pero el resto son el problema (hasta la 32). Traté de convertir a tiempo de época, pero no me da "8 ranuras"; en lugar de 10. No pude entender qué significa "época (día del año y parte fraccionaria del día". Traté de convertir el tiempo a muchas formas, pero produce "6 ranuras" o "10 ranuras" .

Convertidores que usé hasta ahora: epochconverter.com ,,,,, epochconverter.com/epoch/clock.php
No le encuentro ningún sentido a tu pregunta. No puede simplemente cambiar la época, el año y la fecha y esperar que el resto de TLE siga teniendo sentido. Tendrá que usar algún propagador SGP (Modelos de Perturbaciones Simplificados). El formato se explica, por ejemplo , aquí , no tiene nada que ver con la marca de tiempo de Unix.
Descargué una herramienta para hacer la conversión de TLE a través de SGP4 y produjo coordenadas; pero parecía que está desactualizado. El proyecto que quiero lograr tiene que ver con el seguimiento en tiempo real, así que pensé en cambiar programáticamente la época, el año y la fecha del TLE en las columnas 21 a 32. Tengo entendido que, si los hago dinámicos, rastrearán la ISS en tiempo real.
Si desea crear un sistema de seguimiento en tiempo real, tendrá que trabajar con las últimas actualizaciones de TLE para un objeto determinado, luego use SGP para propagar desde la época hasta ahora ( Δ T ). Si está utilizando algún conjunto TLE "obsoleto", se propagará con demasiados errores. Los TLE generalmente se actualizan un par de veces al día, puede obtenerlos para algunos de los satélites más comunes, por ejemplo, aquí . La época actual de la ISS es 15330.23252987, por lo tanto, el año juliano 2015, el día 330, 24*0,23252987 horas, minutos, segundos,... en él (GMT). Eso no es "anticuado". Hace algunas horas.
También tenga en cuenta que cualquier "seguimiento en tiempo real usando la propagación SGP de los últimos conjuntos TLE" es un truco si no usa también todos los demás datos en tiempo real disponibles para corregirlo tan pronto como pueda cambiar. Por ejemplo, para ISS, hay vectores de estado en tiempo real disponibles la mayor parte del tiempo. Y tampoco tiene que reinventar la rueda para hacer una propagación SGP de grano fino. Utilice HORIZONTES para generar efemérides en intervalos de hasta 1 minuto, incluida la propagación a fechas futuras. Luego use SGP interno para pasos más cortos.
@TildalWave, gracias, entiendo lo que necesito hacer más claramente ahora. Puedo aplicar eso a través del código que tengo; pero sigo atascado en la forma en que se expresa el tiempo en "TLE" (15330.23252987); Entiendo que necesito calcular la posición entre el tiempo TLE anterior y el tiempo en este momento (es decir, el tiempo desde la época TLE). Pero no puedo entender cómo convertir el tiempo ahora (fecha decimal regular) en la misma forma que el TLE, para encontrar cuánto tiempo pasó desde la época TLE.

Respuestas (2)

Los TLE son un producto de las observaciones de ajuste utilizando el propagador SGP4. Así que realmente no puedes cambiarlos de la forma en que parece que lo estás intentando. El catálogo TLE se actualiza regularmente, por lo que si desea información actualizada para la ISS, por ejemplo, puede obtener datos del catálogo de https://www.space-track.org . También hay una API allí para que pueda obtener los datos mediante programación.

Además, una vez que tenga los datos TLE para una época determinada, puede usar la propagación SGP4 para propagar a una época determinada. Esto le da el estado cartesiano equivalente en la época solicitada. Hay una serie de implementaciones del propagador SGP4, por ejemplo, para Python: https://pypi.python.org/pypi/sgp4/ . Tenga en cuenta que la precisión de los TLE es limitada, por lo que si se propaga en escalas de tiempo largas, es poco probable que los resultados sean significativos.

Descargué esta biblioteca de C# antes ( zeptomoby.com/satellites ) ya que mi conocimiento en python es escaso. La herramienta funciona perfectamente con SGP4, pero ¿crees que debería cambiar mi algoritmo (usar un TLE fijo con época dinámica y luego aplicar SGP4) a (importar TLE continuamente y aplicarles la conversión SGP4)? Gracias por su respuesta !
...especialmente en caso de que se reinicie la ISS, todas las predicciones anteriores se invalidan inmediatamente.
Unir su respuesta con el comentario de @TildalWave♦ proporciona la explicación completa del caso. Primero obtenga los datos actualizados de TLE (de los enlaces que proporcionó), luego use SGP4 para propagar desde la época de TLE hasta ahora, teniendo en cuenta que el TLE debe renovarse constantemente para mantener su precisión durante la propagación. Nuevamente, gracias por responder.
Sí, eso es más o menos. Es importante tener en cuenta que los TLE no son muy precisos, por lo que para una aplicación de seguimiento en tiempo real, también depende del nivel de precisión que desee proporcionar. Para predicciones más largas, también puede usar un método numérico completo con modelos de fuerza de alta fidelidad.

Desde la línea de comandos en Linux/Unix (posible en Windows con el wget instalado)

wget URL

Así que distribuya el TLE desde amsat.org

wget http://www.amsat.org/amsat/ftp/keps/current/nasa.all

Sin embargo, hay algunos encabezados molestos para esto, así que...

tail +16 nasa.all  > nasa.tle

Todos juntos

wget http://www.amsat.org/amsat/ftp/keps/current/nasa.all
tail +16 nasa.all  > nasa.tle

Ahora solo necesita colocarlo en un archivo de secuencia de comandos y ejecutarlo como un cron (tarea programada de lectura de Windows).