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?
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.
Cazador de ciervos