Uso de datos de efemérides en aplicación de trayectoria interplanetaria

Estoy tratando de escribir una aplicación de Mathematica que permita a los usuarios elegir su fecha de salida y hora de vuelo para una misión de transferencia interplanetaria (actualmente solo funciona para transferencias Tierra-Marte), que luego se anima (similar al navegador de trayectoria de la NASA excepto que no es tan genial).

Hasta ahora he logrado que funcione el solucionador de Lambert y el modelo numérico Sol-Tierra-Marte de 3 cuerpos, pero ahora necesito descubrir cómo obtener datos de efemérides automáticamente de las efemérides de Horizons de JPL cuando un usuario selecciona su fecha de salida y TOF . Pensé en intentar incorporar el servicio telnet de Horizons en la aplicación, pero podría ser bastante difícil hacerlo funcionar, y los datos de posición y velocidad que se proporcionan no parecen estar en un formato compatible con Mathematica, lo que podría requerir mucho coincidencia/reemplazo de cadenas.

Otra alternativa sería descargar y tabular años de datos de efemérides en una hoja de cálculo y extraerlos de allí a pedido, pero esto también parece una tarea laboriosa. Mi pregunta por lo tanto es esta:

¿Cómo obtienen sus datos de efemérides los planificadores/trazadores de trayectorias normales?

Respuestas (1)

Usando el kit de herramientas SPICE y un archivo de efemérides reciente como DE430 (una descarga de 120 MB). También necesitará un kernel de segundos bisiestos reciente .

El kit de herramientas proporciona interfaces para Fortran, C, IDL y Matlab, pero no para Mathematica. Puede usar la versión C del kit de herramientas y MathLink o LibraryLink de Mathematica para acceder al kit de herramientas.

Hay muchas, muchas funciones en el kit de herramientas , pero solo necesitará un puñado. Por ejemplo, puede usar furnsh_c()para cargar el archivo de efemérides y el archivo de segundos intercalares, y spkezr_c()para obtener la posición y la velocidad del cuerpo especificado en el momento especificado, en el marco de referencia especificado.

secundado. SPICE es una necesidad absoluta hoy en día, simplifica enormemente muchas tareas rutinarias (y algunas no tan rutinarias).