測地学の方法
ヴィンセンティの公式は、測地学で回転楕円体の表面上の2点間の距離を計算するために使用される 2 つの関連する反復法であり、タデウス ヴィンセンティ(1975a)によって開発されました。これらは、地球の形状が扁平回転楕円体であるという仮定に基づいているため、大圏距離など、地球が球形であると仮定する方法よりも正確です。
最初の(直接)方法は、別の点から指定された距離と方位(方向)にある点の位置を計算します。 2 番目の(逆)方法は、指定された 2 つの点間の地理的な距離と方位を計算します。 これらの方法は、地球の楕円体 上で 0.5 mm(0.020 インチ)以内の精度であるため、測地学で広く使用されています。
背景
ヴィンセンティの目標は、楕円体上の測地線に関する既存のアルゴリズムを、プログラムの長さが最小限になる形式で表現することだった (Vincenty 1975a)。彼の未発表のレポート (1975b) には、メモリが数キロバイトしかないWang 720 卓上計算機の使用について触れられている。長い直線に対して高い精度を得るために、このソリューションでは、補助球面に基づく、ルジャンドル (1806)、ベッセル (1825)、ヘルメルト (1880) の古典的なソリューションを使用している。ヴィンセンティは、レインズフォード (1955) が示したこの方法の定式化に依存していた。ルジャンドルは、地理緯度を縮約緯度にマッピングし、大円の方位角を測地線の方位角に等しく設定することで、楕円体測地線を補助球面上の大円に正確にマッピングできることを示した。楕円体上の経度と測地線に沿った距離は、球面上の経度と大円に沿った弧の長さによって、単純な積分で与えられます。ベッセルとヘルマートは、これらの積分に対して急速に収束する級数を与え、これにより測地線を任意の精度で計算できるようになりました。
プログラムのサイズを最小化するために、Vincenty はこれらの級数を取り、各級数の最初の項を小さなパラメータとして使用してそれらを再展開し、[明確化が必要]に切り捨てました。これにより、経度と距離の積分のコンパクトな式が得られました。式は、単一の一時レジスタのみを使用して多項式を評価できるため、ホーナー(またはネストされた) 形式になりました。最後に、直接法と逆法で暗黙の方程式を解くために、単純な反復手法が使用されました。これらは低速ですが (逆法の場合は収束しないこともあります)、コード サイズの増加は最小限に抑えられます。

表記
次の表記を定義します。
逆問題
2点の座標( Φ1、 L1 )と( Φ2、 L2 )が与えられた場合、逆問題では方位角α1、α2と楕円体距離sを求めます。
U 1、U 2、Lを計算し、λ = Lの初期値を設定します。次に、 λ が収束するまで次の式を繰り返し評価します。


[1]
[2]

