Diskontinuierliche oder unterbrochene Kartenprojektionen?

21

Unterstützt eine der aktuellen Open-Source-GIS-Software diskontinuierliche Projektionssysteme? ZB Sinus , Dymaxion , Schmetterling usw? Wenn nicht, gibt es bezahlbare kommerzielle (bezahlbare Bedeutung <150 USD)?

Upate: Anscheinend war es eine schlechte Idee, mit "sinusförmig" zu führen, da diese Projektion auch eine einzelne, nicht unterbrochene Punktform aufweist. Bitte beachten Sie, dass das Schlüsselwort hier diskontinuierlich oder unterbrochen ist . Vielen Dank.

Cahills Schmetterlingskarte von 1909

Matt Wilkie
quelle

Antworten:

10

Es ist möglich, so etwas wie die unterbrochene Sinusprojektion und ähnliche Projektionen zu konstruieren, indem Sie mehrere (normale) Sinusprojektionen ausführen und diese ausschneiden und zusammenfügen. Mir ist kein Werkzeug bekannt, das dies tut (aber ich bin nicht derjenige, der nach Werkzeugen fragt). In dem Fall, dass Sie auf Spucken und Kleben zurückgreifen müssen ...

  • Wenn Sie sich ein zufälliges Beispiel für den unterbrochenen Sinus anschauen , entspricht jeder perfekt vertikale Meridian einer einzelnen Sinusprojektion.

  • In diesem Beispiel betrachten Sie Sinuskurven mit den Schwerpunkten: -160, -100, -60, ...

  • Schneiden Sie dann die Teile aus und verschieben Sie sie, um sie in eine Linie zu bringen: Der untere linke Teil besteht aus den Längengraden -180 ..- 100 und den Breitengraden 0 ..- 90 und wird mit einer mittleren Länge von -160 projektiert. Der nächste Teil sind die Längengrade -180 ..- 40 und die Breitengrade 0..90, projiziert mit einem Zentrum von -100. Und so weiter (das Beispiel, das ich verlinkt habe, war ziemlich kompliziert und es könnte ein lustiges Geschäft in Russland geben; es sieht dort nicht wie eine Vanille-Sinusform aus).

Wenn Sie nach einer fertigen Karte suchen, würde ich sie in ein schönes georeferenziertes Bild mit hoher Auflösung rendern und die Projektionsteile erstellen, indem Sie sie in jede sinusförmige Projektion projizieren und dann maskieren. (Erstellen Sie die Masken, indem Sie durchgezogene Quadrate projizieren, die den Lat / Lon-Zielbereich für jedes Stück abdecken.) Wenn Sie mit Rohdaten arbeiten, würde ich diese in Eingabestücke unterteilen und darauf achten, Linien und Polygone entlang eines "Schnitts" zu teilen. Kanten in der Projektion.

Hoffentlich ist dies eine bessere Antwort als nichts. :)

Es wäre ein interessantes Nebenprojekt, dies in einem Skript (zB w / gdalwarp) zu automatisieren ...

Dan S.
quelle
danke für die spucke und den klebstoff, ich muss das in der tat zerhacken und es stückweise angreifen; Ich hatte diesen Ansatz nicht in Betracht gezogen.
Matt Wilkie
Es wurde ein
Artikel
1
Nach dem Lesen der Dokumente wird in den bisher angegebenen Beispielen für ArcInfo und GMT dieser Vorgang zum Generieren und Zusammenfügen von Stücken verwendet. Theoretisch sollte dies an QGIS, Gras oder was auch immer anpassbar sein. Das arcinfo-Papier enthält spektakuläre Details für den Vorgang, während GMT die Zustimmung erhält, es auf 3 Befehle zu reduzieren, wenngleich es auf eine einzelne Projektionsvariante beschränkt ist.
Matt Wilkie
Überprüfen Sie meine Antwort unten, ich habe ein Programm gemacht, das genau das macht :)
Michał
7

Ich habe jetzt ein kostenloses und sehr detailliertes Programm-Set hochgeladen, um die Cahill-Keyes-Multiskalen-Megamap mit Rändern und einer Geocell-Auflösung von 1 / 1.000.000 oder kleiner zu erstellen. Es verwendet das kostenlose OpenOffice.org Draw 3.0 und Perl. http://www.genekeyes.com/MEGAMAP-BETA-1/Megamap-Beta-1.html . (Überprüfen Sie den Link hier für viele JPEGs, PDFs und kostenlose Downloads mit einer Größe von bis zu 40 MB.)

Bildbeschreibung hier eingeben

Gene Keyes
quelle
4

Hier gibt es ein C-Programm, das eine Koordinatentransformation von (Lat, Long) nach (X, Y) in der Dymaxion-Projektion durchführen kann. Ich bin nicht sicher, ob dies Ihren Kriterien für Open Source entspricht, aber es ist so nah wie ich gekommen bin.

Ich habe nichts gefunden, um eine richtige Projektion zu machen, aber ich habe diese Ressource von Gene Keyes gefunden, der Cahills Schmetterlings- und Fullers Dymaxion-Projektionen vergleicht, was wirklich nett ist. Er hat ein Perl-Skript, das Koordinaten auf eine Dymaxion-Karte zeichnen kann. Von dort fand ich die Basis für dieses Skript: die oben genannte Site von RW Gray, die ein C-Programm hat, das eine Koordinatentransformation durchführen kann, und siehe seinen Hinweis am Ende der Seite bezüglich der Nutzungsbedingungen für den Code.

yhw42
quelle
4

Jason Davies hat eine Vielzahl von unterbrochenen Projektionen für D3.js produziert , wie zum Beispiel den Waterman Butterfly:

