回答:
この質問は、地球の楕円体モデルを想定しています。その基準面は、短軸の周りに楕円を回転させることにより取得されます(慣例により垂直にプロットされます)。そのような楕円は倍に水平に延伸されたばかり円でAおよび垂直方向の要因によって、B。単位円の標準パラメーター化を使用して、
t --> (cos(t), sin(t))
(コサインとサインを定義します)、パラメーター化を取得します
t --> (a cos(t), b sin(t)).
(このパラメーター化の2つのコンポーネントは、曲線の周りの旅行を表します。これらは、デカルト座標で、「時間」tでの位置を指定します。)
測地緯度、F任意の点のは、「アップ」は、赤道面に対してなす角度です。aがbと異なる場合、fの値はtの値と異なります(赤道と極での場合を除く)。
この図では、青い曲線はそのような楕円の1つの象限です(地球の離心率と比較して非常に誇張されています)。左下隅の赤い点はその中心です。破線は、サーフェス上の1点までの半径を示しています。そこの「上」方向は黒いセグメントで示されています。定義上、その点の楕円に垂直です。偏心が誇張されているため、「上」が半径と平行ではないことが容易にわかります。
私たちの用語では、tは水平に対する半径によって作られる角度に関連し、fはその黒いセグメントによって作られる角度です。(サーフェス上の任意のポイントをこの視点から表示できることに注意してください。これにより、tとfの両方を0〜90度に制限できます。コサインとサインは正であるため、負を心配する必要はありません。式の平方根。)
トリックへ変換するのTの点で一つに-parameterization Fの点であるため、T半径Rは、(ピタゴラスの定理を介して)計算することは容易です。その平方は、ポイントのコンポーネントの平方の合計です。
R(t)^2 = a^2 cos(t)^2 + b^2 sin(t)^2.
この変換を行うには、「上」方向fをパラメーターtに関連付ける必要があります。この方向は、楕円の接線に垂直です。定義により、曲線の接線(ベクトルとして表される)は、パラメーター化を微分することによって取得されます。
Tangent(t) = d/dt (a cos(t), b sin(t)) = (-a sin(t), b cos(t)).
(微分は変化率を計算します。曲線を移動するときの位置の変化率は、もちろん速度であり、常に曲線に沿って指します。)
これを時計回りに90度回転して、「法線」ベクトルと呼ばれる垂線を取得します。
Normal(t) = (b cos(t), a sin(t)).
この法線ベクトルの傾きは、(a sin(t))/(b cos(t))(「ライズオーバーラン」)に等しく、水平からの角度の接線でもあります。
tan(f) = (a sin(t)) / (b cos(t)).
同様に、
(b/a) tan(f) = sin(t) / cos(t) = tan(t).
(ユークリッドジオメトリを十分に理解している場合は、aとbによる水平方向と垂直方向の組み合わせがそれぞれ変化する効果があることを認識するだけで、トリグや計算を経ることなく、楕円の定義からこの関係を直接取得できますこの因子によって、すべての斜面B / 。)
R(t)^ 2の式をもう一度見てください:aとbがわかっています -それらは楕円の形状とサイズを決定します-したがって、cos(t)^ 2とsin(t)^ 2を見つけるだけですfに関しては、前述の方程式を使用すると簡単にできます。
cos(t)^2 = 1/(1 + tan(t)^2)
= 1 / (1 + (b/a)^2 tan(f)^2)
= a^2 / (a^2 + b^2 tan(f)^2);
sin(t)^2 = 1 - cos(t)^2
= b^2 tan(f)^2 / (a^2 + b^2 tan(f)^2).
(tan(f)が無限の場合、極にいるので、その場合はf = tに設定します。)
これが必要な接続です。 cos(t)^ 2およびsin(t)^ 2のこれらの値をR(t)^ 2の式に代入し、簡単に取得する
R(f)^2 = ( a^4 cos(f)^2 + b^4 sin(f)^2 ) / ( a^2 cos(f)^2 + b^2 sin(f)^2 ).
単純な変換は、この方程式がウィキペディアで見つかったものと同じであることを示しています。a ^ 2 b ^ 2 =(ab)^ 2および(a ^ 2)^ 2 = a ^ 4であるため、
R(f)^2 = ( (a^2 cos(f))^2 + (b^2 sin(f))^2 ) / ( (a cos(f))^2 + (b sin(f))^2 )
私の数学非識字ソリューションが5分間の思考とコーディングで仕事をしたことを見つけるのは興味深いことですが、完全な楕円モデルではなく平坦化因子を考慮する必要はありませんか?
double pRad = 6356.7523142;
double EqRad = 6378.137;
return pRad + (90 - Math.Abs(siteLatitude)) / 90 * (EqRad - pRad);
return E + (P - E) * Abs(Lat) / 90
なので90 - ...
、式に含める必要はありません。
少なくとも、米国国防総省(DoD)高性能コンピューティング近代化プログラム(HPCMP)wikiの米国データ分析評価センター(DAAC)で見つけた公式です。彼らはウィキペディアのエントリーから大きく借りたと言っています。それでも、彼らがその式を保持したという事実は、何かのために数えるべきです。
(b^4 sin(f))^2
に変更すべきではありません(b^4 sin(f)^2)
か