¿Cómo puedo encontrar la órbita de referencia anterior para JWST (desde 2014) y obtener posiciones AltAz de la Tierra sin aprender Spice? ¿Puede Horizons hacerlo? ¿Puede Pitón?

En esta antigua respuesta de 2017 a ¿Qué sucede con JWST después de que se queda sin propulsor? Tracé una órbita de referencia de once años para JWST que estaba disponible en Horizons en ese momento.

Ahora que se ha lanzado la nave espacial, Horizons accede a las últimas y mejores soluciones de trayectoria real basadas en datos de seguimiento y ajuste numérico. Pero ahora solo dura alrededor de un mes, ya que habrá maniobras de corrección de trayectoria asociadas con la inserción de la órbita del halo.

¿Hay algún botón que pueda presionar que señale la interfaz de Horizons a la órbita de referencia anterior? De esa manera, como lo hice en esta respuesta a ¿A qué dirección/constelación se dirige James Webb? Puedo simplemente hacer clic en los cuadros RA/Dec y Alt/Az en el diálogo de salida y obtener el movimiento de JWST en el cielo visto desde París a medianoche (sin otra razón específica que sería genial verlo).

Alternativamente, ¿existe ahora una interfaz de Python realmente agradable que conozca ftp y kernels de especias que pueda ayudarme a encontrar esa trayectoria de referencia anterior y extraer los valores RA/Dec y Alt/Az para una posición de latitud/longitud en pasos de tiempo fijos?

Pregunta: ¿Cómo puedo encontrar la órbita de referencia anterior para JWST (desde 2014) y obtener posiciones alt-az de la Tierra sin aprender Spice?

  • ¿Puede Horizons hacerlo?
  • ¿Puede Pitón?
¿Hay alguna razón en particular por la que desee evitar las especias? esta parece una buena oportunidad para sumergirse realmente en él, en lugar de recopilar soluciones alternativas.
@RyanC En seis décadas solo he logrado aprender inglés, matemáticas y Python. Puede que no tenga otros 20 para aprender algo nuevo. No hay trucos nuevos para este perro viejo (y bastante ocupado). ¡Gracias!
@RyanC y difícilmente llamaría al uso de un paquete de Python bien escrito una "solución alternativa". ¿Ha notado cuánto de los últimos cincuenta años los programas de computadora han estado envueltos en paquetes de Python? ¡Quizás esta sea una buena oportunidad para que te sumerjas en Python !
He estado escribiendo en Python desde 2003, el tiempo suficiente para que el idioma cambie varias veces. Las comprensiones de diccionario me hacen feliz en un nivel muy visceral. :)
Oh,... pensé que tal vez querrías sumergirte en el Python real . Es mucho más entretenido. ¿O debería ser una distracción?
¡@Fred nunca envejece!

Respuestas (1)

Sé que dijiste que no querías usar SPICE, pero como nadie ha publicado una respuesta, pensé que debería mencionar esto. Encontré un depósito en el sitio de ESA con el núcleo SPICE que contiene los datos de referencia antiguos de Horizons que está buscando (dice que los datos provienen de Horizons en el LÉAME).

https://repos.cosmos.esa.int/socci/projects/SPICE_KERNELS/repos/jwst/browse

Dado que .bsp y un kernel para un marco fijo de la Tierra centrado en la Tierra (pck00010.tpc contiene IAU_EARTH), podría hacer sus cálculos.

Aquí hay una secuencia de comandos rápida de Python que lee el bsp y genera un csv para que pueda ejecutarlo una vez y no usar más SPICE. Necesitaría tener sus propias copias de naif0012.tls (núcleo de segundos bisiestos), de432s.bsp, pck00010.tpc, o puede usar este repositorio que las tiene y el archivo spice_data contiene las rutas de archivo ( https://github . com/alfonsogonzalez/AWP ). El bsp tiene datos desde 2020-01-01 hasta 2024-01-01, por lo que solo depende de la cantidad que desee y su período de tiempo.

import spice_data as sd
import spiceypy   as spice
import numpy      as np

if __name__ == '__main__':
    spice.furnsh( sd.leapseconds_kernel )
    spice.furnsh( sd.de432 )
    spice.furnsh( sd.pck00010 )
    spice.furnsh( 'jwst_horizons_20200101_20240101_v01.bsp' )

    et0     = spice.str2et( '2022-01-01' )
    etf     = spice.str2et( '2022-01-15' )
    dt      = 3600
    ets     = np.arange( et0, etf, dt )
    states  = np.array( spice.spkezr(
                '-170', ets, 'IAU_EARTH', 'NONE', '399' )[ 0 ] )
    arr     = np.zeros( ( len( ets ), 7 ) )

    arr[ :, 0  ] = ets
    arr[ :, 1: ] = states

    np.savetxt( 'jwst-iau-earth.csv', arr, delimiter = ',' )

    if False:
        import plotting_tools as pt
        pt.plot_orbits( [ states[ :, :3 ] ], { 'show': True } )

ingrese la descripción de la imagen aquí

La función SPICE recrad convierte de rectangular a rango, ascensión recta, declinación: https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/recrad_c.html

Puede obtener el vector IAU_EARTH de un punto en la Tierra definido por lat/lon usando la función reclat de SPICE (convierte de coordenadas rectangulares a latitudinales: https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/ reclat_c.html ). Creo que la implementación es sencilla para usted, no tendría que usar SPICE aquí si no lo desea.

Ha pasado un tiempo desde que miré los cálculos de azimut / elevación, aquí hay un intento del algoritmo (siéntase libre de editar y corregir):

Todos los vectores en el marco de referencia IAU_EARTH.

Vector de posición que apunta desde el sitio a JWST: r r mi yo = r j W S T r s i t mi

El vector de posición del sitio r s i t mi define el plano de superficie local. El norte local es igual a la proyección del vector unitario z sobre el plano de superficie local.

norte ^ = z ^ ( z ^ r ^ s i t mi ) r ^ s i t mi

Del mismo modo, la proyección de r r mi yo :

pag r o j r mi yo = r ^ r mi yo ( r ^ r mi yo r ^ s i t mi ) r ^ s i t mi

El acimut es igual al ángulo entre el norte local y esa proyección (debe verificar CW o CCW)

La elevación es igual al ángulo entre r ^ r mi yo y pag r o j r mi yo . Nuevamente, esto necesitaría verificar si JWST es visible en ese momento o en el otro lado de la Tierra.

Bien, ¡progreso! Lo que espero es algo que "extraiga los valores RA/Dec y Alt/Az para una posición de latitud/longitud en pasos de tiempo fijos". ¿Pueden llegar tan lejos estos paquetes?
@uhoh Acabo de agregar algo de información a la respuesta. No he comprobado ese algoritmo z/el, así que definitivamente siéntete libre de corregirlo si no es correcto.
Oh, idealmente estoy buscando el cálculo completo; El elipsoide WGS84 y todo (es por eso que me preguntaba si podría señalar Horizons a los núcleos más antiguos), pero esta solución autosuficiente sin duda sería buena para dibujar una imagen en el cielo que represente el camino de JWST. A 1,5 millones de km, el paralaje debido a una corrección de 10 km será ciertamente pequeño. ¡Gracias! Probaré esto pronto.