Traducción automática, no revisada por un hablante nativo. El inglés es la referencia.

ÓrbitasEditar en GitHubFuente: docs/SOLAR-SYSTEM.md

Sistema solar y posicionamiento en torno a otros cuerpos

Dos tipos de escenario funcionan más allá del sistema Tierra-Luna:

  • solar-system informa de todos los cuerpos del catálogo en una época: posición y velocidad, constantes físicas, tiempo de luz y distancia desde un cuerpo observador, y una trayectoria orbital.
  • body-pnt sitúa a un usuario de navegación (un orbitador o un módulo de aterrizaje en superficie) alrededor de cualquier cuerpo del catálogo distinto del Sol y la Tierra, con una constelación de navegación local y una distancia opcional de espacio profundo desde la Tierra.

El tipo constellation-design usa el mismo catálogo para construir constelaciones alrededor de cualquiera de estos cuerpos (CONSTELLATION-DESIGN.md).

Código: src/body.rs (el catálogo y sus constantes), src/ephem.rs (las efemérides analíticas), src/ephem_provider.rs (AnalyticSolarSystem, el proveedor que leen ambos tipos), src/solar_system.rs y src/body_pnt.rs (los tipos) y src/radiometric.rs (tiempo de luz, distancia bidireccional y retardo de Shapiro). Pruebas: tests/solar_system_horizons_reference.rs y las pruebas unitarias de cada módulo.

El catálogo#

Dieciocho cuerpos: el Sol, los ocho planetas, Plutón, la Luna, Fobos, Deimos, las cuatro lunas galileanas (Ío, Europa, Ganimedes, Calisto) y Titán. Los nombres se reconocen sin distinguir mayúsculas de minúsculas. Para cada uno, src/body.rs contiene el parámetro gravitacional GM, los radios medios ecuatorial y volumétrico, el segundo armónico zonal J2 y su radio de referencia cuando se ha publicado uno, y el modelo de polo y meridiano origen de la Unión Astronómica Internacional (IAU) (periodo de rotación sidéreo, negativo para un rotador retrógrado). Cada valor cita su fuente en el código.

De dónde proceden las posiciones#

Cuerpos Modelo Etiqueta
De Mercurio a Saturno y la Tierra, a partir de la Tabla 1 (de 1800 d. C. a 2050 d. C.) Elementos keplerianos del Laboratorio de Propulsión a Chorro (JPL) de Standish y Williams, https://ssd.jpl.nasa.gov/planets/approx_pos.html VALIDATED
Los ocho planetas, a partir de las Tablas 2a/2b (de 3000 a. C. a 3000 d. C.) los elementos de largo intervalo de la misma página VALIDATED
Urano y Neptuno, a partir de la Tabla 1 como arriba MODELLED
Plutón la fila de la Tabla 1 de 1992 (solo de 1800 d. C. a 2050 d. C.; la página actual la eliminó y no indica ningún error) MODELLED
La Luna las series lunares de Montenbruck y Gill, separando el baricentro Tierra-Luna MODELLED
Fobos, Deimos, las lunas galileanas, Titán elementos medios del JPL con el modelo de rotación de la IAU MODELLED

table = "auto" (el valor predeterminado) toma la Tabla 1 entre 1800 d. C. y 2050 d. C. y las Tablas 2a/2b fuera de ese intervalo; table1 y table2 fuerzan una de ellas. Plutón fuera de su tabla es un error, no una extrapolación. La época es una fecha y hora ISO 8601 en Tiempo Universal Coordinado (UTC), convertida a través del Tiempo Terrestre (TT) con los segundos intercalares al Tiempo Dinámico Baricéntrico (TDB), o una fecha juliana TDB dada directamente con epoch_jd_tdb.