[3]
![{\displaystyle C={\frac {f}{16}}\cos ^{2}\alpha \left[4+f\left(4-3\cos ^{2}\alpha \right)\right]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c579a15017cdfaf3e95f201725c9fa4f6da91178)
![{\displaystyle \lambda =L+(1-C)f\sin \alpha \left\{\sigma +C\sin \sigma \left[\cos \left(2\sigma _{\text{m}}\right)+C\cos \sigma \left(-1+2\cos ^{2}\left(2\sigma _{\text{m}}\right)\right)\right]\right\}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5e3209bfcdbe3757e647c764cfd155b98dccd3d6)
λが所望の精度(10 −12 は 約 0.06 mm
に相当)に収束したら、次のことを評価します。
![{\displaystyle {\begin{aligned}u^{2}&=\cos^{2}\alpha \left({\frac {a^{2}-b^{2}}{b^{2}}}\right)\\A&=1+{\frac {u^{2}}{16384}}\left(4096+u^{2}\left[-768+u^{2}\left(320-175u^{2}\right)\right]\right)\\B&={\frac {u^{2}}{1024}}\left(256+u^{2}\left[-128+u^{2}\left(74-47u^{2}\right)\right]\right)\\\Delta \sigma &=B\sin \sigma \left\{\cos(2\sigma _{\text{m}})+{\frac {1}{4}}B\left(\cos \sigma \left[-1+2\cos ^{2}\left(2\sigma _{\text{m}}\right)\right]-{\frac {1}{6}}B\cos \left[2\sigma _{\text{m}}\right]\left[-3+4\sin ^{2}\sigma \right]\left[-3+4\cos ^{2}\left(2\sigma _{\text{m}}\right)\right]\right)\right\}\\s&=bA(\sigma -\Delta \sigma )\,\\\alpha _{1}&=\operatorname {arctan2} \left(\cos U_{2}\sin \lambda ,\cos U_{1}\sin U_{2}-\sin U_{1}\cos U_{2}\cos \lambda \right)\\\alpha _{2}&=\operatorname {arctan2} \left(\cos U_{1}\sin \lambda ,-\sin U_{1}\cos U_{2}+\cos U_{1}\sin U_{2}\cos \right)\end{整列}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/063b47186c444f1fc781459acbe028171a7025db)
ほぼ対蹠的な 2 つの点の間では、反復式が収束しない場合があります。これは、上記の式で計算されたλの最初の推定値の絶対値がπより大きい場合に発生します。
直接的な問題
初期点 ( Φ 1、L 1 ) と初期方位角α 1、および測地線に沿った距離sが与えられている場合、問題は終点 ( Φ 2、L 2 ) と方位角α 2を見つけることです。
まず、次の計算を行ってください。
![{\displaystyle {\begin{aligned}U_{1}&=\arctan \left[(1-f)\tan \phi _{1}\right]\\\sigma _{1}&=\operatorname {arctan2} \left(\tan U_{1},\cos \alpha _{1}\right)\\\sin \alpha &=\cos U_{1}\sin \alpha _{1}\\u^{2}&=\cos ^{2}\alpha \left({\frac {a^{2}-b^{2}}{b^{2}}}\right)=\left(1-\sin ^{2}\alpha \right)\left({\frac {a^{2}-b^{2}}{b^{2}}}\right)\\A&=1+{\frac {u^{2}}{16384}}\left(4096+u^{2}\left[-768+u^{2}(320-175u^{2})\right]\right)\\B&={\frac {u^{2}}{1024}}\left(256+u^{2}\left[-128+u^{2}\left(74-47u^{2}\right)\right]\right)\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/9d97e08ec969f3c5877eac4c67eda2a79ec285d5)
次に、初期値を使用して、 σに大きな変化がなくなるまで次の式を繰り返します。

![{\displaystyle {\begin{aligned}2\sigma _{\text{m}}&=2\sigma _{1}+\sigma \\\Delta \sigma &=B\sin \sigma \left\{\cos \left(2\sigma _{\text{m}}\right)+{\frac {1}{4}}B\left(\cos \sigma \left[-1+2\cos ^{2}\left(2\sigma _{\text{m}}\right)\right]-{\frac {1}{6}}B\cos \left[2\sigma _{\text{m}}\right]\left[-3+4\sin ^{2}\sigma \right]\left[-3+4\cos ^{2}\left(2\sigma _{\text{m}}\right)\right]\right)\right\}\\\sigma &={\frac {s}{bA}}+\Delta \sigma \end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/100854ce971b62523c93203600c76353a427247e)
十分な精度で
σが得られたなら、次のように評価します。
![{\displaystyle {\begin{aligned}\phi _{2}&=\operatorname {arctan2} \left(\sin U_{1}\cos \sigma +\cos U_{1}\sin \sigma \cos \alpha _{1},(1-f){\sqrt {\sin ^{2}\alpha +\left(\sin U_{1}\sin \sigma -\cos U_{1}\cos \sigma \cos \alpha _{1}\right)^{2}}}\right)\\\lambda &=\operatorname {arctan2} \left(\sin \sigma \sin \alpha _{1},\cos U_{1}\cos \sigma -\sin U_{1}\sin \sigma \cos \alpha _{1}\right)\\C&={\frac {f}{16}}\cos ^{2}\alpha \left[4+f\left(4-3\cos ^{2}\alpha \right)\right]\\L&=\lambda -(1-C)f\sin \alpha \left\{\sigma +C\sin \sigma \left(\cos \left[2\sigma _{\text{m}}\right]+C\cos \sigma \left[-1+2\cos ^{2}\left(2\sigma _{\text{m}}\right)\right]\right)\right\}\\L_{2}&=L+L_{1}\\\alpha _{2}&=\operatorname {arctan2} \left(\sin \alpha ,-\sin U_{1}\sin \sigma +\cos U_{1}\cos \sigma \cos \alpha _{1}\right)\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/fdb10f490ed203896b610a56e16850a0c1822f25)
初期点が北極または南極にある場合、最初の方程式は不確定です。初期方位角が真東または真西にある場合、2 番目の方程式は不確定です。標準の 2 引数アークタンジェントatan2関数を使用すると、通常、これらの値は正しく処理されます。[説明が必要]
ヴィンセンティの修正
1976年にSurvey Reviewに宛てた手紙の中で、VincentyはAとBの級数表現を、ヘルマートの展開パラメータk 1を使ったより単純な式に置き換えることを提案した。


どこ

ほぼ対蹠点
上で述べたように、逆問題の反復解法は、ほぼ対蹠点に対しては収束しないか、収束が遅い。収束が遅い例としては、WGS84 楕円体の場合の ( Φ 1、 L 1 ) = (0°、 0°) および ( Φ 2、 L 2 ) = (0.5°、 179.5°) がある。この場合、1 mm の精度の結果を得るには約 130 回の反復が必要である。逆法の実装方法に応じて、アルゴリズムは正しい結果 (19936288.579 m)、誤った結果、またはエラー インジケーターを返す可能性がある。誤った結果の例としては、NGS オンライン ユーティリティが挙げられ、約 5 km 長い距離が返される。Vincenty は、このような場合に収束を加速する方法を提案している (Rapp、1993)。
逆法が収束しない例としては、WGS84 楕円体の場合、( Φ 1 , L 1 ) = (0°, 0°) および ( Φ 2 , L 2 ) = (0.5°, 179.7°) があります。未発表のレポートで、Vincenty (1975b) は、このようなケースを処理するための代替反復スキームを示しました。これは、約 60 回の反復後に正しい結果 19944127.421 m に収束しますが、他のケースでは何千回もの反復が必要になります。
Karney (2013) は、逆問題を 1 次元の根探索問題として再定式化しました。これは、入力点のすべてのペアに対してニュートン法で迅速に解くことができます。
参照
注記
- ^ σは、極と赤道付近の数値精度を保つために、 sin σまたはcos σから直接評価されません。
- ^ sin σ = 0の場合、sin αの値は不定です。これは、開始点と一致するか、または開始点と正反対の終了点を表します。
- ^ 始点と終点が赤道上にある場合、C = 0となり、 の値は使用されません。 限界値は です。

参考文献
- ベッセル、フリードリヒ・ヴィルヘルム(2010)。「測地線測定による経度と緯度の計算 (1825)」。アストロン。ナクホル。331 ( 8): 852–861。arXiv : 0908.1824。Bibcode : 2010AN ....331..852K。doi : 10.1002/asna.201011352。S2CID 118760590 。Astron. Nachr. 4、241–254(1825)の英訳。
- ヘルマート、フリードリヒ R. (1964)。高等測地学の数学的および物理的理論、第 1 部 (1880)。セントルイス: 航空図情報センター。2011年 7 月 30 日閲覧。Die Mathematischen und Physikalischen Theorieen der Höheren Geodäsie の英語翻訳、Vol. 1 (トイブナー、ライプツィヒ、1880)。
- Karney, Charles FF (2013 年 1 月). 「測地線アルゴリズム」. Journal of Geodesy . 87 (1): 43–55. arXiv : 1109.4448 . Bibcode :2013JGeod..87...43K. doi : 10.1007/s00190-012-0578-z .補遺。
- ルジャンドル、アドリアン=マリー(1806)。 「回転楕円体の表面上の三角形の軌跡を分析」。フランス国立研究所の科学数学および物理学に関するメモワール(第 1 回 sem): 130–161 。2011 年 7 月 30 日に取得。
- Rainsford, HF (1955). 「楕円体上の長い測地線」. Bulletin Géodésique . 37 : 12–22. Bibcode :1955BGeod..29...12R. doi :10.1007/BF02527187. S2CID 122111614.
- Rapp, Ricahrd H. (1993 年 3 月)。幾何測地学、パート II (技術レポート)。オハイオ州立大学。2011年 8 月 1 日閲覧。
- Vincenty, Thaddeus (1975a年4 月)。「ネストされた方程式を適用した楕円体上の測地線の直接および逆解法」( PDF)。Survey Review。XXIII (176): 88–93。Bibcode :1975SurRv..23...88V。doi : 10.1179 /sre.1975.23.176.88。2009年 7 月 11 日に取得。
測地線の解法の式を選択する場合、プログラムの長さ、つまり三角関数やその他の必要な関数とともにコンピューター内で占めるコアの量を考慮することが最も重要です。
- Vincenty, Thaddeus (1975b 年 8 月)。対蹠点間の測地逆解(PDF) (技術レポート)。DMAAC 測地測量隊。doi : 10.5281/zenodo.32999。
- ヴィンセンティ、タデウス(1976年4月)。「書簡」。サーベイレビュー。XXIII (180):294。
- オーストラリアの地心基準系 (GDA) リファレンス マニュアル。測量地図作成に関する政府間委員会 (ICSM)。2006 年 2 月。ISBN 0-9579951-0-5. 2009年6月26日時点のオリジナル(PDF)からアーカイブ。2009年7月11日閲覧。
外部リンク
- Geoscience Australiaのオンライン計算機:
- ヴィンセンティ ダイレクト(目的地)
- ヴィンセンティ逆数(点間の距離)
- 米国国立測地測量局の計算機:
- 2 次元と 3 次元の両方で順方向 (直接) 問題と逆問題を含む、オンラインおよびダウンロード可能な PC 実行可能計算ユーティリティ (2011 年 8 月 1 日にアクセス)。
- Chris Veness による JavaScript ソース コード付きオンライン計算機 (Creative Commons Attribution ライセンス):
- ヴィンセンティ ダイレクト(目的地)
- ヴィンセンティ逆数(点間の距離)
- GeographicLib は、直接測地線問題および逆測地線問題を解くためのユーティリティ GeodSolve (MIT/X11 ライセンスのソース コード付き) を提供します。Vincenty と比較すると、これは約 1000 倍正確 (誤差 = 15 nm) で、逆解も完全です。こちらに GeodSolve のオンライン バージョンがあります。
- ソース コード付きの Vincenty の直接および逆数式の完全な実装、Tomasz Jastrzębski による Excel VBA 実装