[Tutorial] Georeferenzieren mit QGIS

by Paul Balzer on 8. Mai 2018

1 Comment

Zur Abwechslung mal ein Beitrag aus dem Themengebiet der Kartografie. Motorblog mit einem Beitrag zur Kartografie, wie kommt das denn? Ganz einfach: Vor meinem Fahrzeugtechnik-Studium habe ich mal Vermessungstechniker gelernt und nun ist die Zeit, wo sich das Wissen beider Fachrichtungen kombinieren lässt. Fahrzeuge benötigen heutzutage hochgenaue Karten und ein in sich relatives Koordinatensystem zur Ego-Positionsbestimmung. Fährt man auf Testgeländen oder neuen Strecken, hat man i.d.R. keine hochgenauen Karten.

Man muss sie selbst erstellen. Wie kann man das machen? Die einfachste Möglichkeit ist, dass man ein Luftbild, z.B. von einer Drohne georeferenziert und dann alle relevanten Punkte aus dem Foto entnehmen kann. Man setzt also das Foto in einen geografischen Kontext (georeferenzieren) und kann dann vom Foto korrekte Geokoordinaten abnehmen.  Zum Beispiel die Koordinaten von Gebäude-Ecken oder Lichtsignalanlagen oder Schildern oder Straßenmarkierungen oder oder oder.

Hier ein Beitrag, wie man ein Luftbild (z.B. von einer Drohne) mit QGIS georeferenziert.

Perspektivische Verzerrungen und Kamerafehler korrigieren

Jede Kamera lässt sich mathematisch ziemlich gut mit dem Pinhole Kamera Model abbilden, sodass es extrinische und intrinsische Fehler gibt, welche bestimmt werden müssten, um einem Bildpunkt eine Koordinate zuordnen zu können. Wenn man diesen Aufwand betreibt, hat man eine gute Ausgangsbasis. Dies ist jedoch aufwendig. Für die intrinsische Kamerakalibrierung kann man die typischen Schachbrettmuster nutzen und z.B. OpenCV bemühen. Die extrinische Kamerakalibrierung ist noch komplizierter, denn man weiß nicht, wo die Drohne exakt war und wohin sie geschaut hat. Fast unmöglich es so geschlossen mathematisch zu lösen.

Eine recht praktikable Lösung ist, dass man sich Referenzpunkte im Bild sucht, dessen Koordinaten man kennt. Woher kann man diese Koordinaten bekommen? Entweder man hat bereits eingemessene Infrastruktur auf die man sich beziehen kann, man hat Festpunkte im Bild oder man ermittelt sich selbst welche.

Die Koordinaten dieser Punkte können aus Absteckungen kommen, von D-GPS Messungen oder durch Digitalisierung aus Karten von den Vermessungsämtern. Letztere Variante möchte ich nutzen. Ohne die Vermesser geht jedenfalls nichts an dieser Stelle, denn irgendeinen korrekten Raumbezug benötigen wir.

Wenn das Luftbild nur ‘optisch’ zu einer bestehenden Karten (z.B. OSM, Bing, Google Earth o.ä.) passen soll, können auch diese als Referenz herhalten. Korrekt sind die Daten dann jedenfalls nicht unbedingt.

Welches Tool zum Georeferenzieren? QGIS!

Das Tool der Wahl ist QGIS, aktuell in Version 3 kostenlos zum Download.

Es gibt hier und da ein paar Installationsprobleme mit Python und GDAL und da muss man etwas Google bemühen, doch irgendwann läuft es.

Referenzpunkte zur korrekten Abbildung

Koordinatenbezugssysteme und Abbildungen

Da die Erde eine Scheibe ist, haben wir nichts zu beachten. Ah, falsches Forum. Weiter im Text.

Man muss verstehen, dass die Erde ein Geoid ist, d.h. aussieht wie eine Kartoffel. Eine Karte ist aber eine 2D-Abbildung, wir schauen sie ja auf unserem Bildschirm an oder drucken sie aus und legen sie auf den Tisch. Das bedeutet man braucht mathematischen Zauber um dieses Kartoffel-Gebilde irgendwie mathematisch zu beschreiben. Das geht nicht überall gleich gut und nicht überall korrekt. Je nach Beschreibungsmodell macht man Längenfehler, Winkelfehler, Flächenfehler oder alles gemeinsam, dafür sieht es aber schön aus. Und das sollen Karten ja auch! Man muss also sehen, dass man für den jeweiligen Anwendungsfall eine geeignete mathematische Beschreibung (Referenzellipsoid) und Projektion (Abbildungsvorschrift) nutzt.

