大円距離

提供: testwiki
2024年6月26日 (水) 10:40時点における240d:1a:7fc:9200:adca:84:d856:23c5 (トーク)による版 (単位球面における大円の弦長と弧度)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動
2点(P,Q)間の大円距離(赤線部)。u,vは赤道との交点

大円距離(だいえんきょり、テンプレート:Lang-en-short)は、球面上の大円に沿う距離をさす。大円の性質により、球面上の経路として2点間の最短距離である。

特に地球上においては大圏距離(たいけんきょり)とも言う。なおこの記事では回転楕円体面上の最短距離(測地距離)は扱わない。

概要

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

球面上の対蹠点以外の2点を通る大円は一意に定まる。 2点は大円を2つの弧に分割する。 そのうち短い方の弧の長さが大円距離となる。

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

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

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

数式

2点P,Q間の中心角Δσ。λとφはPの緯度と経度。

2点間の大円距離d(球面上の経路として距離)は、両者間の中心角である弧度 Δσおよび球の半径 rから求められる。

d=rΔσ

大円距離の計算は、航空機や船舶の経路計算の一部であり、大円距離以外に、出発点および中間の各点における方位角の計算も行う。 海里の距離の計算の際は度数法における分がそのまま海里として用いられる(度で表したものの60倍)。

球面余弦定理

弧度 Δσ球面余弦定理を用いて計算されることが多い。ϕ1,λ1ϕ2,λ2 をそれぞれ点1と点2の緯度経度とし、Δϕ,Δλ はそれらの差を表す。

Δσ=arccos(sinϕ1sinϕ2+cosϕ1cosϕ2cosΔλ)

ただし、このarccos関数は精度(ビット数)が低い浮動小数点数 を扱う計算機においては、短い距離において大きな丸め誤差が発生し精度条件が悪化する[2]。ただし現在用いられる64ビットの浮動小数点数においては数メートル以上の距離においては問題を起こさないとの意見もある[3]

単位球面における大円の弦長と弧度

単位球面における大円の弦長Δσc弧度Δσとの関係は[4]

Δσc=2sinΔσ2
Δσ=2arcsinΔσc2

arcsin関数[5]は短い距離において計算精度条件が良い(球面余弦定理の利用よりも)[6]。これはhaversine関数[7]を用いても表現でき、歴史的に弧度を求める計算で、下記の弦長計算式とhaversineの関数表を用いた。

弦長の計算

弦長Δσcの計算式は(ϕmϕ1+ϕ22):

Δσc=2sin2(Δϕ2)+cosϕ1cosϕ2sin2(Δλ2) ,=2(sinΔλ2cosϕm)2+(cosΔλ2sinΔϕ2)2 .

逆正接関数を用いる計算式

上記の計算式は球面上のほとんどの点の間において正確だが、対蹠点間に対してはarcsin関数の計算精度が低下する。

対策として、すべての距離に用いることができる式として逆正接関数arctan[8]を用いる下記の式がある(Vincenty formula内で全ての軸の経が等しい楕円体からも導かれる)[9]

Δσ=arctansinΔσcosΔσ,
cosΔσ=sinϕ1sinϕ2+cosϕ1cosϕ2cosΔλ,
sinΔσ=(cosϕ2sinΔλ)2+(cosϕ1sinϕ2sinϕ1cosϕ2cosΔλ)2.

直交座標系による弦長の計算

単位球面における大円弦長Δσc直交座標系を経由しても計算できる。

Δσc=(ΔX)2+(ΔY)2+(ΔZ)2ΔXcosϕ2cosλ2cosϕ1cosλ1ΔYcosϕ2sinλ2cosϕ1sinλ1ΔZsinϕ2sinϕ1

ベクトル表現

弧度Δσは、ユークリッド空間上の単位長3次元ベクトルの内積外積により以下のように表すことができる[10]𝐧1𝐧2 は球面上の2点の単位法線ベクトルを表す。計算精度条件の比較は上記と同様となる。

Δσ=arccos(𝐧1𝐧2)Δσ=arcsin|𝐧1×𝐧2|Δσ=arctan|𝐧1×𝐧2|𝐧1𝐧2

回転楕円体面上の距離

テンプレート:Main

地球半径

地球の形状は回転軸方向に潰れた球(扁球)とみなすことができる。この時赤道半径 a は6378.137 km、極半径 b は6356.752 kmとなる。 赤道付近の短い南北方向の線においては半径 b2/a (6335.439 km)とした際が最も良い近似となり、極においては半径 a2/b (6399.594 km) が最も良い。この差は1%である。 つまり、地球を球体と仮定した計算においては、地球上の任意の2点間の距離に対する1つの計算による誤差は 0.5% 以内とすることができる(ただし、限られた地域に関してはより誤差の少ない値を使用することもできる。)。

この値として平均地球半径を用いるとよく[11]、その値はR1=13(2a+b)6371km(値はGRS 80における回転楕円体近似に対して)である。 扁平率が小さい場合はこの値が平均自乗誤差を最小化する。

脚注

テンプレート:Reflist

関連項目

  1. テンプレート:Citation
  2. たとえば地球上においては1 kmの距離に対して0.99999999となる。
  3. テンプレート:Cite web
  4. Δσc=0 における級数展開形は、Δσ=Δσc(1+Δσc224+3Δσc4640+)
  5. もしくは逆haversine関数。
  6. テンプレート:Cite journal
  7. hav(θ)sin2(θ/2)
  8. プログラミングの際は通常の逆正接関数(atan())よりも atan2() 関数を用いたほうが、Δσ が全象限で出力されるため良い。
  9. テンプレート:Cite journal
  10. テンプレート:Cite journal
  11. テンプレート:Cite journal