Vista da Lua a partir da Artemis II
Vista da Lua a partir da Artemis II
por Jeffrey Bryant
Agora que a Artemis II foi lançada com sucesso e deixou a órbita da Terra rumo à Lua, o novo objetivo é realizar o sobrevoo ao redor da Lua. Abordei a trajetória orbital esperada em uma publicação anterior (https://www.wolframcloud.com/obj/international-essays/Published/ArtemisIItrajectory_pt-br.nb). Agora, o objetivo é explorar o que a tripulação verá ao se aproximar da Lua e depois ao retornar para casa.
Como fizemos anteriormente, é necessário consultar JPL Horizons para obter os dados mais recentes de trajetória da missão. Primeiro, é preciso definir o intervalo de data e hora — neste caso, os limites dos dados fornecidos por JPL e um incremento de amostragem de 10 minutos:
In[]:=
date0=;date1=;dt=;
Em seguida, podemos consultar JPL Horizons:
In[]:=
horizonsEarth="State","@-1024",<|"Frame"->"EclipticJ2000","Center"->,"Dates"->{date0,date1,dt}|>,"Position","Dataset";
Depois, uma TimeSeries pode ser construída a partir dos dados obtidos:
In[]:=
artemisEarthTS=TimeSeries@QuantityMagnitude[Normal@horizonsEarth,"AstronomicalUnit"];
Na sequência, são criadas algumas funções auxiliares para obter as posições dos diversos elementos da cena final, utilizando o referencial “EclipticICRS” (que é idêntico ao “EclipticJ2000” da NASA), centrado no centro da Terra:
In[]:=
artemisPos[d_]:=Values[artemisEarthTS[d]]moonPos[d_]:=AstroPosition,"EclipticICRS",d,,"Cartesian"["Data"]earthPos[d_]:={0,0,0};sunPos[d_]:=AstroPosition,"EclipticICRS",d,,"Cartesian"["Data"]
Como anteriormente, são utilizadas algumas funções não documentadas para obter as rotações corretas dependentes do tempo dos elementos tridimensionais. O referencial “EclipticICRS” é independente do tempo, portanto não é necessário fornecer uma data:
In[]:=
moonRot[d_]:=Astronomy`AstroOrientationMatrix[{"IAU_MOON",d},"EclipticICRS"]earthRot[d_]:=Astronomy`AstroOrientationMatrix[{"ITRS",d},"EclipticICRS"]
São necessários também os tamanhos físicos dos corpos:
In[]:=
moonRad=QuantityMagnitude["EquatorialRadius"],"AstronomicalUnit";earthRad=QuantityMagnitude["EquatorialRadius"],"AstronomicalUnit";sunRad=QuantityMagnitude["EquatorialRadius"],"AstronomicalUnit";
Texturas e estilos são necessários para os corpos do sistema solar:
In[]:=
moon0={Texture[GeoImage[GeoModel->"Moon",GeoCenter->-90,GeoProjection->"Equirectangular",GeoZoomLevel->2]],Sphere[]};earth0=["TexturedSurface"][[1]];sun0={ColorData["BlackBodySpectrum"][5770],Sphere[]};
Em seguida, cada um dos corpos do sistema solar é rotacionado, escalado e transladado para suas posições apropriadas:
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]]
Alguma estilização para a marcação de data também é útil:
In[]:=
label[d_]:=Style[DateString[d,{"DayShort"," ","MonthNameShort"," ","Year"," ","Hour24",":","Minute",":","Second"," ","GMT"}],GrayLevel[.75],Bold,22]
Para tornar a visualização mais interessante, é útil “desacelerar o tempo” quando a visualização estiver próxima da Lua, permitindo maior atenção aos detalhes. Para isso, o intervalo de datas é amostrado em incrementos de 1 minuto quando a espaçonave está distante da Lua e em incrementos de 1 segundo quando está próxima dela.
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,->,,->;
Por fim, a cena pode ser montada. A funcionalidade principal aqui é o uso da opção ViewVector, que permite posicionar a câmera no local da espaçonave e apontar o alvo para a Lua. O resultado é uma visualização simulada do que a tripulação da Artemis II veria ao observar a Lua durante toda a missão.
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[]=
Revisitando a visualização orbital anterior
Revisitando a visualização orbital anterior
Esta seção é essencialmente uma versão abreviada do conteúdo da publicação anterior, com alterações no código para torná-lo consistente com esta nova abordagem. Reconstruir essa visualização pode ser útil caso se deseje combinar ambos os vídeos, mantendo-os sincronizados entre si.
In[]:=
datesFromData=Keys[Normal[horizonsEarth]];
In[]:=
xyzArtemisEarth=QuantityMagnitude[Values/@Values@Normal[horizonsEarth[[All,{"X","Y","Z"}]]],"AstronomicalUnit"];
In[]:=
artemisEarthTimeSeries=TimeSeries[Transpose[{datesFromData,xyzArtemisEarth}]]
Out[]=
TimeSeries
In[]:=
artemisDataFromEarth[d_]:={StandardRed,AbsolutePointSize[10],Point[artemisEarthTimeSeries[d]],Opacity[.75],AbsoluteThickness[2],Line[xyzArtemisEarth]}
In[]:=
moonPath=LineAstroPosition,"EclipticICRS",#,,"Cartesian"["Data"]&/@datesFromData;
In[]:=
moonDataFromEarth[d_]:=White,SphereAstroPosition,"EclipticICRS",d,,"Cartesian"["Data"],moonRad,Opacity[.5],AbsoluteThickness[2],moonPath
flybyDate=;
In[]:=
moonFlybyPos=AstroPosition,"EclipticICRS",flybyDate,,"Cartesian"["Data"];
In[]:=
optionsFromEarth={ImageSize->{720,720},SphericalRegion->Sphere[moonFlybyPos/2,0.00054],ViewAngle->Pi/20,Boxed->False,ViewPoint->{-1.38,-3,.5},Background->Black};
In[]:=
orbitViewFrames=Graphics3D[{{White,Translate[Scale[Sphere[],moonRad,{0,0,0}],moonPos[#]],Opacity[.5],AbsoluteThickness[2],moonPath},earth[#],{StandardRed,AbsolutePointSize[10],Point[artemisEarthTimeSeries[#]],Opacity[.75],AbsoluteThickness[2],Line[xyzArtemisEarth]}},optionsFromEarth]&/@dates;
A combinação dos vídeos é deixada, em grande parte, como exercício para o leitor, mas funções como GridVideo podem ser uma maneira simples e eficaz de uni-los.
CITE ESTE NOTEBOOK
CITE ESTE NOTEBOOK
View of the Moon from Artemis II
by Jeffrey Bryant
Wolfram Community, STAFF PICKS, April 3, 2026
https://community.wolfram.com/groups/-/m/t/3673962
by Jeffrey Bryant
Wolfram Community, STAFF PICKS, April 3, 2026
https://community.wolfram.com/groups/-/m/t/3673962