Ich versuche, die Verzerrung zu berechnen, damit ich überlagerten Text und Formen so verzerren kann, dass sie genau mit dem Bild einer gleichwinkligen Projektion übereinstimmen.
Wie berechnet man also die Verzerrung bei einem gegebenen Breitengrad auf einer gleichwinkligen Projektion von 1: 45.000.000 (z. B. 2000 Pixel breit x 1000 Pixel hoch)?
Ich habe versucht, diesen Beitrag und seine Links ohne Erfolg herauszufinden: Wie erstelle ich eine genaue Tissot-Indikatrix?
Ich bin kein Profi, sondern nur ein sehr interessierter Amateur.
Danke vielmals!
Danke für die prompten Antworten! Hier ist die lange Geschichte; Ich hoffe es ist klarer.
Ich visualisiere Daten mit der Programmiersprache Processing und möchte, dass die 2D-Kartendaten (Schriftarten und Kreise unterschiedlicher Größe) beim Umschließen auf einen 3D-Globus unverzerrt angezeigt werden. Die Daten werden mit äquirektangularen x, ys abgebildet, und die Karten, die ich als Hintergrund verwenden möchte, sind alle diese Projektionen. Daher gehe ich davon aus, dass ich diese Verzerrung "angleichen" möchte (z. B. durch Berechnen der Verzerrung über den Breitengrad mit Tissot-Gleichungen?). Mit der Programmiersprache kann ich sowohl den Text als auch die Kreise präzise verzerren. Ich denke, alles was ich brauche, sind die Gleichungen, um es richtig zu machen.
Hier ist die ursprüngliche 2D-Datenkarte:
In der Verpackung sieht es verzerrt aus:
Die 10.000-Dollar-Frage: Wie kann ich mein 2D-Bild unverzerrt aussehen lassen, wenn es in die 3D-Kugel gewickelt wird?
Als Referenz wird hier dieselbe Frage im Processing-Forum unterschiedlich gestellt.
Danke noch einmal!
Wenn ich Sie richtig verstehe, bin ich mir nicht sicher, ob ich in eine orthografische Projektion umprojizieren möchte. Ich möchte, dass meine 2D-Datenkarte in ein 3D-Kugelmodell übergeht, mit dem interagiert werden kann (dh das gedreht werden kann).
Ich verwende ein 3D-Modellierungsprogramm (Cinema 4D), um eine Kugel mit einem 2 MB großen "Blue Marble" -Bild (gleichwinklige Projektion) der NASA zu umhüllen .
Eingehüllt erscheint es unverzerrt von allen Hemisphären (nicht nur eine Hemisphäre, wie eine orthografische Projektion wäre?), Siehe: noch vom 3D-Modell oben. (Das Modellierungsprogramm führt die orthografische Projektion für mich durch, während ich das Objekt drehe, nehme ich an.) Wenn ich meine 2D-Datenkarte auf ähnliche Weise verzerre, wird sie auch auf der 3D-Kugel unverzerrt angezeigt. Hier ist eine Aufnahme, die ich mit einer Gleichung gemacht habe, die sich einer gleichwinkligen Verzerrung annähert. Sie werden feststellen, dass die eiförmigen Ellipsen im 2D-Bild wie ein Kreis aussehen, wenn sie in die 3D-Kugel gewickelt werden. In ähnlicher Weise erscheinen die Tissot-Ellipsen auch als Kreise auf der 3D-Kugel.
Aus diesem Grund habe ich mir die Tissot-Gleichungen angesehen, um die Verzerrung der gleichwinkligen Projektion in verschiedenen Breitengraden genauer zu bestimmen, damit ich meine Überlagerung entsprechend verzerren kann.
Hoffe das alles macht Sinn.
Vielleicht hast du recht, dass ich ein GIS-Programm verwenden sollte. Ich habe gerade Cartographica heruntergeladen und werde sehen, ob ich es herausfinden kann. Irgendwelche Mac-Software-Vorschläge für einen Neuling, der diese Aufgabe übernimmt?
Danke noch einmal.
quelle
Antworten:
Die Bildkoordinaten sind Breitengrad und Längengrad, also auch Sie
(a) Nehmen Sie die Projektion zurück und projizieren Sie sie mit einer orthografischen oder vertikalen Nahprojektion ( dh Projektionen, die wie die Welt aus dem Weltraum aussehen) oder
(b) Ordnen Sie es mit einer Textur auf ein 3D-Modell einer Kugel zu, wobei Sie Lat-Lon als Texturkoordinaten verwenden, und zeigen Sie diese Kugel mit einem 3D-Grafik-Rendering-Gerät an.
Die meisten GIS machen (a) routinemäßig. Zur Veranschaulichung von (b) ist hier eine Reihe von Bildern, die von der "flachen" Karte in der Frage abgeleitet wurden, die von einem Standpunkt aus aufgenommen wurden, der die texturabgebildete Kugel umkreist:
(Wenn Sie sich das Bild ganz rechts genau ansehen, sehen Sie einen markanten Meridian durch den Pazifik: Dies ist die "Naht", die durch Zusammenwickeln der linken und rechten Seite der Karte entsteht.)
Der grundlegende Mathematica- Befehl zum Erstellen eines dieser Befehle lautet
Dies reduziert das ursprüngliche Problem (das Zeichnen von "Datenkarten" auf einer Kugel), um eine Karte zu generieren, die Kreise korrekt anzeigt. Die beste Projektion hierfür ist die Stereografie, da alle Kreise auf der Kugel - unabhängig von ihrer Größe - auf Kreise auf der Karte projiziert werden. Ein Verfahren zum korrekten Zeichnen großer Kreise in einer gleichwinkligen Projektion, wie in der Frage gezeigt, besteht darin, sie in einer stereografischen Projektion zu erstellen und sie dann auf geografische Koordinaten (lat, lon) zu projizieren. Die Verwendung von (lon, lat) als (x, y) kartesische Koordinaten, um die Karte zu erstellen, entspricht der gleichgerichteten Projektion und ist daher für die Texturabbildung auf die Kugel oder für die Anwendung einer orthografischen Projektion geeignet.
Beachten Sie, dass Tissot-Indikatoren nicht als Lösung geeignet sind: Sie repräsentieren nur lokale Verzerrungen infinitesimaler Kreise. Kreise, die groß genug sind, um global gesehen zu werden, werden in den meisten Projektionen nicht einmal mehr kreisförmig angezeigt: Sehen Sie in der fraglichen Karte, wie blobhaft sie auftauchen. Aus diesem Grund ist es für eine gute Lösung unerlässlich, Spiele mit Projektionen zu spielen, wie hier gezeigt.
quelle
Vorausgesetzt, die gezeichneten Formen bedecken einen kleinen Teil der Kugel, sollten Sie in der Lage sein, die Breite um 1 / cos (lat) zu skalieren und die Höhe in Ruhe zu lassen.
Je größer die Form und je näher Sie den Polen kommen, desto weniger funktioniert dies.
quelle
Ich kann nicht herausfinden, wie ich einen Kommentar hinzufügen soll. Daher werde ich dies in die Lösung aufnehmen und die Moderatoren durcheinander bringen, um herauszufinden, warum ich keinen Kommentar abgeben kann.
Mein erster Eindruck beim Lesen Ihrer Frage war "Warum entwerfen Sie Ihre Kreise nicht in einer konformen Projektion wie Mercator?". Sie können diese Karte in eine Mercator-Projektion projizieren und Ihre Kreis- und Textverzerrung sehen, alles so korrigieren, dass es gut aussieht. Wenn Sie sie auf Ihren Globus projizieren, sollten die Formen korrekt bleiben (das ist die Definition einer konformen Projektion).
quelle
In Ihrer ersten 2D-Karte sind keine geografischen Merkmale gezeichnet. Fügen Sie sie dieser Karte hinzu (sagen wir Afrika-Kontur) und wenden Sie die Verzerrung, an die Sie denken, auf alles gleichzeitig an. Die Geographie würde sich ebenfalls ändern, und wenn Sie sie auf die Kugel legen, wäre sie falsch. Daher glaube ich, dass diese Idee, eine gewisse Verzerrung anzuwenden, nicht funktionieren würde.
In 2D können Sie zurechtkommen, indem Sie Grafiken in kleinen 2D-Karten mit begrenztem Bereich und akzeptablen Verzerrungen zeichnen. Sie können Ihre 2D-Karte in Kacheln schneiden und für jede Kachel eine eigene "beste" Projektion verwenden.
Auf der anderen Seite ist es einfach, Punkte auf einem geodätischen Kreis mit einem bestimmten Radius auf der 2D-Karte zu erstellen. Dazu müssten Sie eine Funktion finden, die Lat / Long eines Punktes in einer bestimmten Entfernung und Azimut von einem anderen Punkt berechnet (suchen Sie nach "direct problem Vincenty"). Sobald Sie dies erhalten haben, können Sie eine Reihe von äquidistanten Punkten in einem bestimmten Abstand vom Punkt erzeugen, indem Sie den Azimut von 0 auf 360 ändern. Das Erstellen eines Polygons aus diesen Punkten in 2D erfordert mehr Arbeit, wenn der geodätische Kreis einen Pol enthält oder sich schneidet linker oder rechter Rand der Karte. Prüfen Sie , wie geodätischen Kreise wie auf einer flachen Karte sehen kann hier .
quelle