正距円筒図法の大円線


12

ちょうど私が正しい軌道に乗っていることを確認するために:

球上のすべての大円と正距円筒図法(緯度、経度のペア)は次のいずれかです。

  1. 経線(つまり、極から極へ)
  2. フォームの tan latitude = sin360(longitude + rotation) * amplitude + offset

(オフセット/振幅の組み合わせに追加の制限があります-明らかに、振幅が0の大円経路もすべてオフセット0-赤道です)。

または、このスキームに適合しない大円のパスがありますか(再度、他の地図投影ではなく、経度と緯度の座標系でのみ)。

注:tan質問を投稿した後、whubersの優れた返信に対する反応として、上記を追加しました。これは、ことが判明しoffset、その後は常に0です。


フォーム#2は(緯度、経度)のペアのセットではありません。どういう意味ですか?そして、なぜそれは三つのパラメータに依存しない(rotationamplitude、及びoffset)大円が自然に(それまで「極性」であり、正反対のポイントのペアにそれぞれ1対応)のみ2つのパラメータを持っている場合?
whuber

はい、1つは冗長ですが、式の準備ができていません。述べたように、amplitude==0暗示offset=0。これら2つは明らかに結合されています。不足latitudeしているものについては更新された質問を参照して、関係を適切なものにしてください。
エーリッヒシューベルト

回答:


11

測地線は一部の投影図では正弦波のように見えますが、式は正しくありません。

これは、正距円筒図法の1つの測地線です。明らかにそれは正弦波ではありません:

ここに画像の説明を入力してください

(背景画像はhttp://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/Equirectangular-projection.jpg/800px-Equirectangular-projection.jpgから取得されます。)

すべての正距円筒図法はこの投影のアフィン変換(x座標は経度、y座標は緯度)であり、正弦波のアフィン変換は依然として正弦波であるため、どのような形の測地線も期待できません正弦波である正距円筒図法(水平線としてプロットされる赤道を除く)。それでは、最初から始めて、正しい式を計算しましょう。

そのような測地線の方程式を

latitude = f(longitude)

関数fが見つかります。(このアプローチは、そのような形式では記述できない経線を既にあきらめていますが、そうでなければ完全に一般的です。)3Dデカルト座標(x、y、z)への変換は、

x = cos(l) cos(f(l))
y = sin(l) cos(f(l))
z = sin(f(l))

ここで、lは経度であり、単位半径が想定されます(一般性は失われません)。球上の測地線は平面との交差点であるため(その中心を通過)、一定のベクトル(a、b、c)が存在する必要があります-これは測地線の極間に向けられています

a x + b y + c z = 0

lの値が何であっても。f(l)を解くと

f(l) = ArcTan(-(a cos(l) + b sin(l)) / c)

提供さcがゼロではありません。明らかに、cが0に近づくと、180度異なる子午線のペアが得られます。正​​確には、最初に放棄した測地線です。だから、すべてが良いです。ちなみに、外観にもかかわらず、これはa / cとb / cに等しい2つのパラメーターのみを使用します。

すべての測地線は、経度0度で赤道を横切るまで回転できることに注意してください。これは、f0(l-l0)でf(l)を記述できることを示します。l0は赤道交差の経度、f0は子午線での測地線交差の表現です。これから、同等の式を取得します

f(l) = ArcTan(gamma * sin(l - l0))

ここで、-180 <= l0 <180度は赤道交差の経度(測地線が東に移動するときに北半球に入る)であり、ガンマは正の実数です。これには、子午線のペアは含まれません。ガンマ = 0の場合、経度l0に開始点がある赤道を指定します。一意のパラメーター化が必要な場合、その場合は常にl0 = 0を使用できます。今回はl0とガンマによって指定された2つのパラメーターがまだあります。


イメージの作成にはMathematica 8.0が使用されました。実際、ベクトル(a、b、c)を制御できる「動的な操作」を作成し、対応する測地線が即座に表示されます。(これはかなりクールです。)最初に背景画像を取得します。

i = Import[
   "http://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/\
    Equirectangular-projection.jpg/800px-Equirectangular-projection.jpg"]

コード全体を次に示します。

Manipulate[
 {a, b, c} = {Cos[u] Cos[v], Sin[u] Cos[v], Sin[v]};
 Show[Graphics[{Texture[i], 
    Polygon[{{-\[Pi], -\[Pi]/2}, {\[Pi], -\[Pi]/2}, {\[Pi], \[Pi]/2}, {-\[Pi], \[Pi]/2}}, 
     VertexTextureCoordinates -> {{0, 0}, {1, 0}, {1, 1}, {0, 1}}]}], 
  Plot[ArcTan[(a Cos[\[Lambda]] + b Sin[\[Lambda]]) / (-c)], {\[Lambda], -\[Pi], \[Pi]}, 
   PlotRange -> {Automatic, {-\[Pi]/2, \[Pi]/2}}, PlotStyle -> {Thick, Red}]],
   {u, 0, 2 \[Pi]}, {v, -\[Pi]/2, \[Pi]}]

ありがとう。私はarctanどこかでそれを失いました。arctan latitudeどこかで始めたと思います。
エーリッヒシューベルト

これに複数回賛成票を投じることができればいいのに!
イアンタートン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.