DE:JOSM/Plugins/PicLayer
Mit PicLayer können Rasterbilder geladen und ausgerichtet werden, um sie zum Kartografieren zu verwenden. Dies können Luftbilder oder auch eingescannte Karten sein.
Ein GIF zur Nutzung des PicLayers: Piclayer_usage.gif
Übersicht
- Unterstützte Datenformate: PNG, JPEG, GIF
- Einfache Bildkalibrierung durch Verschieben/Rotieren/Skalieren des Bildes per Mauszeiger
- Laden und Speichern der Bildkalibrierungsdatei, eine separate Datei mit
.cal
-Endung
Limitationen
- Keine Unterstützung von (Geo)TIFF
- Keine Geo-Referenzierung mittels Referenzpunkten oder Koordinaten (Positionierung lediglich über die Maus)
.cal
Dateien sind projektionsspezifisch (spezifisch zur aktuell gewählten JOSM Projektion. Wird die JOSM Projektion geändert, so muss die.cal
Datei neu gespeichert werden, um sie korrekt laden zu können.)- Kein vollwertiges Orthorektifizierungssystem (der Prozess der Entfernung von Effekten der Bildperspektive (Neigung) und des Reliefs (Gelände) zum Zwecke der Erstellung eines planimetrisch korrekten Bildes)[1].
Grundlegende Arbeitsablauf
- OSM-Daten laden: Zunächst müssen die OSM-Daten für das interessierende Gebiet heruntergeladen werden.
- Bild laden: In diesem Schritt wird das Bild geladen.
- Bild kalibrieren: Wenn Kalibrierungsdaten bereits vorliegen, können diese geladen werden. Damit ist das Bild in die OSM-Daten eingepasst. Wenn sie nicht vorliegen, dann jetzt das Bild an die OSM-Daten anpassen.
- Kalibrierungsdaten speichern: Wenn Du das Bild selbst kalibriert hast, dann die Kalibrierungsdaten jetzt abspeichern.
- Bild nutzen: Jetzt kann das Bild zum Kartografieren der OSM-Daten verwendet werden.
Voraussetzungen
PicLayer ist ein Plugin zu JOSM. JOSM und eine dazu passende Java-Engine muss installiert sein. Luftaufnahmen können nur dann sinnvoll verwendet werden, wenn sie exakt senkrecht aufgenommen sind. Eine perspektivische Entzerrung von Schrägaufnahmen ist nicht möglich.
Installation
JOSM starten. Im Menü Bearbeiten
→ Einstellungen
anklicken. Auf der Seite Einstellungen die Karteikarte für Plugins
/Erweiterungen
aktivieren. Es werden dann alle verfügbaren Plugins angezeigt. Im Kästchen das Häckchen für PicLayer setzen.
Beim nächsten Start von JOSM wird das Plugin mitgeladen.
Bedienung
- Zunächst müssen die OSM-Daten für das interessierende Gebiet heruntergeladen werden. Siehe dazu: mit JOSM Daten vom OSM-Server laden
- Über den Menüpunkt
Imagery
kann das Bild von der Festplatte oder aus der Zwischenablage geladen werden. - Nach dem Laden wird das Bild in JOSM in voller Größe angezeigt und im Ebenenmenü rechts ist eine neue Zeile für das Bild eingefügt. Es muss die entsprechende Ebene aktiviert werden. Sind bereits Kalibrierungsdaten vorhanden, wird diese automatisch geladen
- Danach kann das Bild über das Piclayer-Menü (links) verschoben, rotiert oder skaliert werden.
Bild ausrichten
Das eingelesene Bild muss so ausgerichtet und vergrößert werden, dass es in die OSM-Kartendaten passt. Für diesen Einpassvorgang bietet PicLayer drei verschiedene Verfahren. Alle drei Kalibrierverfahren können zum gleichen Ergebnis führen.
Manuelles Kalibrieren
Um Piclayer zu aktivieren, muss die Bildebende aktiviert werden. Anschließend sind die Befehlsknöpfe für den Piclayer in der Bearbeitungsleiste auf der linken Seite nutzbar.
Man kann
- das Bild verschieben
- drehen
- vergrößern und verkleinern
- die Breite verändern
- die Höhe verändern
Dazu den entsprechende Befehlsknopf anklicken und dann bei gedrückter linker Maustase die Maus bewegen.
Das exakte Positonieren des Bildes mit diesem Verfahren ist etwas mühselig. Luftbilder müssen exakt senkrecht aufgenommen sein. Die perspektivische Entzerrung bei Schrägaufnahmen kann PicLayer nicht leisten.
Kalibrieren mit Markierpunkten
Zunächst setzt man mit dem "Grüner Pfeil"-Werkzeug aus der Bearbeitungsleiste auf dem auszurichtenden Bild drei Markierpunkte an hervorstechenden Positionen, die auch in den vorhandenen Kartendaten ersichtlich sind. Danach wählt man das "Roter Pfeil"-Werkzeug aus, stellt gegebenenfalls die Transparenz der Ebenen passend um und zieht die drei Markierpunkte an die entsprechenden Positionen in den Kartendaten. Dabei wird das Bild automatisch passend gedreht, geschert und skaliert. Die Markierpunkte sollten möglichst weit voneinander gesetzt werden. Die folgende Animation erklärt dieses Vorgehen: Animation
Automatisches Kalibrieren
Die automatische Kalibrierungsfunktion bietet die Möglichkeit, Bilder (vorzugsweise Gebäudepläne) auf der Weltkarte zu positionieren und zu kalibrieren.
Was ist der Unterschied zum Ausrichten mit Buttons?
- es ist schneller
- eine höhere Genauigkeit ist gewährleistet
- durch Informationen über Seitenlängen des Gebäudes kann ein Verzerren des Bildes während dem Kalibrieren ausgeschlossen werden. Oft sind gegebene Außengrundrisse fehlerbehaftet, diese Fehler sollen beim Kalibrieren nicht übernommen werden.
Wie kalibriert die Funktion das Bild?
Diese Funktion legt nicht einfach nur die definierten Markierpunkte auf die angegebenen Referenzpunkte !
Nachdem alle nötigen Informationen zusammen getragen wurden, wird der Referenzpunkt 1 als Anker genutzt. Das bedeutet der erste Markierpunkt wird auf den ersten Referenzpunkt gelegt. Anschließend folgt die Berechnung einer Koordinate auf der Linie zwischen Referenzpunkt 1 und Referenzpunkt 2 mit einem vorher angegebenen Abstand. Hier wird der zweite Markierpunkt platziert. Die Linie zwischen den Referenzpunkten 1/2 ist somit der Anker der Platzierung. Der letzte Referenzpunkt wird über die angegebene Distanz und mittels Offset zwischen Markier- und Referenzpunkten ermittelt.
Voraussetzungen zur Nutzung
Benötigt wird
- ein Bild (vorzugsweise Gebäudeplan)
- Informationen über Seitenlängen des Gebäudes
Wie funktioniert das?
- öffne das Bild und aktiviere den Bild-Layer, sodass auf der linken Seite die PicLayer Buttons erscheinen
- wechsele in den "Kalibrierautomatik"-Modus
- fülle die benötigten Informationsfelder aus
- Markierpunkte auswählen
- Distanzen einfügen - wird ein Textfeld ausgewählt, so erscheint auf der Karte eine grüne Linie, welche den benötigten Abstand visualisiert. Der Abstand ist in Metern anzugeben
- wähle die Referenzdatei - öffne eine .osm oder .gpx Datei mit Koordinaten des Gebäudeumrisses als Referenz oder aktiviere einen Layer mit OSM Daten
- Referenzpunkte auswählen
- Modus auswählen - sind die benötigten Referenzpunkte schon im Layer als Punkt hinterlegt, kann der defined / definiert-Modus ausgewählt werden (nur .osm Dateien). Besteht der Layer ggf. aus ungenauen Rohdaten oder sollen die Referenzpunkte beliebig auf den Layer gelegt werden, wähle manual / manuell - Modus
- Wähle die Punkte als Referenzpunkte, welche schon in 3.1 als Markierpunkte gesetzt wurden, diesmal nur auf dem Referenzlayer
- Ausführen
GIF zur Nutzung des Automatismus: Piclayer_auto_calibration.gif
Resultat
Das Bild ist richtig kalibriert, wenn die Position mit den Koordinaten der Referenzpunkte übereinstimmt und die Seitenlängen, d.h. die Abstände zwischen Referenzpunkt 1/2, sowie Referenzpunkt 2/3 mit den anfangs Angegebenen übereinstimmen.
Hierbei wird der Referenzpunkt 1 als Anker genutzt (siehe Wie kalibriert die Funktion das Bild?).
Warum werden die Distanzen zum Kalibrieren eines Bildes benötigt?
Mit dem Wissen der Abstände kann sichergestellt werden, dass das Bild nach dem Kalibrieren nicht verzerrt wurde. Setzt man lediglich die Markierpunkte auf die Referenzpunkte werden Ungenauigkeiten der Referenz übernommen. Ungenauigkeiten können z.B. durch Verzerrungen in Luftaufnahmen zu Stande kommen. Zudem bietet eine genaue Kalibrierung die Möglichkeit anschließend eine Korrektur an der Referenz vorzunehmen.
Fehlermeldung
Weicht die Dimension des kalibrierten Bildes übermäßig von den angegebenen Distanzen ab, so wird das Bild zurückgesetzt und eine Fehlermeldung tritt auf.
Speichern der Kalibrierung
Wenn das Bild fertig ausgerichtet ist, dann rechts im Ebenenmenü die Bild-Zeile mit der rechten Maustaste anklicken. Dann öffnet sich dieses Menü:
Damit die Kalibrierungsdaten an einer geeigneten Stelle auf der Festplatte ablegen.
Die Kalibrierung kann als .cal-Datei in einem JOSM-spezifischen Format gespeichert oder als ESRI Worldfile exportiert werden.
Anhang
Neues .cal-Dateiformat
Das folgende Beispiel nutzt die UTM35 (oder auch EPSG:32635) Projektion: POSITION_X=28.8652921°E POSITION_Y=60.4985131°N und Bildauflösung~=0.5 m/pix
#JOSM PicLayer plugin calibration data #Sun Nov 27 22:21:58 CET 2011 POSITION_Y=6708383.375731533 POSITION_X=602463.1049788792 INITIAL_SCALE=673.3630407396365 M12=-714.691403694874 M11=0.508636037014039 M10=6.263463862108147E-5 M02=43.42632371753174 M01=-2.1720970442278513E-4 M00=0.5060984647587284
- POSITION_X und POSITION_Y: Position der Bildmitte in Welt-Einheiten (Projektions-Spezifisch) — gleich dem alten
.cal
Format - INITIAL_SCALE: Gleich 100 Pixeln in Welt-Einheiten
- M00, M01, M02 and M10, M11, M12: affine transform coefficients
Mathematischer Hintergrund:
(PX,PY)=POSITION_X/Y, S=INITIAL_SCALE, (x,y)=Pixel Position relativ zum Bildmittelpunkt. (x',y')= Projizierte Koordianten. IGN=ignore.
INITIAL_SCALE und POSITION_X, POSITION_Y sind im Grunde überflüssig, da M sie beinhaltet.
Siehe auch http://en.wikipedia.org/wiki/File:2D_affine_transformation_matrix.svg.
Beachte:
- Die in der
.cal
-Datei gespeicherte Projektion ist spezifisch ist. Sie hängt von der aktuell ausgewählten Projektion im JOSM ab (zu finden unterBearbeiten
→Einstellungen
→Projektion
)
Altes .cal Dateiformat
Beispiel:
#JOSM PicLayer plugin calibration data #Mon Nov 15 19:38:35 CET 2010 SCALEX=1.0 SCALEY=1.0 SHEARX=0.0 SHEARY=0.0 INITIAL_SCALE=190.92609423045016 POSITION_Y=292616.03696207993 POSITION_X=490266.6137017577 INITIAL_POS_y=293088.4061731008 INITIAL_POS_X=490909.1888228225 ANGLE=58.77
- INITIAL_SCALE: Welt-Meter / 100 Pixel zum Zeitpunkt des Ladens
- SCALE_X/Y: Zusätzliches Skalieren durch den Nutzer
- SHEAR_X/Y:
- INITIAL_POS_X/Y:
- POSITION_X/Y: Position der Bildmitte in Welteinheiten
- ANGLE: 0 steht für keine Rotation
Skalieren: Die Größe des Bildes in Welt-Metern ist Bildgröße / 100 * INITIAL_SCALE * SCALE_X/Y
Beachte:
- Die in der
.cal
-Datei gespeicherte Projektion ist spezifisch ist. Sie hängt von der aktuell ausgewählten Projektion im JOSM ab (zu finden unterBearbeiten
→Einstellungen
→Projektion
) - JOSM stürzt eventuell bei alten
.cal
-Dateien ab (siehe ticket 6123)
Tipp
- Mit dem Filtermenu von JOSM können beim Ausrichten störende Objekte wie Zäune, Grenzen usw. ausgeblendet werden.
- Sehr alte gespeicherte
.cal
-Dateien sind mit Piclayer nicht einlesbar, sie lassen sich allerdings eventuell nach Eintrag zweier zusätzlichen Zeilen in die cal-Datei laden:
SHEARX=0.0 SHEARY=0.0
Die Proportionen der Grafikdateien stimmen dann zwar, aber die Position ist falsch - u.U. muss in JOSM sehr weit herausgezoomt werden, um die Grafik an ihren Platz verschieben zu können. (siehe auch josm ticket)
- Hintergrund: Bei der Berechnung von EPSG:3857 hat JOSM bis Februar 2011 eine falsche Einheit benutzt (Radiantwert statt Meter). Das wurde mit r3922 bereinigt. Allerdings passen dadurch die alten gespeicherten cal-Dateien nicht mehr. Die cal-Dateien auf luftbilder.openstreetmap.de wurden inzwischen migriert. Nach Download der cal-Dateien funktionieren sie mit dem aktuellen JOSM.
Wer die eigenen cal-Dateien migrieren möchte, hier ist ein perl-Skript (danke an Gary68): mult.pl
Es wird ein perl-Interpreter benötigt. Aufruf: perl mult.pl <dateiname>
Ein komplettes Verzeichnis kann unter Unix mit diesem Skript bearbeitet werden: calneu und alternativ: mult.pl.zip