¿Qué software de simulación/visualización de espacios 3D (gratuito o comercial) puedo utilizar como posprocesador de datos calculados con Fortran?

Estoy diseñando una misión espacial interplanetaria (Diseño de trayectorias de baja energía a Objetos Cercanos a la Tierra) usando Fortran.

Básicamente, estoy trabajando con el Problema circular restringido de 3 cuerpos (CR3BP), Puntos de Lagrange, Múltiple invariante, por lo que estoy tratando con el Marco de referencia inercial heliocéntrico (eclíptica heliocéntrica IAU76/J2000, de las efemérides de cuerpos pequeños del JPL de la NASA) y la referencia baricéntrica sinodal marco con dos cuerpos primarios, el Sol y el sistema Tierra-Luna.

Una vez que obtenga los datos, almacenados como matrices en archivos .txt o .csv, supongo, me gustaría visualizarlos usando un software de simulación espacial 3D (al hacer una investigación en Internet, encontré candidatos potenciales: GMAT, FreeFlyer, STK , Celestia, Motor espacial).

Me gustaría explotar cuerpos 3D y su dinámica ya presente en el software (Sol, Tierra, asteroides y cometas) y tener la posibilidad de importar objetos 3D como CAD de naves espaciales (o tal vez usar modelos de naves espaciales integrados en el software). Por supuesto, con Fortran solo encontraré la dinámica (trayectoria) de la nave espacial, por lo que el software debe haber incorporado la dinámica de los objetos celestes naturales. Comento que utilizaré el software principalmente como postprocesador y no para la propagación numérica (que realizaré en Fortran).

¿Puede decirme cuáles son los software más útiles para mi alcance?

PD ¡Más respuestas son bienvenidas!

Fortran no es un problema en la producción de datos. Es solo un lenguaje de programación. Obtener los datos producidos por el procesador en un formato que pueda usar un posprocesador podría serlo. Son solo datos. Si ha escrito el código Fortran utilizado por el procesador, puede cambiar el formato de salida a lo que desee o lo que sea necesario. Conocer el formato de datos utilizado o aceptado por un postprocesador es la clave. Si no escribió el código Fortran utilizado por el procesador, es posible que necesite una aplicación intermediaria para convertir el formato de datos del procesador a lo que requiera un posprocesador.

Respuestas (2)

