Vue de la Lune depuis Artemis II

par Jeffrey Bryant
Article original
Maintenant qu’Artemis II a été lancée avec succès et a quitté l’orbite terrestre en route vers la Lune, le nouvel objectif est d’effectuer un vol autour de la Lune. J’ai présenté la trajectoire orbitale prévue dans un précédent article (https://community.wolfram.com/groups/-/m/t/3672762). Maintenant, je veux explorer ce que l’équipage verra à l’approche de la Lune, puis lors du retour vers la Terre.
Comme auparavant, nous devons interroger JPL Horizons pour obtenir les données de trajectoire les plus récentes de la mission. Nous devons d’abord définir la fenêtre pour les dates et les heures, dans ce cas les limites des données fournies par JPL et un incrément d’échantillonnage de 10 minutes :
In[]:=
date0=
Thu 2 Apr 2026 01:58:00GMT
;​​date1=
Fri 10 Apr 2026 23:50:00GMT
;​​dt=
10
min
;
Il est maintenant possible d’interroger JPL Horizons :
In[]:=
horizonsEarth=
[◼]
HorizonsEphemerisData
"State","@-1024",<|"Frame"->"EclipticJ2000","Center"->
Earth
PLANET
,"Dates"->{date0,date1,dt}|>,"Position","Dataset";
Ensuite, on peut construire une TimeSeries à partir des données interrogées :
In[]:=
artemisEarthTS=TimeSeries@QuantityMagnitude[Normal@horizonsEarth,"AstronomicalUnit"];
Puis, certaines fonctions utilitaires sont créées pour obtenir les positions des divers éléments de la scène finale, en utilisant le référentiel "EclipticICRS" (qui est identique à « EclipticJ2000 » de la NASA) centré sur le centre de la Terre :
In[]:=
artemisPos[d_]:=Values[artemisEarthTS[d]]​​moonPos[d_]:=AstroPosition
Moon
PLANETARY MOON
,"EclipticICRS",d,
Earth
PLANET
,"Cartesian"["Data"]​​earthPos[d_]:={0,0,0};​​sunPos[d_]:=AstroPosition
Sun
STAR
,"EclipticICRS",d,
Earth
PLANET
,"Cartesian"["Data"]
Comme auparavant, on utilise certaines fonctions non documentées pour obtenir les rotations temporellement dépendantes correctes des éléments 3D. Le repère "EclipticICRS" est indépendant du temps, donc nous n’avons pas besoin de lui donner une date :
In[]:=
moonRot[d_]:=Astronomy`AstroOrientationMatrix[{"IAU_MOON",d},"EclipticICRS"]​​earthRot[d_]:=Astronomy`AstroOrientationMatrix[{"ITRS",d},"EclipticICRS"]
Les dimensions physiques des corps sont nécessaires :
In[]:=
moonRad=QuantityMagnitude
Moon
PLANETARY MOON
["EquatorialRadius"],"AstronomicalUnit";​​earthRad=QuantityMagnitude
Earth
PLANET
["EquatorialRadius"],"AstronomicalUnit";​​sunRad=QuantityMagnitude
Sun
STAR
["EquatorialRadius"],"AstronomicalUnit";
Des textures et des styles sont nécessaires pour les corps du système solaire :
In[]:=
moon0={Texture[GeoImage[GeoModel->"Moon",GeoCenter->-90,GeoProjection->"Equirectangular",GeoZoomLevel->2]],Sphere[]};​​earth0=
Earth
PLANET
["TexturedSurface"][[1]];​​sun0={ColorData["BlackBodySpectrum"][5770],Sphere[]};
Nous allons ensuite faire pivoter, redimensionner et déplacer chacun des corps du système solaire pour les placer à leur emplacement respectif :
In[]:=
moon[d_]:=Translate[Scale[GeometricTransformation[moon0,moonRot[d]],moonRad,{0,0,0}],moonPos[d]]​​earth[d_]:=Scale[GeometricTransformation[earth0,earthRot[d]],earthRad,{0,0,0}]​​sun[d_]:=Translate[Scale[sun0,sunRad,{0,0,0}],sunPos[d]]
Une certaine mise en forme pour l’estampille de date est également utile :
In[]:=
label[d_]:=Style[DateString[d,{"DayShort"," ","MonthNameShort"," ","Year"," ","Hour24",":","Minute",":","Second"," ","GMT"}],GrayLevel[.75],Bold,22]
Pour rendre les choses plus intéressantes, il est utile de « ralentir l’horloge » lorsque la vue est proche de la Lune afin qu’une plus grande attention aux détails soit possible. Pour ce faire, l’intervalle de dates est échantillonné par incréments de 1 minute lorsqu’on est loin de la Lune, mais par incréments de 1 seconde lorsqu’on est proche de la Lune.
In[]:=
movingAverage[dates_List,n_Integer]:=Mean/@Partition[dates,n,1];
In[]:=
IntervalSampling[intsamps_List]:=With[{all=Union@@Map[IntervalSampling,intsamps]},{n=Round[Length[all]/100,2]},{res=movingAverage[all,n+1]},Union[Take[all,n/2],res,Take[all,-n/2]]];
In[]:=
IntervalSampling[Rule[{tmin_,tmax_},dt_]]:=Range[tmin,tmax,dt]
In[]:=
dates=IntervalSampling
Thu 2 Apr 2026 01:58:00GMT
,
Fri 10 Apr 2026 23:50:00GMT
->
1
min
,
Mon 6 Apr 2026 22:37:00GMT
,
Tue 7 Apr 2026 02:09:00GMT
->
1
s
;
La scène peut enfin être assemblée. La fonctionnalité clé ici est l’utilisation de l’option ViewVector. Cela permet de placer la caméra à l’emplacement du vaisseau spatial et de pointer la cible vers la Lune. Le résultat est une vue simulée de ce que l’équipage d’Artemis II verrait s’il regardait la Lune pendant toute la mission.
In[]:=
crewViewFrames=Graphics3D​​{AmbientLight[GrayLevel[.2]],​​{Specularity[White,1],PointLight[White,sunPos[#]],AmbientLight[GrayLevel[.2]],moon[#],earth[#]},​​{DirectionalLight[White,ImageScaled[{0,0,1}]],sun[#]}​​},​​
​​&/@dates;
In[]:=
crewViewVideo=SlideShowVideo[crewViewFrames,DefaultDuration->45,RasterSize->{720,720}]
Out[]=
CloudObject[
https://www.wolframcloud.com/obj/jeffb/Video/Video-2026-04-03T11-31-4
1-337.mp4
]

Retour sur la vue orbitale précédente

CITER CE NOTEBOOK