WGS84 Referenzellipsoid und EPSG:4326 für GPS

Für das weltweite GPS ist beispielsweise das WGS84 nach EPSG:4326 der Standard. Es gibt die Position auf der Welt mit 2 Winkeln zum Äquator bzw. zum Nullmeridian durch Greenwich an. Fertig ist man.

Super einfach aber für viele Anwendungsfälle nicht sehr geeignet.

UTM Referenzsystem mit kartesischen Koordinaten

Möchte man auf der Erdoberfläche aber eine eingeebnete Abbildung der Realität, eine Karte also, haben, muss man diese Winkel irgendwie umrechnen. Um dann Koordinaten in metrischen Einheiten (d.h. Entfernungen in Meter) zu erhalten und weil es sonst noch viele Vorteile hat, hat sich das UTM Referenzsystem durchgesetzt, zumindest hier in Deutschland. Wir in Ostsachsen sind beispielsweise im Streifen 33 Nord, sodass sich die EPSG:32633 ergibt. In nachfolgender Abbildung sind beide zu sehen:

GPS Koordinaten (orange) und kartesische Koordinaten (grün) | Eigene Abbildung, basierend auf Wikimedia Commons by “Mike1024” (Public Domain)

Die Umrechnung übernimmt QGIS für uns, wir müssen nur aufpassen, dass wir immer im richtigen Koordinatenbezugssystem (KBS) agieren.

Referenzpunkte vom Landesvermessungsamt

Die Referenzpunkte zum korrekten Einpassen des Fotos in die örtlichen Gegebenheiten (Überlagern) können wir in Sachsen vom Geoportal des Landesvermessungsamtes exportieren (nach Registrierung). Andere Landesvermessungsämter haben sicherlich ähnliche Dienste.

Wie gesagt, zur Not kann man auch Punkte von Openstreetmaps oder anderen bestehenden Karten nutzen, doch diese sind i.d.R. nicht geografisch korrekt, d.h. sie passen dann von den Koordinaten nicht zu den örtlichen Gegebenheiten. Beispielhaft wird in Luftbildern (z.B. Google Earth) mehr Wert darauf gelegt, dass von einer zur nächsten Kachel Straßen oder Schienen oder Gebäude ohne ‘Knick’ verlaufen. Die Bilder werden so verzerrt, dass sie zusammen passen, doch die Koordinaten von Objekten auf den Kacheln sind nicht mehr korrekt.

QGIS Transformation zur Georeferenzierung

Die zentrale Erweiterung für die Aufgabe ist das GDAL Georeferenzierer Plugin, welches nach Laden des Fotos so aussieht:

Dabei ist beim Laden des Fotos auszuwählen, in welches Koordinatenbezugssystem das Bild eingepasst werden soll. Es ist zu empfehlen das gleiche zu wählen, in welchem das Projekt ist und in welchem man die Passpunkte vorliegen hat. Hier hat man nun folgende Optionen zur Georeferenzierung.

Welcher Transformationstyp in QGIS zur Georeferenzierung?

Die Transformationstypen in QGIS sind folgende:

  • Linear – wird zur Erstellung einer Weltdatei verwendet und unterscheidet sich von den anderen Algorithmen, da er das Foto nicht wirklich transformiert, ist höchst wahrscheinlich nicht ausreichend für deinen Anwendungsfall
  • Helmert – führt einfache Skalierungs- und Rotationstransformationen durch, übernimmt sozusagen die extrinsische Positionierung des Fotos, das Foto muss also entzerrt sein
  • Polynomial 1 – diese affine Transformation bewahrt die Kolliniarität und erlaubt “nur” Skalierung, Translation und Rotation
  • Polynomial 2 – Polynomtransformation zweiter Ordnung ermöglicht Skalierung, Translation, Rotation und einige Krümmungen (Standard-Verfahren)
  • Polynomial 3 – Polynomtransformation dritter Ordnung ermöglicht Skalierung, Translation, Rotation und höherdimensionale Krümmungen
  • Thin Plate Spline – ist eine modernere Methode der Georeferenzierung, die in der Lage ist, lokale Verformungen in die Daten einzubringen. Das ist insbesondere nützlich, wenn Originale mit sehr geringer Qualität georeferenziert werden
  • Projektiv – ist eine lineare Rotation und Verschiebung von Koordinaten

