You know you live in accelerating space exploration age when two countries successfully land their spacecrafts on the Moon
In[]:=
lan1=;lan2=;
within just 150 days:
In[]:=
EntityValue{lan1,lan2},,"Dataset"
Out[]=
In[]:=
DateDifference@@Cases[%,_DateObject,Infinity]
Out[]=
Those countries of course being India and Japan:
In[]:=
{flag1,flag2}=#["CountryOfOperatorOwner"][[1]]["Flag"]&/@{lan1,lan2}
Out[]=
,
The act of landing a spacecraft on the moon does not confer ownership of the lunar territory to the country that conducted the landing. The Outer Space Treaty, which was signed by 110 countries including the United States, Russia, China, Japan, and India, explicitly states that the moon and other celestial bodies are not subject to national appropriation by any means.
Yet spacecrafts do belong to countries and we could imagine that traveling between them 1059.3 miles
In[]:=
GeoDistance[lan1["Position"],lan2["Position"]]
Out[]=
is the closest thing on the Moon to international travel on Earth :-) And I thought I’d make a video of such flight gliding close to the Moon surface. In this wonderful tech age we can enjoy some things virtually very easily.
I decided to mark the landing sites with the country flags:
In[]:=
mark[s_][e_,m_]:=GeoMarker[e,m,"Alignment"Center,"Scale"Scaled[s]]
In[]:=
GeoGraphics[MapThread[mark[.05],{{lan1,lan2},{flag1,flag2}}],GeoCenter->lan2,GeoProjection->"LambertAzimuthal",GeoGridRange->2.05,ImageSize->700,Background->Black,GeoRange->0]
Out[]=
The next two helper function get me geo-coordinates points lying on the path between the two landing sites:
In[]:=
j2i[t_]:=GeoPositionlan1["Position"][[1]]t+(1-t)lan2["Position"][[1]],
In[]:=
i2j[t_]:=GeoPositionlan2["Position"][[1]]t+(1-t)lan1["Position"][[1]],
This helper function slows down a bit zooming of the virtual camera when it is close to the Moon surface:
In[]:=
slow[t_]:=.05+(2.03-.05)^3
t-.05
2.03-.05
The next four computations produce different consecutive parts of the video
◼
Fly from space to the Japanese Moon lander
◼
Fly from the Japanese Moon lander to the Indian Moon lander
◼
Fly from the Indian Moon lander back to space
◼
Fly in space from right above the Indian Moon lander to right above the Japanese Moon lander
We need the last part to make the video good for looping without jamps in its frames.
In[]:=
vid1=Parallelize@AnimationVideo[GeoGraphics[MapThread[mark[.05],{{lan1,lan2},{flag1,flag2}}],GeoCenter->lan2,GeoProjection->"LambertAzimuthal",GeoGridRange->slow[t],ImageSize->700,GeoRange->0,Background->Black],{t,2.03,.05},RasterSize->1080];//AbsoluteTiming
Out[]=
{226.766,Null}
In[]:=
vid2=Parallelize@AnimationVideo[GeoGraphics[MapThread[mark[.05],{{lan1,lan2},{flag1,flag2}}],GeoCenter->j2i[t],GeoProjection->"LambertAzimuthal",GeoGridRange->.05,ImageSize->700,GeoRange->0,Background->Black],{t,0,1},DefaultDuration10,RasterSize->1080];//AbsoluteTiming
Out[]=
{457.382,Null}
In[]:=
vid3=Parallelize@AnimationVideo[GeoGraphics[MapThread[mark[.05],{{lan1,lan2},{flag1,flag2}}],GeoCenter->lan1,GeoProjection->"LambertAzimuthal",GeoGridRange->slow[t],ImageSize->700,GeoRange->0,Background->Black],{t,.05,2.03},RasterSize->1080];//AbsoluteTiming
Out[]=
{226.766,Null}
In[]:=
vid4=Parallelize@AnimationVideo[GeoGraphics[MapThread[mark[.05],{{lan1,lan2},{flag1,flag2}}],GeoCenter->i2j[t],GeoProjection->"LambertAzimuthal",GeoGridRange->2.03,ImageSize->700,GeoRange->0,Background->Black],{t,0,1},RasterSize->1080];//AbsoluteTiming
Out[]=
{298.581,Null}
Finally we join the videos:
In[]:=
VideoJoin[vid1,vid2,vid3,vid4]
Out[]=
CITE THIS NOTEBOOK
CITE THIS NOTEBOOK
Fly on the Moon from Japan to India
by Vitaliy Kaurov
Wolfram Community, STAFF PICKS, January 25, 2024
https://community.wolfram.com/groups/-/m/t/3109434
by Vitaliy Kaurov
Wolfram Community, STAFF PICKS, January 25, 2024
https://community.wolfram.com/groups/-/m/t/3109434