La referencia independiente es JPL Horizons (https://ssd.jpl.nasa.gov/horizons/, Development Ephemeris DE441), con los vectores consultados confirmados en tests/fixtures/solar_system/. Una fila de planeta está VALIDATED cuando permanece dentro del doble del error nominal propio de la página de Standish. Medido por cargo test --test solar_system_horizons_reference -- --nocapture:

  • Tabla 1, de Mercurio a Saturno y el baricentro Tierra-Luna, 12 épocas de 1800 a 2049: peor caso 1,87 veces el error nominal (la distancia de Saturno).
  • Tablas 2a/2b, los ocho planetas, 15 épocas desde aproximadamente 1000 a. C. hasta 2500 d. C.: peor caso 1,71 veces (la distancia de Marte).
  • Urano y Neptuno de la Tabla 1 superan las cifras de la página frente a DE441: 2,04 y 5,16 veces el error nominal de longitud. Están fijados por debajo de seis veces y siguen siendo MODELLED.
  • Plutón: dentro de 39,2 segundos de arco en longitud y 1.14e9 m en distancia.
  • Lunas, peor ángulo visto desde el planeta entre 2000 y 2040: Fobos 5,65 grados, Deimos 0,38, Ío 0,40, Europa 1,63, Ganimedes 0,22, Calisto 0,27, Titán 3,31. La Luna geocéntrica: 0,046 grados.
  • Velocidades de los planetas: peor error relativo 3.72e-3 de la velocidad (MODELLED).

La Luna y las siete lunas se miden con umbrales fijados, pero no existe una cota publicada con la que validarlas, por lo que son MODELLED.

Las efemérides analíticas no necesitan ningún archivo de núcleo. Un núcleo de las Development Ephemeris del JPL (posiciones de grado DE) solo lo leen los crates de validación cruzada independientes de xval/, mediante el mismo rasgo EphemerisProvider; el crate principal no depende de ellos.

solar-system#

kind = "solar-system"
epoch = "2030-01-01T00:00:00"
bodies = ["Earth", "Moon", "Mars", "Jupiter", "Europa"]
observer = "Mars"

[[links]]
from = "Europa"
to = "Earth"
Solar system at 2030-01-01T00:00:00 (JD 2462502.50080 TDB), 5 bodies, observer Mars
  Standish Table 1 (1800 AD to 2050 AD)
  Earth       0.9833 au  lon  100.18 deg  light time    1038.1 s  [VALIDATED]
  Moon        0.9815 au  lon  100.28 deg  light time    1037.8 s  [MODELLED]
  Mars        1.3814 au  lon  337.83 deg  observer  [VALIDATED]
  Jupiter     5.4235 au  lon  222.19 deg  light time    3068.4 s  [VALIDATED]
  Europa      5.4194 au  lon  222.17 deg  light time    3066.6 s  [MODELLED]
  link Europa -> Earth: one-way 2993.281 s, two-way 5986.612 s, Shapiro 33.7 us, Sun 50.0 deg

Entradas: epoch (valor predeterminado 2026-01-01T00:00:00) o epoch_jd_tdb; bodies (por defecto los dieciocho); observer (por defecto la Tierra); track_points por órbita (de 8 a 2000, por defecto 120); table; y cualquier número de [[links]], cada uno recibido en la época.

Por cuerpo, el resultado da su clase y su cuerpo padre, el identificador del Centro de Navegación e Información Auxiliar de la NASA (NAIF), la posición y velocidad heliocéntricas en el Marco Internacional de Referencia Celeste (ICRF, ecuatorial J2000) en metros y metros por segundo, la longitud, latitud y distancia eclípticas, la posición relativa a su cuerpo padre, el periodo orbital, las constantes anteriores, el polo y el meridiano origen en la época, el error nominal de Standish cuando existe, su etiqueta y su cadena de método, y una trayectoria orbital durante una revolución (heliocéntrica para un planeta, centrada en el cuerpo padre para una luna; un solo punto para el Sol). El enlace desde el observador, y cada enlace adicional, da:

  • el tiempo de luz newtoniano unidireccional, resuelto con el resolvedor radiométrico de punto fijo del tiempo de luz con el transmisor en su posición retardada, y la distancia unidireccional correspondiente;
  • el tiempo de luz y la distancia bidireccionales;
  • el retardo de Shapiro del Sol, informado por separado y no sumado;
  • el ángulo de separación del Sol.

El tiempo de luz está VALIDATED frente al tiempo de luz unidireccional que informa Horizons: Marte y Júpiter hasta el centro de la Tierra en cuatro épocas de 2000 a 2040, peor error 0,070 s para Marte frente a un umbral de 0,207 s y 1,31 s para Júpiter frente a 4,04 s. El umbral es el doble de la suma de los errores de distancia de Standish del objetivo y del baricentro Tierra-Luna, dividido por la velocidad de la luz: el tiempo de luz no puede ser mejor que las posiciones. Es el tiempo de luz geométrico newtoniano, no un observable relativista ni corregido por plasma.

El scenarios/solar-system-tour.toml incluido informa de los dieciocho cuerpos en 2026-09-28T00:00:00 con trayectorias de 180 puntos, y añade los enlaces de Marte a Júpiter (unidireccional 2193,539 s), de Saturno a la Tierra (4212,176 s) y de Europa a Júpiter (2,218 s).

body-pnt#

Un usuario navega alrededor de un cuerpo elegido por nombre (cualquier cuerpo del catálogo salvo el Sol y la Tierra, que el tipo rechaza) con dos clases de medida:

  • pseudodistancias unidireccionales de una constelación de navegación Walker delta alrededor del cuerpo (planes por sats_per_plane, desfase entre planos phasing_f), volada como órbitas de dos cuerpos con la deriva secular J2 propia del cuerpo; el reloj del usuario es desconocido, por lo que estas filas llevan una columna de sesgo de reloj;
  • opcionalmente una distancia bidireccional desde el centro de la Tierra ([earth_link]), que no necesita reloj de usuario y se informa como una distancia unidireccional con su propio ruido. La dirección y la distancia de la Tierra proceden de la efeméride analítica en cada época.

Una línea de visión queda bloqueada cuando pasa por dentro del radio medio del cuerpo (la prueba de cuerda del tipo mars-pnt), y un usuario en superficie necesita además la máscara de elevación. En cada época la ejecución calcula la dilución de la precisión geométrica y de posición (GDOP, PDOP) de la constelación por sí sola, la incertidumbre formal de posición de una sigma con y sin la fila de la Tierra, y una solución de mínimos cuadrados de Gauss-Newton con semilla en cada caso, de modo que el informe muestra lo que añade el enlace de espacio profundo.

Tabla Campo Valor por defecto
nivel superior body Mars
epoch / epoch_jd_tdb 2027-02-19T00:00:00, una oposición de Marte
duration_s, step_s 86.400 s, 600 s
seed 1
table auto
[user] kind orbiter (o surface)
orbitador: altitude_km, inclination_deg, raan_deg, u0_deg, eccentricity 400 km, 75 grados, 0, 0, 0
superficie: lat_deg, lon_deg, height_m 0, 0, 0
[constellation] planes, sats_per_plane, phasing_f 3, 4, 1
altitude_km tres radios medios
inclination_deg 60 grados
sigma_range_m 1 m
mask_deg (usuario en superficie) 10 grados
[earth_link] enabled, sigma_range_m verdadero, 1 m

raan_deg es la ascensión recta del nodo ascendente en el sistema ecuatorial del cuerpo y u0_deg el argumento de latitud en la época.

Los dos escenarios incluidos, tal como se ejecutan con kshana 0,36 (matemática portable, igual en todas las plataformas):

scenarios/mars-orbit-pnt.toml scenarios/europa-surface-pnt.toml
Usuario orbitador, 300 km, 93 grados superficie, 20 grados N, 60 grados E
Relés 12 a 10.000 km, 60 grados 12 a 4500 km, 55 grados, máscara de 10 grados
Duración un sol, 296 épocas 306.822 s, 171 épocas
Tiempo de luz con la Tierra, de ida / de ida y vuelta 338,3 s / 676,6 s 2182,9 s / 4365,8 s
Tierra a la vista 0,811 de las épocas 0.439
Disponibilidad, solo relés / con la distancia a la Tierra 1.000 / 1.000 0.480 / 0.713
PDOP mediano 1.375 5.360
Error RMS de la solución de posición, solo relés / con la distancia a la Tierra 1,883 m / 1,629 m 112,742 m / 86,499 m
Sigma formal mediana, solo relés / con la distancia a la Tierra 1,375 m / 1,304 m 5,360 m / 4,239 m

(RMS: valor cuadrático medio.) Una época de Europa (t = 16.200 s) está en el borde de la disponibilidad, donde el último bit de un radio calculado decide si se obtiene su solución con la distancia a la Tierra. Antes de la 0,36, lo decidía la biblioteca matemática del anfitrión, de modo que el mismo escenario imprimía 0,719 y 86,147 m en Linux x86-64 y 0,725 y 85,800 m en macOS arm64 para las dos cifras «con la distancia a la Tierra». Desde la 0,36, toda función trascendente la calcula la biblioteca matemática portable, la época se resuelve de una única manera en todas las plataformas (nativa y WebAssembly dan los mismos bytes) y las cifras son 0,713 y 86,499 m (docs/revisions/STUDIO15-portable-math-rebaseline.md). En torno a Europa, la distancia a la Tierra eleva la disponibilidad de 0,480 a 0,713 de las épocas. Donde la Tierra nunca supera el limbo, el enlace no aporta nada: un módulo de aterrizaje a 89,5 grados S en la Luna bajo una capa de 12 satélites de relés a 5000 km tiene la Tierra a la vista en 0 de 145 épocas, y sus errores son los mismos con el enlace y sin él.

MODELLED. Las órbitas de los relés ignoran los terceros cuerpos (no se modela la atracción de Júpiter sobre los relés alrededor de Europa), el ruido es gaussiano con los niveles indicados y el modelo de medida es instantáneo, no con retardo de tiempo de luz. Lo que se comprueba: el periodo de los relés frente a la tercera ley de Kepler para el cuerpo, un orbitador que conserva su radio y un módulo de aterrizaje en la superficie, que la distancia a la Tierra nunca empeore la incertidumbre formal, que los errores de las soluciones con semilla concuerden con la sigma formal (valor cuadrático medio del error sobre sigma en [0,6, 1,5]) y una ejecución determinista. Nada de esto son datos de navegación de una misión.

El tipo ephemeris#

A pesar del nombre, ephemeris es un tipo de satélite terrestre: un satélite, a partir de un conjunto de elementos de dos líneas (TLE) mediante el propagador de Perturbaciones Generales Simplificadas 4 (SGP4) o a partir de una órbita analítica, sobre una malla temporal. En cada paso emite el estado inercial (posición y velocidad) en el sistema de ecuador verdadero y equinoccio medio (TEME) y en el Sistema Celeste de Referencia Geocéntrico (GCRS), la posición fija a la Tierra, el punto subsatélite del Sistema Geodésico Mundial 1984 (WGS 84) y, para una estación terrestre opcional, acimut, elevación, distancia y velocidad de distancia. eop_finals2000a toma el texto de un archivo finals2000A del Servicio Internacional de Rotación de la Tierra y Sistemas de Referencia (IERS) para UT1−UTC y movimiento polar por época. Código: src/ephemeris.rs.

$ kshana scenarios/ephemeris.toml
scenario 0d4dd01b3160 | sgp4 (TLE) | 559 samples | alt 419–434 km | |lat| ≤ 51.8° | speed 7653–7661 m/s | max el 25.7° peak Doppler 34.3 kHz

No modelado#

  • Términos relativistas de tiempo de luz más allá del retardo de Shapiro informado por separado, y el retardo por plasma solar.
  • Posiciones mejores que la precisión de Standish y de elementos medios indicada más arriba; el crate principal no tiene lector de núcleos.
  • Perturbaciones de terceros cuerpos en los relés de body-pnt y en las órbitas de constellation-design.
  • Terreno en cualquier cuerpo: un cuerpo es su esfera media.
  • Exportaciones de interoperabilidad: CZML, KML y GeoJSON describen posiciones en torno a la Tierra, por lo que los escenarios solar-system y body-pnt no exportan ninguna (INTEROP.md).

Referencias#

  • E. M. Standish y J. G. Williams, "Keplerian Elements for Approximate Positions of the Major Planets", JPL Solar System Dynamics, https://ssd.jpl.nasa.gov/planets/approx_pos.html.
  • O. Montenbruck y E. Gill, Satellite Orbits: Models, Methods and Applications, Springer, 2000, §3.3.2.
  • B. A. Archinal et al., "Report of the IAU Working Group on Cartographic Coordinates and Rotational Elements: 2015", Celestial Mechanics and Dynamical Astronomy 130, 2018.
  • JPL Horizons, https://ssd.jpl.nasa.gov/horizons/.