2点(P,Q)間の大円距離(赤線部)。u,vは赤道との交点
大円距離(だいえんきょり、英: great-circular distance)は、球面上の大円に沿う距離をさす。大円の性質により、球面上の経路として2点間の最短距離である。
特に地球上においては大圏距離(たいけんきょり)とも言う。なおこの記事では回転楕円体面上の最短距離(測地距離)は扱わない。
ユークリッド空間では、球内部を通り2点間を直線で結ぶユークリッド距離が最小となるが(したがって大円弦長)、球面上には直線が存在しないためこれとは異なる。 非ユークリッド空間では、直線を一般化した測地線を使用する。球面においては測地線は球の中心を中心とする円である大円となるため、大円距離は大円上の2点間の弧の長さとなる。
球面上の対蹠点以外の2点を通る大円は一意に定まる。 2点は大円を2つの弧に分割する。 そのうち短い方の弧の長さが大円距離となる。
対蹠点に関しては、その2点を通る任意の円が大円となるが、すべての円において2点間の弧の長さは一定である。すなわち半円の円周であり、半径
の球においては
である。
地球はほぼ球状であるため、2点間の距離を球として計算しても誤差は0.5%以内となる(後述)。[1]
大円の弧(大圏コース)は等角航路やisoazimuthal線と同様に地球上の任意の2点間を結ぶことができる3つの手法の一つである。
2点P,Q間の中心角
。λとφはPの緯度と経度。
2点間の大円距離
(球面上の経路として距離)は、両者間の中心角である弧度
および球の半径
から求められる。
![{\displaystyle d=r\,\Delta \sigma }](https://wikimedia.org/api/rest_v1/media/math/render/svg/ac825adb2768c89bd2a61150ef2b4cdc3cd0eb5f)
大円距離の計算は、航空機や船舶の経路計算の一部であり、大円距離以外に、出発点および中間の各点における方位角の計算も行う。 海里の距離の計算の際は度数法における分がそのまま海里として用いられる(度で表したものの60倍)。
球面余弦定理[編集]
弧度
は球面余弦定理を用いて計算されることが多い。
と
をそれぞれ点1と点2の緯度と経度とし、
はそれらの差を表す。
![{\displaystyle \Delta \sigma =\arccos {\bigl (}\sin \phi _{1}\cdot \sin \phi _{2}+\cos \phi _{1}\cdot \cos \phi _{2}\cdot \cos \Delta \lambda {\bigr )}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b82168a4000785a3c44210510247f7e19d933f0a)
ただし、この
関数は精度(ビット数)が低い浮動小数点数 を扱う計算機においては、短い距離において大きな丸め誤差が発生し精度条件が悪化する[2]。ただし現在用いられる64ビットの浮動小数点数においては数メートル以上の距離においては問題を起こさないとの意見もある[3]。
単位球面における大円の弦長と弧度[編集]
単位球面における大円の弦長
と弧度
との関係は、
![{\displaystyle \Delta \sigma _{\text{c}}=2\sin {\frac {\Delta \sigma }{2}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1317bf1884100a61b117524825631a2163cf2bc1)
![{\displaystyle \Delta \sigma =2\arcsin {\frac {\Delta \sigma _{\text{c}}}{2}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d0b877c128fe0691030bb20e3978bf50e13f65db)
関数[4]は短い距離において計算精度条件が良い(球面余弦定理の利用よりも)[5]。これはhaversine関数[6]を用いても表現でき、歴史的に弧度を求める計算で、下記の弦長計算式とhaversineの関数表を用いた。
弦長の計算[編集]
弦長
の計算式は(
):
![{\displaystyle {\begin{aligned}\Delta \sigma _{\text{c}}&=2{\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)}}\ ,\\&=2{\sqrt {\left(\sin {\frac {\Delta \lambda }{2}}\cos \phi _{\textrm {m}}\right)^{2}+\left(\cos {\frac {\Delta \lambda }{2}}\sin {\frac {\Delta \phi }{2}}\right)^{2}}}\ .\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/857f601cf03c8305c1d61c0ddc2d0cd0b0083f8a)
逆正接関数を用いる計算式[編集]
上記の計算式は球面上のほとんどの点の間において正確だが、対蹠点間に対しては
関数の計算精度が低下する。
対策として、すべての距離に用いることができる式として逆正接関数
[7]を用いる下記の式がある(Vincenty formula内で全ての軸の経が等しい楕円体からも導かれる)[8]。
![{\displaystyle \Delta \sigma =\arctan {\frac {\sin \Delta \sigma }{\cos \Delta \sigma }},}](https://wikimedia.org/api/rest_v1/media/math/render/svg/716fc9755e5f26d733931950d56dfba84a560aba)
![{\displaystyle \cos \Delta \sigma =\sin \phi _{1}\cdot \sin \phi _{2}+\cos \phi _{1}\cdot \cos \phi _{2}\cdot \cos \Delta \lambda ,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6138d4cbb0fb316b1e29f388256bf638d89f5951)
![{\displaystyle \sin \Delta \sigma ={\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}}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/81b505457a940eae28764dc38aae2aa84d5edcd0)
直交座標系による弦長の計算[編集]
単位球面における大円弦長
は直交座標系を経由しても計算できる。
![{\displaystyle {\begin{aligned}\Delta \sigma _{\text{c}}&={\sqrt {(\Delta {X})^{2}+(\Delta {Y})^{2}+(\Delta {Z})^{2}}}\\\Delta {X}&\triangleq \cos \phi _{2}\cdot \cos \lambda _{2}-\cos \phi _{1}\cdot \cos \lambda _{1}\\\Delta {Y}&\triangleq \cos \phi _{2}\cdot \sin \lambda _{2}-\cos \phi _{1}\cdot \sin \lambda _{1}\\\Delta {Z}&\triangleq \sin \phi _{2}-\sin \phi _{1}\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4c9f414c826df80c59d873076987d1c08b947e31)
ベクトル表現[編集]
弧度
は、ユークリッド空間上の単位長3次元ベクトルの内積と外積により以下のように表すことができる[9]。
と
は球面上の2点の単位法線ベクトルを表す。計算精度条件の比較は上記と同様となる。
![{\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}}\,\!}](https://wikimedia.org/api/rest_v1/media/math/render/svg/adfe768d8fe21f3a19f5c7f28126c6be2f16eaf5)
回転楕円体面上の距離[編集]
地球半径[編集]
地球の形状は回転軸方向に潰れた球(扁球)とみなすことができる。この時赤道半径
は6378.137 km、極半径
は6356.752 kmとなる。 赤道付近の短い南北方向の線においては半径
(6335.439 km)とした際が最も良い近似となり、極においては半径
(6399.594 km) が最も良い。この差は1%である。 つまり、地球を球体と仮定した計算においては、地球上の任意の2点間の距離に対する1つの計算による誤差は 0.5% 以内とすることができる(ただし、限られた地域に関してはより誤差の少ない値を使用することもできる。)。
この値として平均地球半径を用いるとよく[10]、その値は
(値はGRS 80における回転楕円体近似に対して)である。 扁平率が小さい場合はこの値が平均自乗誤差を最小化する。
- ^ Admiralty Manual of Navigation, Volume 1, The Stationery Office, (1987), p. 10, ISBN 9780117728806, https://books.google.co.jp/books?id=xcy4K5BPyg4C&pg=PA10&redir_esc=y&hl=ja
- ^ たとえば地球上においては1 kmの距離に対して0.99999999となる。
- ^ “Calculate distance, bearing and more between Latitude/Longitude points”. 2013年8月10日閲覧。
- ^ もしくは逆haversine関数。
- ^ Sinnott, Roger W. (August 1984). “Virtues of the Haversine”. Sky and Telescope 68 (2): 159.
- ^
- ^ プログラミングの際は通常の逆正接関数(
atan()
)よりも atan2()
関数を用いたほうが、
が全象限で出力されるため良い。
- ^ 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日閲覧。.
- ^ 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.
- ^ McCaw, G. T. (1932). “Long lines on the Earth”. Empire Survey Review 1 (6): 259–263. doi:10.1179/sre.1932.1.6.259.
関連項目[編集]