Hierbei ist zu sagen, dass es darum geht mathematische Optimierungen bzw. Umrechnungen zu ‘lösen’. Umso höher man den Freiheitsgrad wählt, desto mehr Referenzpunkte benötigt man auch. Dabei ist davon auszugehen, dass man Fehler macht. Das lässt sich nicht vermeiden. Diese Fehler müssen verteilt/minimiert/ausgeglichen werden (so genannte Least-Square Fehlerminimierung). Die Fehler werden im Georeferenzierungs-Tool mit kleinen roten Linien visualisiert und auch in der Tabelle unter dem Bild angezeigt. Je nach Transformationstyp sind diese länger oder kürzer. Je nach Transformationstyp sind mindestens 3 Passpunkte notwendig, um die mathematischen Beziehungen lösen zu können. Mehr Punkte ist oftmals besser. Die Passpunkte sollten auch relativ gleichverteilt über das gesamte Bild liegen, idealer Weise ringsum den Bereich, den man korrekt eingepasst haben möchte.

Ein weiterer großer Unterschied ist auch, dass die Methoden Polynomial 2. und 3. Grades sowie Thin Plate Spline das ‘Verzerren’ des Bildes als Freiheitsgrad ermöglichen. Wenn man schief eingescannte oder abfotografierte Daten einpassen möchte und im Bild ‘Verzerrung’ hat, sollte man das ermöglichen. Ist das Foto an sich relativ gleichmäßig, sollte man diesen Freiheitsgrad nicht zulassen, um den Fehler nicht mit Verzerren des Fotos auszugleichen statt mit Fehlerausgleich der Digitalisierungsfehlern beim Klicken.

Welche Abtastmethode in QGIS zur Georeferenzierung?

Welche Art von Resampling man wählt, hängt von den Eingabedaten und dem gewünschten Resultat ab. Wenn man die Statistik des Bildes nicht ändern möchten, wählen man ‘Nearest Neighboor’, während ein ‘Cubic Resampling’ wahrscheinlich ein geglättetes Ergebnis liefert. Dies ist abhängig von den Eingangsdaten und kann nicht pauschal gesagt werden.

Noch ein paar Erläuterungen in nachfolgendem Video.

Georeferenziertes Bild zum Messen von Koordinaten, Längen oder Flächen

Hat man dies nun alles erledigt und das Bild ist eingepasst, kann man zum eigentlichen Teil der Übung kommen: Der Anwendung.

Das eingepasste Bild ermöglicht jetzt, dass man im Koordinatensystem seiner Wahl (in QGIS einstellen, es übernimmt die Transformation) nun die gewünschte Topografie digitalisieren, d.h. die Koordinaten von Dingen bestimmen, die im Bild zu sehen sind. Der Export kann von QGIS aus in .kml oder .shp erfolgen und steht dann für die eigenen Anwendungen zur Verfügung.

Weiterhin können Flächen oder Längen bestimmt werden. Soll dies in Meter erfolgen, ist ein passendes kartesisches Referenzsystem (z.B. UTM in korrekter Zone) in QGIS als KBS auszuwählen.

Abstand zwischen zwei Bepflanzungen, ermittelt aus Luftbild

Zusammenfassung

Viele Anwendungen mit Raumbezug benötigen ‘exaktes’ Kartenmaterial. Hierbei kann man richtige Karten von den Vermessungsämtern kaufen, diese stehen aber meist nicht so aktuell zur Verfügung. Die andere Möglichkeit ist Google Earth o.ä. Karten zu nutzen, doch die Daten sind teilweise Fehlerhaft oder ebenfalls nicht aktuell. Eine komfortable Möglichkeit ist ein Luftbild mit einer Drohne aufzunehmen und dies in korrekten geografischen Kontext zu setzen.

Mit etwas Übung ist man in 10min fertig und kann dann eine schöne, korrekte und georeferenzierte Karte erstellen, welche als Grundlage für eine Vielzahl an Anwendungen zur Verfügung steht.

Hier nochmal das gesamte Tutorial:

One Comment

  1. Danke für dieses sehr aufschlussreiche Tutorial. Ich bin kompletter Anfänger und versuche gerade die Streckenführung von der https://de.m.wikipedia.org/wiki/39._Internationale_Sechstagefahrt
    in eine für heute jedermann nachvollziehbare Form zu bringen. Mir stehen dazu die originalen Karten als jpg zu Verfügung. Leider sind diese Karten in manchen Teilen sehr ungenau, in dem Sinne das die Karten an vielen Stellen verzerrt oder gar falsch ist ( Spionageabwehr vielleicht 1964). Jetzt überlege ich, ob mich hier rein fuchse oder es einen Profi machen lasse? Passpunkte hätte ich genug, ist meine Heimat.
    Grüße Mark

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert