Asteroide 2013 TX68 5 de marzo de 2016 acercamiento cercano y cálculo con Skyfield

Esta página web de la NASA describe el acercamiento cercano del asteroide 2013 TX68 el 5 de marzo de 2016 y muestra una distribución de probabilidad del punto de acercamiento más cercano basada en los únicos datos disponibles en este momento: tres o cuatro días de mediciones en octubre de 2013.

Captura de pantalla (5 de febrero de 2016) de [ http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=2013%20TX68;orb=1] que encontré aquí .

captura de pantalla de la página web de la NASA sobre 2013 TX68

Traté de cargar DE431 en Skyfield por curiosidad para ver si puedo aprender a usar este tipo de soluciones (que a veces pueden incluir una incertidumbre sustancial), pero me detuvo de inmediato un error que se muestra a continuación.

Pregunta: ¿Cómo manejar este error? Y, más ampliamente, ¿cómo empezar a utilizar soluciones orbitales de asteroides en Skyfield?

>>> data421 = load('de421.bsp')  # this worked
>>> data431 = load('de431.bsp')  # few seconds delay, and then:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/yournamehere/anaconda2/anaconda/envs/myenv/lib/python2.7/site-packages/skyfield/iokit.py", line 43, in load
    download(url, path, verbose=verbose)
  File "/Users/yournamehere/anaconda2/anaconda/envs/myenv/lib/python2.7/site-packages/skyfield/iokit.py", line 74, in download
    raise IOError('cannot get {1} because {2}'.format(url, e))
IndexError: tuple index out of range
El error indica que los datos no están en el formato esperado por el programa. Entonces tendría que averiguar qué formato de datos espera Skyfield.
@Hobbes Skyfield lee muchas efemérides de la NASA (DExxx) pero no esta que me sorprendió, y esa es solo la primera parte de la pregunta.
Puede intentar hacer ping a Brandon en github ( github.com/skyfielders/python-skyfield ), él es bastante bueno respondiendo. Sugerencias obvias: 1) ¿Qué sucede si carga SÓLO de431.bsp sin de421.bsp primero? El único de431.bsp que tengo está en dos partes. ¿Está utilizando una versión combinada? ¿Tiene su de431.bsp el tamaño correcto, está completamente descargado, etc.?
Gracias @barrycarter: el mismo error incluso si intento de431 primero. Busqué y descubrí que DE431 es bastante grande, puede haber un problema de espacio. Lo comprobaré. Parece que las "dos partes" podrían ser de lo que habla el mensaje de error. Trataré de hacerle ping (no estoy activo allí, tendré que recordar cómo) hasta ahora parece encontrar mis preguntas tarde o temprano. Tal vez este sea un caso en el que debería intentar usar el sistema Horizons .
Si solo necesita posiciones en horarios fijos, Horizons es el camino a seguir. Si realmente desea calcular una trayectoria, no estoy seguro de que DE431 tenga esto, pero quizás podría combinarlo con datos de asteroides. Siéntase libre de enviarme un ping directamente (ver perfil) y luego publicar los resultados aquí si encontramos algo.
Como estamos hablando de miles de kilómetros, la elección de qué efemérides no es tan importante. Me doy cuenta de que la verdadera tarea es tomar los elementos orbitales (a la izquierda) en coordenadas heliocéntricas J2000 y unirlos con el BCRS de Skyfield ( @barrycarter Celestial Reference System ) .

Respuestas (3)

Aunque el universo gira a mi alrededor, supongo que te refieres al sistema de referencia celestial baricéntrico :)

HORIZONTES le dará estos elementos si utiliza esta configuración:

ingrese la descripción de la imagen aquí

El asteroide TX 68 2013 pasará cerca de la tierra el 5 de marzo de 2016

Me gusta tu video, gracias por el enlace! ¿Está usando la dinámica del sistema solar de la NASA ? ¿Tal vez podrías publicar un enlace que abra ssd con el asteroide cargado? Además, ¿es ese "estilo de lente" sobre la tierra a las 1:54? Y mirando de 1:57 a 1:59, la trayectoria del asteroide (línea blanca) en el lado izquierdo de la pantalla cambia a una forma extraña: una especie de pliegue sobre la órbita terrestre. ¿Es real? ¿Lo que está sucediendo?

El error IndexError: tuple index out of rangese debe simplemente a que escribí mal los dos índices en el mensaje de error en ese archivo fuente. Python tiene índices cero, por lo que debería haber escrito:

IOError('cannot get {0} because {1}'.format(url, e))

En cambio, como puede ver, parece que he producido el error total:

IOError('cannot get {1} because {2}'.format(url, e))

Esta solución estará en la próxima versión de Skyfield (¡y gracias por señalar el problema que encontró!). Puede editar el archivo fuente a mano por ahora si desea ver el mensaje de error que su código está tratando de imprimir, que es:

OSError: cannot get ftp://ssd.jpl.nasa.gov/pub/eph/planets/bsp/de431.bsp ...

El problema es que no de431.bspexiste en ese directorio:

ftp://ssd.jpl.nasa.gov/pub/eph/planets/bsp/

¿Quizás tenía la intención de nombrar el de431t.bsparchivo? (En cuyo caso, debe tener más espacio libre en disco que yo, ¡tiene un tamaño de 3,4 GB!)

Dado que el acercamiento del asteroide es en 2016, puede usar las efemérides DE430 mucho más pequeñas. Y a menos que esté tratando de predecir su ubicación dentro de, digamos, 1 metro, debería poder usar las efemérides DE421 o DE405 mucho más pequeñas sin ningún problema.

¿Tiene una fuente de efemérides para el asteroide? ¿O querrás producir uno a partir de elementos orbitales?

¡Gracias por pasar! Sí, me tomó un día darme cuenta de que, a efectos prácticos de decenas de km, la elección de las efemérides no está relacionada con los elementos orbitales del asteroide. Soy una de esas personas que prácticamente vive en python, así que me gustaría cargar automáticamente o simplemente copiar/pegar los elementos orbitales en un script de skyfield y usar cualquiera tx68.at(jd).position.kmde las coordenadas (x, y, z) de tx68 en BCRS, o here.at(jd).observe(tx68).apparent().altaz()para obtener una posición aparente en el cielo.
¡Y, de hecho, habría alcanzado el límite de espacio en disco si hubiera comenzado!