大円距離 – Wikipedia

2点(P,Q)間の大円距離(赤線部)。u,vは対蹠点

大円距離(だいえんきょり、英: great-circular distance、球面上の大円に沿う距離をさす。大円の性質により、球面上の2点間の長さが最短となる距離である。

特に地球上においては大圏距離(たいけんきょり)とも言う。

最も両極に近い点を頂点と呼ぶ。

ユークリッド空間では、球内部を通り2点間を直線結ぶユークリッド距離が最小となるが、球面上には直線が存在しないためこれとは異なる。  非ユークリッド空間では、直線を一般化した測地線を使用する。球面においては測地線は球の中心を中心とする円である大円となるため、大円距離は大円上の2点間の弧の長さとなる。

球面上の対蹠点以外の2点を通る大円は一意に定まる。 2点は大円を2つの弧に分割する。 そのうち短い方の弧の長さが大円距離となる。 A great circle endowed with such a distance is the Riemannian circle.

対蹠点に関しては、その2点を通る任意の円が大円となるが、すべての円において2点間の弧の長さは一定である。すなわち半円の円周であり、半径

r{displaystyle r}

の球においては

πr{displaystyle pi r}

である。

地球はほぼ球状であるため、2点間の距離を球として計算しても誤差は0.5%以内となる(後述)。[1] 

大円の弧(大圏コース)は等角航路やisoazimuthal線と同様に地球上の任意の2点間を結ぶことができる3つの手法の一つである。

2点P,Q間の中心角 Δσ{displaystyle Delta sigma }

。λとφはPの緯度と経度。

ϕ1,λ1{displaystyle phi _{1},lambda _{1}}

ϕ2,λ2{displaystyle phi _{2},lambda _{2}}

をそれぞれ点1と点2の緯度と経度とする。また

Δϕ,Δλ{displaystyle Delta phi ,Delta lambda }

はその差の絶対値である。その時、2点間の中心角

Δσ{displaystyle Delta sigma }

は球面余弦定理より

Δσ=arccos⁡(sin⁡ϕ1⋅sin⁡ϕ2+cos⁡ϕ1⋅cos⁡ϕ2⋅cos⁡(Δλ)){displaystyle Delta sigma =arccos {bigl (}sin phi _{1}cdot sin phi _{2}+cos phi _{1}cdot cos phi _{2}cdot cos(Delta lambda ){bigr )}}

となる。
距離

d{displaystyle d}

、すなわち円弧長は、球の半径

r{displaystyle r}

、弧度で表された

Δσ{displaystyle Delta sigma }

を用いて

d=rΔσ{displaystyle d=r,Delta sigma }

と表される。

コンピュータによる計算[編集]

精度(ビット数)が低い浮動小数点数 を扱う計算機においては、球面余弦定理による計算では短い距離において大きな丸め誤差が発生してしまう。たとえば地球上においては1 kmの距離に対する中心角の余弦は0.99999999となる。 ただし現在用いられる64ビットの浮動小数点数においては数メートル以上の距離においては問題となるほどの丸め誤差は発生しない。[2] 下記のhaversine関数による計算法を用いたほうが良条件である。[3]

Δσ=2arcsin⁡sin2⁡(Δϕ2)+cos⁡ϕ1⋅cos⁡ϕ2⋅sin2⁡(Δλ2).{displaystyle Delta sigma =2arcsin {sqrt {sin ^{2}left({frac {Delta phi }{2}}right)+cos {phi _{1}}cdot cos {phi _{2}}cdot sin ^{2}left({frac {Delta lambda }{2}}right)}}.;!}

歴史的に、この式は

hav⁡(θ)=sin2⁡(θ/2){displaystyle operatorname {hav} (theta )=sin ^{2}(theta /2)}

で定義されるhaversine関数の関数表を用いることで計算された。

この数式は球面上のほとんどの点の間において正確だが、対蹠点間においては誤差が大きい。すべての距離に用いることができる複雑な式としてVincenty formulaの全ての軸の経が等しい楕円という場合の下記の式がある。[4]

Δσ=arctan⁡(cos⁡ϕ2⋅sin⁡(Δλ))2+(cos⁡ϕ1⋅sin⁡ϕ2−sin⁡ϕ1⋅cos⁡ϕ2⋅cos⁡(Δλ))2sin⁡ϕ1⋅sin⁡ϕ2+cos⁡ϕ1⋅cos⁡ϕ2⋅cos⁡(Δλ).{displaystyle Delta sigma =arctan {frac {sqrt {left(cos phi _{2}cdot sin(Delta lambda )right)^{2}+left(cos phi _{1}cdot sin phi _{2}-sin phi _{1}cdot cos phi _{2}cdot cos(Delta lambda )right)^{2}}}{sin phi _{1}cdot sin phi _{2}+cos phi _{1}cdot cos phi _{2}cdot cos(Delta lambda )}}.}

プログラミングの際は通常の逆正接関数(atan())よりも atan2() 関数を用いたほうが、

Δσ{displaystyle Delta sigma }

が全象限で出力されるため良い。

大円距離の計算は、航空機や船舶の経路計算の一部であり、大円距離以外に、出発点および中間の各点における方位角の計算も行う。

ベクトル表現[編集]

緯度/経度による表現ではなく通常のユークリッド空間上の3次元ベクトルを用いた方法だが、ベクトルの内積と外積により以下のように表すことができる。[5]

Δσ=arccos⁡(n1⋅n2)Δσ=arcsin⁡|n1×n2|Δσ=arctan⁡|n1×n2|n1⋅n2{displaystyle {begin{aligned}Delta sigma &=arccos(mathbf {n} _{1}cdot mathbf {n} _{2})\Delta sigma &=arcsin left|mathbf {n} _{1}times mathbf {n} _{2}right|\Delta sigma &=arctan {frac {left|mathbf {n} _{1}times mathbf {n} _{2}right|}{mathbf {n} _{1}cdot mathbf {n} _{2}}}\end{aligned}},!}

n1{displaystyle mathbf {n} _{1}}

n2{displaystyle mathbf {n} _{2}}

は球面上の2点の単位法線ベクトルである。 上記の緯度/経度に基づく物と同様に、逆正接関数による計算式が唯一全ての角度において良条件である。

弦長からの計算[編集]

球面上の2点間を3次元空間上で結ぶ線分は大円の弦となる。2点間の中心角はこの弦の長さから求めることができる。そして、大円距離は中心角に比例する。

単位球面における大円弦長

Ch{displaystyle C_{h},!}

は、直交座標系において

ΔX=cos⁡ϕ2⋅cos⁡λ2−cos⁡ϕ1⋅cos⁡λ1;ΔY=cos⁡ϕ2⋅sin⁡λ2−cos⁡ϕ1⋅sin⁡λ1;ΔZ=sin⁡ϕ2−sin⁡ϕ1;C=(ΔX)2+(ΔY)2+(ΔZ)2{displaystyle {begin{aligned}Delta {X}&=cos phi _{2}cdot cos lambda _{2}-cos phi _{1}cdot cos lambda _{1};\Delta {Y}&=cos phi _{2}cdot sin lambda _{2}-cos phi _{1}cdot sin lambda _{1};\Delta {Z}&=sin phi _{2}-sin phi _{1};\C&={sqrt {(Delta {X})^{2}+(Delta {Y})^{2}+(Delta {Z})^{2}}}end{aligned}}}

となる。このとき、中央角は

Δσ=2arcsin⁡C2.{displaystyle Delta sigma =2arcsin {frac {C}{2}}.}

であり、大円距離は

d=rΔσ.{displaystyle d=rDelta sigma .}

となる。
最後の式の中心角度は弧度で表されたものである。 海里の距離の計算の際は度数法における分がそのまま海里として用いられる(度で表したものの60倍)。

地球半径[編集]

地球の形状は潰れた球 (回転楕円体) とみなすことができる。この時赤道半径

a{displaystyle a}

は6378.137 km、極半径

b{displaystyle b}

は6356.752 kmとなる。 赤道付近の短い南北方向の線においては半径

b2/a{displaystyle b^{2}/a}

(6335.439 km)とした際が最も良い近似となり、極においては半径

a2/b{displaystyle a^{2}/b}

(6399.594 km) が最も良い。この差は1%である。 つまり、地球を球体と仮定した計算においては、地球上の任意の2点間の距離に対する1つの計算による誤差は 0.5% 以内とすることができる。 (ただし、限られた地域に関してはより誤差の少ない値を使用することもできる。)
この値として平均地球半径を用いるとよく[6]、その値は

R1=13(2a+b)≈6371km{displaystyle R_{1}={frac {1}{3}}(2a+b)approx 6371,mathrm {km} }

(値はWGS84測地系における回転楕円体近似に対して)である。 扁平率が小さい場合はこの値が平均自乗誤差を最小化する。

関連項目[編集]

  1. ^ Admiralty Manual of Navigation, Volume 1, The Stationery Office, (1987), p. 10, ISBN 9780117728806, http://books.google.com/books?id=xcy4K5BPyg4C&pg=PA10 
  2. ^ Calculate distance, bearing and more between Latitude/Longitude points”. 2013年8月10日閲覧。
  3. ^ Sinnott, Roger W. (August 1984). “Virtues of the Haversine”. Sky and Telescope 68 (2): 159. 
  4. ^ Vincenty, Thaddeus (1975-04-01). “Direct and Inverse Solutions of Geodesics on the Ellipsoid with Application of Nested Equations” (PDF). Survey Review (Kingston Road, Tolworth, Surrey: Directorate of Overseas Surveys) 23 (176): 88–93. doi:10.1179/sre.1975.23.176.88. http://www.ngs.noaa.gov/PUBS_LIB/inverse.pdf 2008年7月21日閲覧。. 
  5. ^ Gade, Kenneth (2010). “A non-singular horizontal position representation” (PDF). The Journal of Navigation (Cambridge University Press) 63 (3): 395–417. doi:10.1017/S0373463309990415. http://www.navlab.net/Publications/A_Nonsingular_Horizontal_Position_Representation.pdf. 
  6. ^ McCaw, G. T. (1932). “Long lines on the Earth”. Empire Survey Review 1 (6): 259–263. doi:10.1179/sre.1932.1.6.259.