Bildbeschreibung hier eingeben

Schauen Sie sich auf seiner Website die großartige Arbeit an, die er und Mike Bostock geleistet haben, um unterbrochene Projektionen auf D3 zu bringen.

scw
quelle
2

Das mapproj R-Paket unterstützt eine Reihe von Projektionen, darunter auch sinusförmige.

Sie könnten sich auch Jack van Wijks Myriahedral Projections ( Myriahedral-Projektionen) gemäß seiner Arbeit ansehen :

Alle Bilder wurden mit einem speziell entwickelten, integrierten Tool erstellt, um Maschen und Gewichte zu definieren und die Ergebnisse unter MS Windows zu berechnen und zu rendern.

radek
quelle
Aber unterstützt es die diskontinuierliche Version der Sinusprojektion?
underdark
1
-1 für mapproj, das (aus den Dokumenten) nur die Einpunktform von Sinusoidal, "sinusoidal () Parallelen mit gleichem Abstand, gleicher Fläche, wie bonne (0)", unterstützt . +1 für Myriahedral, was definitiv diskontinuierlich ist und interessant aussieht. Die verwendete Software scheint jedoch privat und nicht verfügbar zu sein.
Matt Wilkie
1
@ underdark: es war b4 update nicht klar, dass sinusförmig diskontinuierlich sein muss, daher mein vorschlag. @matt: Es wurde im akademischen Umfeld erstellt und ich denke, es besteht die Möglichkeit, dass der Autor darauf zugreifen kann.
Radek
Nun, der Fragentitel hat sich nicht geändert;) nvm
underdark
2

Ich habe Cahill-Keyes vor langer Zeit in D3.js implementiert, nachdem Gene Keyes 'großartige Dokumentation / Code auf seiner Website veröffentlicht wurde. Sie finden es in diesem Block

Hier ist ein Schnappschuss:

Bildbeschreibung hier eingeben

espinielli
quelle
1

Gene Keyes und Partner Mary Jo Graça haben kürzlich Cahill-Keyes Octant Graticule: Prinzipien und Spezifikationen mit Perl-Programmen und OpenOffice.org 2.0-Makros für 1 / 1,000,000 Megamap unter einer Creative-Commons-Lizenz veröffentlicht. Abstrakt „Wie eineine vollständiges Ein-Grad - Raster einer acht Oktanten Weltkarte auf 1/1000000 wird mit Perl und Makros in einem freien OpenOffice.org 2.0 Vektor-Zeichenprogramm auf einem $ 300 Asus Netbook. Dies ist eine weitere Tranche von meiner Ausarbeitung Hinweise zur "Real-World" -Karte von Cahill-Keyes. Sie beschreibt nur das Raster im Detail, sowohl als hand- als auch als computergezeichnete Archetypen. Die Eingabe von GIS-Daten ist die nächste Herausforderung.Die Grafik in der Frage stammt von Gens Site. Ich habe bis jetzt nicht über die Perl & OO-Seite gepostet, da er die Seite noch nicht veröffentlicht hatte.

Miniaturansicht des Open Office-Makroergebnisses

Ich habe unter http://bitbucket.org/maphew/cahill-keyes ein Quellcode-Repository für ihre Arbeit erstellt , um schließlich den Teil "In GIS einsteigen" anzugehen. Obwohl bis jetzt noch nichts getan wurde - dies ist eine Ecke meines Schreibtischprojekts -, wird der Fortschritt langsam sein. :)

Matt Wilkie
quelle
1

Wie bereits erwähnt , funktioniert das C-Programm hier gut. Auch verfügbar, hier in Javascript für OpenLayer.

Ich habe beide erfolgreich verwendet, hatte aber den größten Erfolg mit der Javascript-Version im Skriptsystem von Adobe Illustrator. Ich nahm Formdateien und wandelte sie in Javascript-Objekte um, lud sie in Illustrator und führte beim Zeichnen die Punkte durch den Javascript-Projektionscode.

Mit diesem Code habe ich eine sehr interessante Zeitzonenkarte erstellt.

Ich fange gerade erst mit der Arbeit mit QGIS an, daher bin ich mir nicht sicher, ob es Möglichkeiten gibt, eine benutzerdefinierte, programmgesteuerte Projektion wie diese zu erstellen, aber ich würde mich hier sehr dafür interessieren.

Gazhay
quelle
Hallo gazhay, willkommen bei GIS.se :) Es hat sich bewährt, beim Verlinken den Seitentitel oder einen anderen markanten Text zu verwenden here. erleichtert die Suche nach neuen Links, wenn die Zielseite unweigerlich dem Bitrot unterliegt. (Dies wäre auch besser als Kommentar zu der erwähnten "zuvor erwähnten" Antwort zu verstehen gewesen, aber als neuer Benutzer ist mir klar, dass dies für Sie noch nicht offen ist.) Vielen Dank für Ihren Beitrag. Ich empfehle eine Frage und Antwort zum Workflow " Shape> Illustrator> Openlayers", da dieser interessant klingt ( gis.stackexchange.com/help/self-answer )
matt wilkie
1

Ich habe die sinusförmige unterbrochene Projektion in Javascript codiert, sodass sie im Webbrowser ausgeführt wird. Sie können es hier überprüfen: http://www.winski.net/?page_id=12 . Ich unterstütze auch die USGS Daisy Petal Projektion.

Sie müssen nur Ihr Eingabebild, die sinusförmig unterbrochene Projektion aus der Liste der Projektionen, die Anzahl der Gores und "Projekt" auswählen.

Es ist unter BSD, also fühle dich frei, alles zu tun, was du willst :)

Michał
quelle