地磁気のモデルを使って北西航路を図に描く
北西航路は,北大西洋と太平洋を結ぶ北アメリカの海岸に沿った海路である.この航路は1850年に発見され,探検家のロアール・アムンゼン(Roald Amundsen)によって1903年から1906年にかけて初航海が行われた.高度が高くなるほど磁北と真北の違いが大きくなるので,従来の磁石を使っての北西航路の航海は困難である.この例では,GeomagneticModelDataを使って北西航路を描き,現在の地球の磁場を返す.
北西航路を示す経緯度のペアから始めて北磁の位置を取得する.
In[1]:=

course = GeoPosition[{{60.7, -56}, {67.7, -58.5}, {74, -74.4}, {74.4, \
-91.8}, {74.3, -95.9}, {74.2, -98.5}, {73.7, -113.5}, {73.08, \
-116.86}, {72.57, -118.9}, {71.29, -119.9}, {70.7, -124.3}, {70.83, \
-128.4}, {69.85, -139.6}, {70.44, -143.1}, {71.6, -156.5}, {70.4, \
-163.2}, {68.9, -167.3}, {65.7, -168.5}, {62.3, -167.9}}];
In[2]:=

geomagneticNorthLocation =
GeomagneticModelData["NorthGeomagneticPole"]
Out[2]=

In[3]:=

GeoGraphics[{
{Red, PointSize[Large], Point[geomagneticNorthLocation]},
Line[course]}]
Out[3]=

北地磁気極への方向(赤)と,局所的磁石の測定値を(青)をプロットする関数を定義する.
In[4]:=

bearings[point_] := Module[{
d1,
d2,
distance = Quantity[400, "Kilometers"],
h1 = GeoDirection[point, geomagneticNorthLocation],
h2 = GeomagneticModelData[point, "Declination"]
},
{d1, d2} =
GeoDestination[point, GeoDisplacement[{distance, #}]] & /@ {h1, h2};
{Red, Arrow[{GeoPosition@point, d1}], Blue,
Arrow[{GeoPosition@point, d2}]}
]
まずまずの間隔でサンプル点を取り,航路に沿った真方位(赤)と磁方位(青)の差を計算し,視覚的に観察する.
In[5]:=

samplepoints = course[[All, {2, 3, 4, 7, 11, 13, 15, 17, 19}]];
In[6]:=

GeomagneticModelData[#, "Declination"] & /@ Thread[samplepoints]
Out[6]=

In[7]:=

GeoGraphics[{{Red, PointSize[Large], Point[geomagneticNorthLocation]},
Line[course],
bearings /@ samplepoints[[1]]}, GeoRange -> Quantity[1000, "Miles"]]
Out[7]=
