Wolfram言語

地理情報の計算

火星の人

書籍「火星の人」で,主人公のマーク・ワトニーがアレス3のハブからアレス4の火星上昇機まで行くのに通った推定経路を計算し,表現し,測定する.

この例題の位置はすべて火星上の位置のことである.これはGeoPositionで厳密に指定することもできれば,後でGeoModelオプションを使って指定することもできる.

以下はアレス3と4での着陸の推定位置である.

In[1]:=
Click for copyable input
ares3 = GeoPosition[{31.2, -28.5}, "Mars"]; ares4 = GeoPosition[{-4.32, 15.28}, "Mars"];

ゆえに,以下はマークの火星の旅の最初の近似である.

In[2]:=
Click for copyable input
GeoGraphics[{Orange, Thick, Arrow@GeoPath[{ares3, ares4}]}, GeoRange -> All, GeoProjection -> "Orthographic", Background -> Black]
Out[2]=

アレス3のハブから,マークはマゥルス峡谷という,水で削られた谷に沿って進む.

In[3]:=
Click for copyable input
mawrthVallis = GeoPosition[CompressedData[" 1:eJxTTMoPSmViYGCQAGIQLd/6OnCHnJXDN42Y/kOlxgdsua4vLvhr6QAkbbnE jQ8wgMABS4d17g+rRNYZHZg1EwgiLaHqjQ5wgRVaOhz+ChRwMoKqt3BYAhS9 rmx0AKTLPdHCoRBksIHRgf5DQIX8Fg4iIANDjA5oAo35usLcAaLO6EDQDjmg ixD8s2eAgMccrj4NBJ6Zwc0DK99h5vAmEMQyPACmV5s5gN3RYAixf6GZA8Re wwNgdzbB5A0OGINAsZkDxB8GEPf5m0H8H64P9Z8ZxH+H9CDqN5tC/at3AOIu U0h4fNWF2Kdo6uABYhzXhaj/bAL1jy5E/RUTB3A4ztQ5AAD2PaQO "]];
In[4]:=
Click for copyable input
GeoGraphics[{Thick, Orange, Arrow@GeoPath[mawrthVallis]}, GeoModel -> "Mars", GeoRangePadding -> Quantity[100, "Miles"]]
Out[4]=

その後マークはトルーヴェロクレーターとラザフォードクレーターの間を通過する.

In[5]:=
Click for copyable input
GeoPosition /@ {Entity["SolarSystemFeature", "TrouvelotMars"], Entity["SolarSystemFeature", "RutherfordMars"]}
Out[5]=
In[6]:=
Click for copyable input
rtCraters = GeoPosition[{17.52, -11.91}, "Mars"];

次にマルトクレーターに行く.

In[7]:=
Click for copyable input
marthCrater = GeoPosition[Entity["SolarSystemFeature", "MarthMars"]]
Out[7]=

そこから南に向かって540km進む.

In[8]:=
Click for copyable input
pos540S = GeoDestination[marthCrater, GeoDisplacement[{Quantity[540, "Kilometers"], "South"}]]
Out[8]=

最終的にスキアパレッリクレーターの近くに到達する.

In[9]:=
Click for copyable input
schiaparelliCrater = GeoPosition[{-0.16, 14.38}, "Mars"]
Out[9]=
In[10]:=
Click for copyable input
geopath = GeoPath[{{ares3, mawrthVallis[[1, 1]]}, mawrthVallis, {mawrthVallis[[1, -1]], rtCraters, marthCrater, pos540S, schiaparelliCrater, ares4}}];

この地理的経路では,火星の表面で次のような距離になる.

In[11]:=
Click for copyable input
GeoLength[geopath, GeoModel -> "Mars"]
Out[11]=

最後に本で言及されている多数の場所をそれぞれラベル付きで加える.

In[12]:=
Click for copyable input
labeled[pos_, label_, offset_: {Left, Bottom}] := {Point[pos], Text[Style[label, Directive[12, Italic, White]], pos, offset]}
In[13]:=
Click for copyable input
points = labeled @@@ Join[EntityValue[{Entity["SolarSystemFeature", "ArabiaTerraMars"], Entity["DeepSpaceProbe", "MarsPathfinder"], Entity["DeepSpaceProbe", "MERDashBOpportunityRover"], Entity["SolarSystemFeature", "TerraMeridianiMars"], Entity["SolarSystemFeature", "RutherfordMars"], Entity["SolarSystemFeature", "BecquerelMars"], Entity["SolarSystemFeature", "TrouvelotMars"], Entity["SolarSystemFeature", "MarthMars"]}, {"Position", "Name"}], { {ares3, "Ares 3 HAB"}, {ares4, "Ares 4 MAV", {Right, Bottom}}}];

これが旅の最終的な地図である.

In[14]:=
Click for copyable input
GeoGraphics[{Orange, Thick, geopath, PointSize[Large], points}, GeoModel -> "Mars"]
Out[14]=

関連する例

de en es fr ko pt-br ru zh