正距円筒図法の歪みをどのように計算しますか?


28

歪みを計算して、オーバーレイするテキストとフォームを歪み、正距円筒図法の画像に正確に一致させようとしています。

それでは、1:45,000,000の正距円筒図法(たとえば、幅2000ピクセルx高さ1000ピクセル)で与えられた緯度での歪みをどのように計算しますか?

私はこの投稿とそのリンクが役に立たないことを理解しようとしています: 正確なティソインディカトリックスを作成するには?

私はプロではなく、非常に興味のあるアマチュアなので、私のためにそれを馬鹿にしてください!

どうもありがとう!


迅速な返信をありがとう!ここに長い話があります。もっと明確になってほしい。

Processingプログラミング言語を使用してデータを視覚化/マッピングしていますが、3Dグローブにラップしたときに、2Dマップデータ(異なるサイズのフォントと円)が歪みなく表示されるようにしたいと思います。データは等角x、yを使用してマッピングされ、背景として使用するマップはすべてこの投影であるため、この歪みを「一致」させたいと考えています(たとえば、Tissot方程式を使用して緯度を介して歪みを計算しますか?)。プログラミング言語を使用すると、テキストと円の両方を正確に歪めることができます。必要なのは、それを正しく行うための方程式だけだと思います。

元の2Dデータマップを次に示します。

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

ラップすると、次のように歪んで見えます。

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

$ 10,000の質問:3D球体にラップしたときに2D画像を歪まないようにするにはどうすればよいですか?

参考までに、Processingフォーラムで異なる質問をした同じ質問を以下に示します。

再度、感謝します!


私があなたを正しく理解していれば、正投影に再投影したいかどうかわかりません。2Dデータマップを、相互作用(スピン)できる3D球体モデルにラップしたい。

私は3Dモデリングプログラム(Cinema 4D)を使用して、NASAからの2MBの「青い大理石」画像(正距円筒図法)で球体をラップしています。

ラップすると、すべての半球から歪みなしに表示されます(正射投影のように、1つの半球だけではありません)。(モデリングプログラムは、オブジェクトを回転させるときに正投影を行っていると思います。)したがって、2Dデータマップを同様の方法で歪ませると、3D球体でも歪まないように見えます。これは、正距円筒歪みを近似する方程式で撮ったショットです。2D画像の卵形の楕円は、3D球体にラップすると円のように見えます。同様に、ティソの楕円も3D球体上の円として表示されます。

歪んだ円のティソインドカトリックス 3D球体にラップされた歪んだ円

これが、ティソ方程式を見ていた理由です...異なる緯度での正距円筒図法の歪みをより正確に把握し、それに応じてオーバーレイを歪めることができました。

これがすべて理にかなっていることを願っています。

おそらく、私がGISプログラムを使用するのは正しいでしょう。Cartographicaをダウンロードしたところ、理解できるかどうかを確認します。このタスクを引き受ける初心者向けのMacソフトウェアの提案はありますか?

再度、感謝します。


1
あなたは本当に歪みを計算することを意味しますか、それとも投影自体を計算する方法を本当に知りたいですか?おそらく、あなたが達成しようとしていることを説明するために、Web上で画像を利用可能にすることができます。「一致」の使用は、ある画像を別の画像に変換する方法を決定することを示唆します。これは、最初に何を、最後に何をしたいかを指定する必要があることを示します。
whuber

1
専門用語を知らずにやりたいことを説明するのは難しいと思いますが、結果ではなくプロセスを説明しようとしているようです。解決したい問題から始めて、次に希望する結果を試してみてください。ギャップを埋めようとします:)
MerseyViking

技術的な面では:あなたがしたい再投影に正距円筒図法から正射投影(「宇宙からの世界」)。どのソフトウェアを使用できますか?GISソフトウェアをお持ちの場合、または投影ライブラリに対してコードを作成する場合は、基本的に作業が行われます。そうしないと、あなたはのための方程式を実装する必要がunprojecting正距円筒図法を(簡単)と突出した正投影(あまりにもハードではないが、しかし、数値ルーチンをコーディングして、いくつかのスキルが必要です)。
whuber

1
私はこの投稿を見て、基本的にまったく同じことをしようとしています。3D球体に投影したときに正しく歪む2D円を描きたい。2D円の歪みに使用したアルゴリズムを共有してもらえますか?本当にコメントではなく答えであるはずでしたが、間違った場所に書きました。ごめんなさい。
ハンクターボ

データを3D空間に描画してから、球体に投影し直す必要があります。
AngelLeliel

回答:


5

3D球体にラップしたときに2D画像が歪まないようにするにはどうすればよいですか?

画像の座標は緯度と経度であるため、

(a)投影を解除し、正射投影または垂直のニアサイド投影(つまり、宇宙からは世界のように見える投影)を使用して再投影します。

(b)lat-lonをテクスチャ座標として使用して球の3Dモデルにテクスチャマッピングし、3Dグラフィックスレンダリングデバイスでその球を表示します。

