Calcular coordenadas de satélite a partir de datos TLE

Sé que no es tan difícil para aquellos que están familiarizados con las ecuaciones, pero tengo problemas con las matemáticas. Para comprender completamente los elementos de la órbita de los TLE, leí esto , que me resultó muy útil, pero estoy luchando para convertirlo en coordenadas de latitud y longitud. Estoy entrando en esto sin conocimiento de los algoritmos necesarios, que es lo que espero que alguien pueda señalarme. Esta publicación proporciona información relevante, pero si entiendo correctamente, solo explica cómo obtener la longitud en un momento específico, mientras que me gustaría tener las coordenadas completas.

Incluya la información completa de los sitios vinculados en su publicación para evitar la obsolescencia ("rot") del enlace. ¿Qué parte de los algoritmos SGP/SDP presenta dificultades para usted?
La información en el primer enlace sería difícil de resumir aquí, pero agregué un poco al segundo. También expliqué lo que estoy pidiendo. No entiendo qué ecuaciones/algoritmos se utilizan para determinar la posición de un satélite en un momento determinado en función de sus datos TLE, y eso es lo que me gustaría saber.
celestrak.com/publications/AIAA/2006-6753 Busque los algoritmos SGP4/SDP4 en la Web. Nota: el enlace anterior conduce al código fuente anotado ( celestrak.com/publications/AIAA/2006-6753/AIAA-2006-6753.zip ).
¿Alguien podría explicar un poco más cómo hacerlo? @harry1795671: ¿Cómo usaste esa biblioteca Pyephem?
@Qorzyking Tenga en cuenta que no somos un foro de discusión sino un sitio de preguntas y respuestas. Si tiene una nueva pregunta, por favor hágala como tal . Consulte nuestras páginas Acerca de y Centro de ayuda para obtener más información sobre cómo funcionamos y organizamos las cosas en Stack Exchange de las que forma parte Space Exploration . ¡Gracias!

Respuestas (4)

Hay una serie de paquetes de software, muchos de ellos gratuitos, que se ocupan de esos dos elementos de línea. Usa uno de ellos.

Esos dos elementos de línea no son elementos keplerianos. En cambio, son elementos orbitales medios de Brouwer-Lyddane. Los elementos keplerianos asumen un cuerpo central esférico y ninguna fuerza más que la gravitación. Los elementos orbitales medios de Brouwer-Lyddane abordan los primeros seis armónicos esféricos e intentan explicar la resistencia atmosférica. Las matemáticas de los elementos keplerianos son un poco desordenadas. Las matemáticas de esos dos elementos de línea son más que desordenadas. Es un "matemático". (Piense en una ventisca en la que todo lo que ve es blancura. Las ventiscas son condiciones de blanqueo. El documento que describe los dos elementos de línea es una matemática. Todo lo que ve son matemáticas).

Las matemáticas se describen en FR Hoots, "Reformulación de la teoría del geopotencial de Brouwer para mejorar la eficiencia computacional", Celestial Mechanics 24 (1981) .

Al final me decidí por Pyephem, una biblioteca de python capaz de hacer los cálculos con bastante facilidad.

puedes usar PyEphem así

sudo apt-get install python

sudo apt-get install python-dev

sudo apt-get install python-pip

pip install pyephem

crear prueba.py:

import ephem
import datetime
## [...]

name = "ISS (ZARYA)";
line1 = "1 25544U 98067A   12304.22916904  .00016548  00000-0  28330-3 0  5509";
line2 = "2 25544  51.6482 170.5822 0016684 224.8813 236.0409 15.51231918798998";

tle_rec = ephem.readtle(name, line1, line2);
tle_rec.compute();

print tle_rec.sublong, tle_rec.sublat;
¡Muy agradable! Siempre es bueno ver Python aquí. Skyfield es otro paquete de Python y tiene una etiqueta aquí donde se pueden encontrar algunos ejemplos de uso. Se basa en diferentes principios, pero tiene algunas funciones superpuestas. De hecho, tanto PyEphem como Skyfield son administrados por la misma persona .
Ahora, quiero pronosticar la órbita. ¿Qué debo hacer? Simplemente así, ingrese una hora, genere una longitud y una latitud. @uhoh ¿Tienes alguna idea?
Sí, la razón por la que no publiqué otra respuesta es que no parece ser tan transparente generar una pista terrestre desde una órbita en Skyfield. Es fácil obtener las coordenadas GCRS (x, y, z) o las coordenadas JD2000, pero si entiendo correctamente, aún depende del usuario proyectar su propio modelo de la Tierra. Lat/lon se refieren a la superficie de la Tierra, no son necesariamente coordenadas espaciales precisas. Si hace esto como otra pregunta aquí, puedo publicar guiones breves para dos métodos diferentes.
Mientras tanto, puede consultar esta pregunta y el número 121 de Skyfield .
Advertencia: pyephem está en desuso y ya no se mantiene (la última versión fue en 2015). Sin embargo, Skyfield se publicó más recientemente en febrero de 2019 (4 meses antes de este comentario).

Dependiendo del algoritmo/conjunto de ecuaciones que esté utilizando para convertir, es posible que deba convertir los parámetros TLE en coordenadas ECEF y luego convertirlos en latitud, longitud y altitud. Aquí hay una página que explica la conversión de ECEF a LLA: http://www.gmat.unsw.edu.au/snap/gps/clynch_pdfs/coordcvt.pdf

Una dificultad matemática común es que la anomalía verdadera y la anomalía media están relacionadas por la ecuación de Kepler, que es una ecuación trascendental como mencionó su primer enlace. Normalmente se utiliza un método iterativo como el método de Newton para esta parte de la conversión.

Parece que no puedo encontrar una página web que tenga el conjunto de algoritmos para convertir TLE a ECEF, pero esta página proporciona el algoritmo para convertir efemérides GPS (parámetros orbitales) en coordenadas ECEF: http://web.ics.purdue.edu /~ecalais/teaching/geodesy/EAS_591T_2003_lab_4.htm Si no recuerdo mal, la conversión de TLE es bastante similar, por lo que podría llevarlo por el camino correcto. Si no tiene un libro de texto con el algoritmo, podría estar en línea en un periódico o algo así.

Amplíe e incluya las matemáticas relevantes para el beneficio de los visitantes posteriores.
Nota: el primer enlace ahora está muerto.

Tuve una pregunta similar, y usar pyephem como lo sugirió zdRan funcionó muy bien, excepto por una cosa: esas son instrucciones para Debian/Ubuntu/etc. distribuciones y estaba en una instalación básica de CentOS.

En caso de que alguien más se encuentre con esto, aquí están las instrucciones de instalación, que se usarán en lugar del primer bloque en la publicación de zdRan:

sudo yum install python
sudo yum install python-devel
sudo yum upgrade python-setuptools
sudo yum install epel-release
sudo yum install python-pip
sudo yum install gcc
sudo pip install pyephem

Se epel-releasenecesita ya que pip no es parte de los paquetes principales de CentOS, pero es parte de los paquetes extendidos. gccsolo necesita instalarse si aún no lo tiene (puede usar whereis gccpara verificar, pero yum no se instalará si ya está allí, por lo que no es estrictamente necesario).

A partir de ahí, proceda como se indicó anteriormente, funciona muy bien.

(Esto fue en CentOS 7, pero un procedimiento similar debería funcionar para la mayoría de las distribuciones de CentOS/Red Hat/Fedora)