ingrese la descripción de la imagen aquíUna opción es Cosmographia mejorada con SPICE. Puede convertir sus archivos de texto de salida a núcleos SPICE SPK (extensión .bsp) o, más simplemente, a un archivo de texto con datos estructurados (consulte la sección InterpolatedStates de esta página para obtener más detalles: https://cosmoguide.org/trajectory-types/ ) que puede ser leído por Cosmographia. También puede importar modelos CAD de naves espaciales (.3ds funciona mejor). Cosmographia ya tiene todos los planetas y muchos cuerpos pequeños cargados (a través de los núcleos SPICE). Siempre puede agregar más si lo desea mediante el mismo proceso de agregar trayectorias de naves espaciales. También puede ingresar cuaterniones de actitud de la nave espacial (núcleos SPICE) para mostrar el control de actitud

También puede definir marcos de referencia no inerciales personalizados mediante núcleos SPICE, como el marco de referencia giratorio CR3BP (la trayectoria de Lucy en el marco giratorio Sol-Júpiter):ingrese la descripción de la imagen aquí

Aquí hay algunos ejemplos más de cómo se ve:

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

SPICE se escribió originalmente en Fortran. Nunca he usado la versión de Fortran, pero OP tiene experiencia en el idioma, así que creo que OP podría resolverlo fácilmente: https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/Tutorials/pdf/individual_docs/41_program_fortran. pdf

Para aquellos que tienen experiencia con Python, hay un contenedor SPICE de terceros para CSPICE llamado SpiceyPy ( https://spiceypy.readthedocs.io/en/master/documentation.html ) que se puede usar para escribir núcleos SPK con cualquiera de sus funciones que comienzan con "SPKW". Aquí está uno de ellos: https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/spkw09_c.html

En general, hay una pequeña curva de aprendizaje (conceptos básicos de SPICE, Python, JSON), pero una vez que aprende a usarlo, es súper poderoso. Hice una serie de videos en mi trabajo YouTube que repasa todo en detalle:

+n!votando n-factorial como siempre! Probablemente la mayoría de las personas no puedan convertir archivos de texto a kernels SPICE SPK (extensión .bsp) adecuados sin alguna ayuda u orientación, por lo que la opción .csv parece mucho más fácil. ¿Hay restricciones? ¿Pueden estar espaciados de manera desigual en el tiempo? ¿Cómo interpola el programa? ¿Lineal? ¿Ranura? ¿El sabor favorito de la NASA del polinomio de Chebyshev?
@uhoh Buenos puntos, agregué algunos enlaces a la respuesta (¡resulta que no es CSV!). En cuanto a la interpolación de archivos de datos de texto, no mencionan qué tipo usan. Supongo que sería Chebyshev, pero no lo sé. Yo creo que mientras los tiempos de las efemérides sean en orden ascendente funciona. Para ser honesto, no he usado esa funcionalidad (solo he usado kernels SPICE), así que no puedo decirlo con certeza. En general, este programa es poderoso pero lleva más tiempo mostrar cómo usarlo que 1 publicación. Pasé innumerables horas aprendiendo en el trabajo, así que ahora me siento cómodo con él, pero ciertamente no al principio.
@uhoh, creo que es una configuración en el canal en sí (es mi trabajo, no mi personal, así que no lo controlo).
Si hizo el video, permita que se "vea en otros sitios web", como Stack Exchange. De lo contrario, producirá un feo error.
@VScode_fanboy lo acaba de actualizar
Hola @AlfonsoGonzalez gracias por tu sugerencia. Me parece una herramienta muy interesante. Solo como ejemplo y para familiarizarme con el software, ¿puede mostrarme cómo propagar la órbita de un asteroide? Estoy interesado en algunos asteroides que he seleccionado según algunos criterios sobre parámetros orbitales en el sitio web de NASA JPL SSD: enlace . ¿Puede mostrarme, por ejemplo, cómo propagar (o importar desde el sitio web anterior) la órbita del asteroide 1991 VG, por favor?
@Giuseppe Este video muestra cómo propagar órbitas en Python: youtu.be/TzX6bg3Kc0E
Gracias @Alfonso Gonzáles. ¿Hay alguna forma de importar mi vector de estado de asteroide almacenado como matriz en un archivo .txt?
@Giuseppe Lo más fácil sería simplemente copiar y pegar el vector de estado inicial en el script de Python.

Recomendaría consultar FreeFlyer (aunque GMAT y STK pueden ser intercambiables en su caso de uso). El Centro Espacial Johnson de la NASA utiliza FreeFlyer para el diseño y las operaciones de misiones espaciales, ya que contiene un conjunto muy completo de capacidades y características. Estos incluyen el modelado de cuerpos celestes y la visualización de objetos en 3D que está buscando.

FreeFlyer contiene un objeto SolarSystem incorporado que proporciona control sobre cómo el software modela el entorno físico del sistema solar. Para cualquier cosa más allá del conjunto estándar de cuerpos celestes incluidos (ocho planetas, la luna de la Tierra, el Sol, Plutón), hay capacidad para CelestialObjects definidos por el usuario que se pueden propagar usando un propagador de dos cuerpos o un propagador de efemérides de especias.

FreeFlyer también proporciona herramientas para visualizar modelos 3D personalizados de naves espaciales. Los tipos de archivos de importación compatibles incluyen .3ds, .prj, .lwo, .lxo, .obj, .stl.

Vínculos útiles del archivo de ayuda:

Primeros pasos con FreeFlyer

Modelos de vehículos 3D

Objetos celestiales

Sistema solar

Hola @Angel Rocha, gracias por tu respuesta. Tengo algunas preguntas (teniendo en cuenta que mi propósito es una visualización de los resultados obtenidos en Fortran): 1 - ¿FreeFlyer está disponible gratuitamente para estudiantes universitarios italianos? 2 - ¿Cuáles son las principales diferencias con respecto a la herramienta presentada en la respuesta anterior de este tema, es decir, SPICE-Enhanced Cosmographia? 3 -Teniendo en cuenta que puedo programar en Matlab y soy un principiante en la programación de Fortran, según su opinión, ¿cuál de las dos herramientas es mejor para mí?
FreeFlyer es caro para las empresas (¡aunque no tanto como STK!), pero es gratuito para los estudiantes universitarios según la página del fabricante en ai-solutions.com/freeflyer-astrodynamic-software/… Tiene su propio lenguaje de programación, diferente tanto de Matlab como de Fortran, pero no más difícil que cualquier otra cosa que pueda tener que aprender.
Bien, según su opinión, FreeFlyer es más fácil que Cosmographia mejorado con SPICE para un usuario principiante.