Seguimiento del módulo de aterrizaje lunar Beresheet de SpaceIL

¿Alguien sabe si los datos orbitales de Bereshit están disponibles en NASA Horizons?

Algunos cuerpos se enumeran por número de referencia, sin nombre:

https://ssd.jpl.nasa.gov/horizons_batch.cgi?batch=1&MAKE_EPHEM=%20%27YES%27&&TABLE_TYPE=%20%27VECTORS%27&&OUT_UNITS=%20%27KM-S%27&&REF_SYSTEM=%20%27J2000%27&&VEC_LABELS= %20%27YES%27&&CSV_FORMAT=%20%27YES%27&&OBJ_DATA=%20%27NO%27&&VEC_TABLE=%20%272%27&&STEP_SIZE=%20%271%20h%27&&START_TIME=%20%272018-09-1%2000:00% 27&&STOP_TIME=%20%272018-12-03%2017:01%27&&COMMAND=%20%27 *%27&CENTER=%20%27500@399%27&

Este sitio aparece como no actualizado en tiempo real, pero solo según el cronograma:

https://www.n2yo.com/satellite/?s=44049

También encontré los datos sin procesar utilizados en el simulador oficial, pero tampoco parecen actualizados, solo programados.

Simulador: http://live.spaceil.com

Datos sin procesar:

http://live.spaceil.com/data/data_s1.txt (22/2 - 12/4)

http://live.spaceil.com/data/data_s2.txt (4/4 - 12/4)

http://live.spaceil.com/data/data_m.txt (22/2 - 16/12)

Respuestas (2)

tl;dr: Obtenga los TLE más recientes de Celestrak ahora y siga descargándolos (aquí hay algunos que obtuve de Celestrak recientemente) u obtenga todos los TLE históricos de Space-Track (pero debe registrarse y seguir sus reglas). Use SGP4 para interpretar los TLE, y una manera fácil de hacerlo es usar el paquete Skyfield de Python.

Horizons no se actualiza en tiempo real, las soluciones orbitales se actualizan cada pocos meses. Ahí no es donde buscar datos de tipo "seguimiento".

From Celestrak: https://celestrak.org/satcat/tle.php?CATNR=44049

BERESHEET               
1 44049U 19009B   19056.12000000 -.00000410  00000-0  00000+0 0  9999
2 44049  27.0110  11.2380 8290697 180.2020  59.3930  1.03728676    24
BERESHEET               
1 44049U 19009B   19057.86922840 -.00000449  00000-0  00000+0 0  9998
2 44049  27.6586  10.3444 8300888 181.1251 352.8363  1.03793705    46
BERESHEET               
1 44049U 19009B   19059.41777308 -.00000504  00000-0  00000+0 0  9990
2 44049  27.6559  10.1226 8300930 181.4837 211.4679  1.03800294    67

Puedes entender los números mirando aquí y aquí y aquí .


Recuerdo cuando me di cuenta por primera vez que podía obtener posiciones de satélites que se actualizaban continuamente desde Internet. Diciembre de 2015: ¿Se puede aplicar raspado a esta página que se está recalculando activamente? Era el famoso lanzamiento de Orbcomm por parte de SpaceX y estaba "rastreando los satélites" raspando un sitio web que mostraba las posiciones de los satélites para visualizar cómo los satélites se alejaban lentamente unos de otros durante los próximos días.

Luego descubrí Space Exploration SE y ¡todo mejoró! Una mejor manera de descargar las posiciones de los satélites Orbcomm-2

X, Y, Z de la constelación

@PearsonArtPhoto me habló de

donde puede obtener TLE, y

los cuales tienen propagadores SGP4 y por lo tanto pueden convertir TLEs a posiciones y velocidades centradas en la Tierra.

Pregunté cómo PyEphem funcionó PyEphem bajo el capó: ¿cómo calcula la posición de los planetas? .

Luego descubrí que hay un paquete de Python más nuevo llamado Skyfield que realmente es genial.

Skyfield descarga y lee las mismas Epeherides de JPL Development (también ¿Cómo pronunciar "Efemérides"? ) que Horizons usa para las posiciones de los objetos del sistema solar, y puede aceptar TLE manuales o descargarlas de Celestrak para usted.

¿Qué significa "TLE"?
@jumpjack He hecho una edición, esas líneas cerca de la parte superior, están con 1 y luego con 2, esos son conjuntos de elementos de dos líneas
¿Cómo interpreto la salida de celestrak?
@jumpjack Ya te di tres TLE para Bereshit y te expliqué cómo usarlos para obtener vectores de estado. Eso es mucho. En su pregunta, también proporciona un enlace con los vectores de estado. ¿Qué más necesitas exactamente? (un vector de estado es [ X , y , z , v X , v y , v z ] )
@jumpjack los datos en esos enlaces de archivos de texto son vectores de estado, por lo que están listos para funcionar. Puedes decir X , y , z porque los números son como 1.000 o 10.000 km. Los siguientes tres números como 0.1 o 1.0 son la velocidad en km/seg. No puedo garantizar eso, pero probablemente sea cierto. Esta es una órbita calculada, y aunque la nave espacial debería seguirla de cerca, es una simulación, no datos reales.
@jumpjack una vez que tenga los TLE, hay muchas formas de usarlos. Yo mismo uso un antiguo programa de DOS llamado STSPLUS pero no puedo recomendar ese...
@jumpjack está bien, los vectores de estado en los archivos de texto son interesantes. data_s1.txtson los vectores de estado para la nave espacial, y data_m.txt` son solo los vectores de posición (pero no la velocidad) para la Luna. Te haré una trama en un rato.
gracias, ya hice la trama, pero no se actualizan los datos...
@jumpjack He agregado una segunda respuesta solo por diversión.

Aquí está la gráfica de los datos en data_s1.txt(nave espacial) y data_m.txt(Luna). Hay vectores de estado apropiados para la nave espacial. [ X , y , z , v X , v y , v z ] pero sólo vectores de posición para la Luna. [ X , y , z ] . ¡También hay otro problema, no se alinean correctamente! ¡La nave espacial no orbita la Luna! @@

Creo que puede haber algo raro con los datos. el error es mucho mayor que 1/81, por lo que es más que solo las coordenadas del baricentro versus el centro de la Tierra. Algo esta mal. De todos modos, ¡aquí está!

ingrese la descripción de la imagen aquí

Escritura de Python:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

with open('data_s1.txt', 'r') as infile:
    slines   = infile.readlines()

slines   = [ [float(x) for x in line.strip().split(',')[1:]] for line in slines[1:-1]]
sstates  = np.array(zip(*slines))

with open('data_m.txt', 'r') as infile:
    mlines   = infile.readlines()

mlines   = [ [float(x) for x in line.strip().split(',')[1:]] for line in mlines[1:-1]]
mstates  = np.array(zip(*mlines))

if True:    
    fig = plt.figure(figsize=[10, 8])  # [12, 10]

    ax  = fig.add_subplot(1, 1, 1, projection='3d')
    x, y, z = sstates[:3]
    ax.plot(x, y, z, '-r')

    x, y, z = mstates[:3]
    ax.plot(x, y, z, '-b')

    ax.set_xlim(-405000, 405000)
    ax.set_ylim(-405000, 405000)
    ax.set_zlim(-405000, 405000)

    plt.show()