Hintergrund Dies ist meine zweite Frage zum Georeferenzieren nackter Rasterkarten, um sie auf verschiedenen Koordinatensystemen und in Verbindung mit anderen Datenebenen erneut zu visualisieren. Die vorherige Frage lautet: Konvertieren Sie ein beliebiges metadatenfreies Kartenbild in ein QGIS-Projekt
Problem Mein Ziel ist es, diese Karte zu georeferenzieren:
Dies scheint nicht Plate-Carrée zu sein. Deshalb habe ich in QGIS mehrere sinnvolle Kontrollpunkte erstellt, die ich der Vollständigkeit halber unten angefügt habe [ref: 1]. Ich biete QGIS Georeferencer das gleiche Ziel-SRS an wie meine Projektdatei, EPSG: 4326. Ich erhalte außergewöhnlich schlechte Ergebnisse mit Helmert und den Polynomtransformationen, erhalte jedoch ein vernünftiges Bild mit dünnem Plattenspline (wodurch die resultierende geografische Schätzung meine Kontrollpunkte durchläuft). Selbst dieses Ergebnis ist jedoch schlecht, z. B. in höheren Breiten (siehe die russische Küste nördlich von Japan). Dies ist ein Screenshot meines QGIS-Bildschirms mit einem natürlichen Erdhintergrund.
Alternativer Weg Ich habe eine ähnliche Übung mit dem viel einfacher zu verwendenden Tool von MapWarper versucht: Sehen Sie sich das Ergebnis und die Kontrollpunkte unter http://mapwarper.net/maps/758#Preview_Map_tab an, wo ich schlechtere Ergebnisse erhalte (wahrscheinlich aufgrund der Tatsache) dass ich weniger Kontrollpunkte hinzugefügt habe).
Fragen auf den Punkt gebracht
- Gibt es irgendwelche Tricks, die ich für eine gute Georeferenzierung vermisse?
- Ist diese Projektion sofort erkennbar?
- Bei unbekanntem Koordinatensystem auf alte Zeichnung , wird
gdaltransform
vorgeschlagen, mehrere Koordinatenpunkte in ein mehr Ziel SRS zu verwandeln, mit dem Ziel , tatsächlich die Projektionsparameter Aufdecken verwendet , um die Original - Karte zu erzeugen. Ich habe versucht , so etwas wie dies: nach meiner QGIS Liste von Punkten zu speichern, ich einige Zeichenfolge tat Verarbeitung eine Liste von bekommen Leerzeichen getrennten lang / Lats übercat eurasian-steppe-gcp.points | tail -n+2 | cut -d, -f1-2 | sed 's/,/ /'> tmp.txt
und die resultierende Datei in gdaltransform Eingabe:gdaltransform -s_srs EPSG:3785 -t_srs EPSG:4326 < tmp.txt
und Schalt dass_srs
undt_srs
Flags (das Projekt verwendet EPSG: 4326). Ich weiß, dass ich im Dunkeln fotografiere, in der Hoffnung, Glück zu haben, also war ich nicht überrascht, als ich die Ergebnisse nicht verstehen konnte. Kann jemand erläutern, wie ich diese Methode verwenden würde, um die beste Schätzung der Projektion und der Projektionsparameter der Quellkarte zu ermitteln? Ich denke dahinter, dass es vielleicht einfacher ist, eine nahezu perfekte Georeferenz mit weniger Kontrollpunkten zu erhalten, anstatt unzählige Kontrollpunkte für eine gute Georeferenz zu platzieren, indem man einfach alle gängigen Koordinatensysteme durchläuft? Umfasst es eine Kreuzvalidierung jedes Punktes mit allen anderen Punkten für jedes zu testende CRS?
Ich möchte mich mit diesem Algorithmus oder der Georeferenzierung vertraut machen, damit ich den Prozess automatisieren kann. Dieses Problem tritt ständig auf, und bis die Ersteller von Inhalten aufhören, ihre Karten als einmalige Kreationen zu behandeln, die niemals integriert werden Bei anderen Inhalten erwarte ich nicht, dass ich damit aufhöre.
Verweise
[Ref: 1] QGIS GCP-Datei:
mapX,mapY,pixelX,pixelY,enable
142.632649100000009,54.453595900000003,505.941176470588232,-95.220588235293974,1
154.934252200000003,59.559921699999997,536.411764705882206,-52.779411764705742,1
80.080158100000006,9.657192300000000,291.558823529411711,-322.661764705882206,1
10.448442600000000,57.819128900000003,21.676470588235190,-103.926470588235134,1
34.007173000000002,27.761438299999998,101.117647058823422,-244.852941176470466,1
50.950890399999999,11.862196600000001,171.852941176470495,-313.955882352941046,1
29.713217199999999,60.024133200000001,90.779411764705799,-92.499999999999829,1
60.000000000000000,0.000000000000000,208.308823529411683,-362.382352941176350,1
69.867506500000005,66.639146199999999,224.088235294117567,-33.191176470588061,1
27.276107100000001,71.049154799999997,89.147058823529306,-21.764705882352814,1
140.000000000000000,0.000000000000000,536.955882352941217,-362.926470588235190,1
20.000000000000000,0.000000000000000,43.441176470588132,-362.926470588235190,1
20.196882700000000,31.243024100000000,47.249999999999901,-231.794117647058698,1
9.171861099999999,42.848309999999998,8.073529411764603,-175.205882352941046,1
131.955786100000012,43.196468600000003,481.999999999999943,-162.691176470588090,1
73.813303700000006,45.169367200000003,256.735294117646959,-161.602941176470438,1
50.602731800000001,44.589102900000000,168.044117647058727,-167.588235294117510,1
121.394975900000006,18.941421099999999,455.882352941176407,-284.029411764705742,1
103.987047000000004,1.417439300000000,389.499999999999943,-357.485294117646959,1
109.325478599999997,55.962283100000001,380.249999999999943,-98.485294117646902,1
31.454010100000001,46.562001500000001,95.132352941176379,-158.882352941176322,1
43.639560299999999,68.844150499999998,137.573529411764611,-40.264705882352814,1
Nicht aktualisieren
Analyse von van der Grinten Ich habe ein Python-Tool geschrieben, um GCPs an jede Projektion anzupassen, die Proj4 unterstützt (über Pyproj), und es auf die beiden in den Antworten vorgeschlagenen Projektionen angewendet. Der Quellcode (etwas schlampig, ich entschuldige mich im Voraus) sowie aktualisierte GCPs stehen unter https://github.com/fasiha/steppe-map zur Verfügung
Der van der Grinten muss nur 1 Parameter einstellen, und hier ist das resultierende Bild (unter Verwendung des neuesten Bildes von Britannica, vielen Dank für die Bereitstellung einer so hochauflösenden und aktualisierten Karte (obwohl es immer noch keine Projektionsdaten gibt)).
Van der Grinten weist einen relativen Fehler von 0,035 zwischen den GCPs und den Best-Fit-Punkten auf. Dies ist der schlechteste Wert der Gruppe, die ich ausprobiert habe, und die Überlagerung an der Küste bestätigt dies qualitativ.
(Es kann hilfreich sein, wenn Sie dieses Bild in einem eigenen Tab öffnen. Es ist ziemlich hochauflösend. Außerdem werden grüne Pfeile angezeigt, die die georeferenzierten Punkte angeben (sie sollten mit wichtigen Orientierungspunkten auf dem Bild übereinstimmen) sowie rote Pfeile, die angeben, wo diese Punkte liegen angepasst werden (sie sollten mit den gleichen Orientierungspunkten auf der Küstenlinie übereinstimmen) --- Die Abweichung zwischen den beiden kann dem Auge helfen, die Unterschiede zwischen dem Bild und der Anpassung zu erkennen.)
Analyse der Albers-Flächengleichheit Das Gleiche mit der Albers -Flächengleichheitsprojektion versuchen (das ist dasselbe wie "Albers-konformer Kegel"? Entschuldigen Sie meine Unkenntnis). Diese Anpassung, die eine 4-dimensionale Parameteranpassung beinhaltet, ist mit einem relativen Fehler von 0,025 besser, sieht aber trotzdem ziemlich schlecht aus.
Analyse der Robinson- und Eckert-V-Projektionen Ich passe eine Reihe von pseudozylinderförmigen Projektionen an, die von Pyproj unterstützt werden (alles, was ich finden konnte, hatte einen freien Parameter), und fand heraus, dass die Robinson- und die Eckert-V-Projektion hinsichtlich des relativen Fehlers zwischen "am besten" waren die GCPs und die angepassten Punkte, beide mit relativen Fehlern von 0,015.
Hier ist der Robinson:
Und hier ist der Eckert V.
Beachten Sie die Abweichungen der angepassten Küstenlinie von der Küstenlinie des Bildes. Ich denke damit kann ich schließen, dass die Karte keine der oben genannten ist?
Winkel Tripel: mögliche Lösung?
Nachdem ich nacheinander jede Projektion in diesem Proj-Handbuch aus dem Jahr 1990 (Stand 2003) ausprobiert hatte, kam ich schließlich zur Winkel-Tripel-Projektion. Dies erzeugt die geringsten quantitativen Fehler (0,011) und die Küstenlinie ist gleichmäßig recht gut (oder gleichwertig gleichmäßig leicht schlecht). Ich habe gelesen, dass dies die Projektion der National Geographic Society ist, was bedeutet, dass sie berühmt ist, und dies verstärkt die Kandidatur dieser Projektion für die Karte von Britannica. Der Einbau SRS: +units=m +lon_0=47.0257707403 +proj=wintri
.
(Entschuldigung, dass Sie die Farbe der Küste in Grau geändert haben. Wenn dies jemanden beleidigt, kann ich eine blaue Version erstellen.)
Ich werde versuchen, meine GCPs zu optimieren, um den Fehler zu verringern.
quelle
Antworten:
Aus einer ersten Analyse können wir erkennen, dass nur der Äquator und der Mittelmeridian (ungefähr durch Moskau verlaufend, ungefähr 37,36 östlich der Länge) gerade Linien sind, während alle anderen Parallelen und Meridiane Kurvenlinien sind. Unter den globalen Projektionen deuten diese Merkmale darauf hin, den Van der Grinten zu probieren ( wie es in einem Kommentar zur Frage der Fall war ), dh die Standard-Weltkartenprojektion der National Geographic Society.
Deshalb habe ich das Projekt SR in QGIS als benutzerdefiniertes SRS festgelegt
World_Van_der_Grinten_I (Moscow)
:direkt von
EPSG:54029
(World_Van_der_Grinten_I
) abgeleitet, wobei nur die Länge des Mittelmeridians geändert wird. Dann habe ich versucht, das Bild mithilfe der projektiven Transformation mit den folgenden GCPs zu georeferenzieren, die auf einem imaginären Raster ausgewählt wurden, das durch die verfügbaren Häkchen verläuft:Dies ist das Ergebnis im Brauch
World_Van_der_Grinten_I (Moscow)
mit GCPs (World Country Admin Grenze in rot):Diese Georeferenzierung könnte durch die Auswahl genauerer GCPs weiter verbessert werden (die größte Schwierigkeit ist das Fehlen von Häkchen oder eines Rasters). Es scheint jedoch, dass die Karte einige Artefakte enthält, insbesondere in Mittel- und Nordeuropa. Betrachten Sie zum Beispiel Deutschland, das in Bezug auf Italien oder die relative Position der Kolguyev-Insel (die recht gut passt) und der russischen Küste (die überhaupt nicht passt) zusammengebrochen zu sein scheint.
Das gleiche Ergebnis wie in
WGS84
(EPSG:4326
):quelle
Es gibt eine starke Verzerrung im Osten ("aufwärts"): Ich vermute, es handelt sich um einen Albers-konformen Kegel. Dann scheint der vertikale Meridian bei 40 ° (-> Ihr Mittelmeridian) und der horizontale Parallele wahrscheinlich bei 40 ° N zu liegen. Sie sollten dann Ihre XY-Koordinate von der Achse am Schnittpunkt von Meridian 40 und Parallele 40 messen und dann versuchen ...
Hinweis: Die Parallelen sind nicht parallel, daher können Sie zylindrische (Mercator) und pseudozylinderförmige Projektionen (sinusförmig, Eckert) ausschließen.
quelle