ほとんどのGISは(a)定期的に行います。(b)を説明するために、テクスチャマップされた球体を周回する視点から取られた問題の「フラット」マップから派生した一連の画像を次に示します。

宇宙からの世界

(右端の画像をよく見ると、太平洋を通る顕著な子午線が見えます。これは、マップの左右を一緒にラップすることによって形成される「シーム」です。)

これらのいずれかを生成する基本的なMathematicaコマンドは

SphericalPlot3D[1, {a, 0, \[Pi]}, {b, 0, 2 \[Pi]}, Mesh -> None, 
 PlotStyle -> {Texture[i]}, TextureCoordinateFunction -> ({#5, -#4} &), 
 Lighting -> {{"Ambient", White}}, 
 Boxed -> False, Axes -> False, Background -> Black]

これにより、元の問題(球体に「データマップ」を描画する)が軽減され、円を正しく表示するマップが生成されます。 これに最適な投影法はステレオグラフィックです。これは、球体上のすべての円を、そのサイズに関係なく、地図上の円に投影するためです。したがって、問題に示されているように、正距円筒図法で大きな円を正しく描画する1つの手順は、立体図法でそれらを作成し、地理座標(緯度、経度)に投影解除することです。(lon、lat)を(x、y)デカルト座標として使用してマップを作成することは、正距円筒図法と同等であるため、球体へのテクスチャマッピングや正投影図法の適用に適しています。


Tissot指標は解としては適切ではないことに注意してください。それらは、極小円の局所歪みのみを表します。グローバルスケールで表示するのに十分な大きさの円は、ほとんどの投影ではもはや円形に見えなくなります。問題のマップでの丸い外観を目撃してください。そのため、ここに示すように、プロジェクションを使用してゲームをプレイすることが優れたソリューションに不可欠です。


非常に有益な投稿をありがとう!私はアプローチとして(b)を採用しており、正距円筒図法を正しく生成していますが、地図を3D球体にマッピングする際にpoleい極歪みが発生します。あなたはとても親切に助けてくれますか?gis.stackexchange.com/questions/245315/...
Sibbsギャンブル

2

描画される形状が球体の小さな部分をカバーすると仮定すると、幅を1 / cos(lat)でスケーリングし、高さだけを残して取得できるはずです。

形状が大きく、極に近づくほど、うまく機能しません。


これが機能する理由を説明してください。サンプル画像のレンダリングのエッジ付近の球体の小さな部分でさえ、劇的に失敗するように見えます。
whuber

編集していただきありがとうございます。あなたの答えは私には正しく見え、将来誰かに役立つかもしれないので、私はそれに応じて下票を削除しました。しかし、質問を検討する際に、誰もがそのような小さな形状を球体の周りに巻き付けることはまずないように思われます-そして、そうするとき、彼らは極と他のどこでも対処する必要があるでしょう、私は想像します。
whuber

0

コメントを追加する方法がわからないので、これをソリューションに追加し、モデレーターにスクランブルしてコメントできない理由を見つけさせます。

質問を読んだときの私の第一印象は、「メルカトルのような正角図法で円を設計しないのはなぜですか」でした。このマップをメルカトル図法に投影し、円とテキストの歪みを確認し、見栄えを良くするためにすべてを修正し、それをグローブに投影しても、形状は正しいままでなければなりません(正角投影の定義)。


2
これは私の答えのように見えるので、私はそれを残します。しかし、誤解に基づいているため、正しくありません。共形投影は、すべての円を円に投影しません。彼らは無限にそうします。その違いは非常に大きいです。たとえば、メルカトル図法が地球の軸を回る円に対して何をするかを考えてください。円としてマップすることはできません。どこかで分割する必要があります。詳細については、サイトでTissotを検索してください。
whuber

1
「彼らは無限にそうします。」->「それらは、非常に小さなものに対してのみそうします。」
マーティンF

0

ご覧のように、最初の2Dマップには地理的特徴が描かれていません。それらをこのマップに追加し(アフリカの輪郭など)、考えている歪みを一度にすべてに適用します。地理も変更されることになり、球体に配置すると、間違ったものになります。したがって、ある程度の歪みを適用するというこの考えは機能しないと考えています。

限られた面積で許容可能な歪みがある小さな2Dマップにグラフィックを描画することで、2Dでうまくいくかもしれません。2Dマップをタイルにカットし、タイルごとに独自の「最適な」投影法を使用できます。

一方、2Dマップ上の指定された半径の測地円上にポイントを作成するのは簡単です。そのためには、特定の距離と方位角にあるポイントの緯度/経度を計算する関数を見つける必要があります(「直接問題Vincenty」を検索)。それが得られたら、方位角を0から360に変更することにより、ポイントから指定された距離に等距離のポイントの束を生成できます。マップの左または右の境界。こちらのフラットマップ測地円がどのように見えるかを確認してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.