Georeferenzierung von Karten

Hallo,
ich starte dafür mal einen neuen Faden. (ausgegliedert von: http://forum.openstreetmap.org/viewtopic.php?id=15163 )

Ausgangsmaterial ist eine Karte mit Gradraster. Diese würde ich gerne anhand des Rasters referenzieren und dann in josm als Hintergrund verwenden. Letzterer Punkt ist kein Problem. Nur wie bekomme ich aus dem jpg ein geotif in Merkartor-Projektion?

Bisher hab ich mit QGis 1.7.3 ein wenig rumprobiert. Aber ohne richtige Ahnung von der Materie der ganzen Projektionen scheint mir das aussichtslos. Das Plugin für Georeferenzierungen hab ich gefunden und dort auch das Bild geöffnet. Hier werde ich nach einer Projektion gefragt; welche muss ich da angeben?

Anschließend setze ich auf einige der Gitterkreuzungspunkte Referenzpunkte und soll dazu x und y Werte angeben. Bisher hab ich es hier mit den Angaben der Karte gemacht. Bspw. für W70 S50 x=-70 und y=-50

Anschließend soll ich noch ein paar Einstellungen machen. Unter anderem auch eine Projektion angeben. Hier hab ich dann Merkartor (wie in josm) ausgewählt und dann den Prozess gestartet. Das resultierende tif ist zwar verzerrt, allerdings landet es nicht da, wo es landen sollte.

muss es unbedingt ein GeoTiff sein? Ein jpg kann auch mit einem Worldfile (*.jgw) referenziert werden. Da das bei mir mit JOSM nie direkt geklappt hat, bin ich immer den Umweg über Mapserver gegangen. Da war es egal ob GeoTiff oder JPG mit worldfile

Ähm…ne…geotif muss nicht sein. Wie ist mir im Prinzip egal. Bei meinem planlosen rumprobiere kam am Ende nur ein tif raus.

Die Projektion findet man auf der Karte selbst,
es ist eine LCC (2SP) :wink:

vieleicht hilft das ja weiter:

http://wiki.openstreetmap.org/wiki/DE:Qgis
http://www.merkartor.de/tipps_wissen/tipps_wissen.php
http://download.osgeo.org/qgis/doc/manual/qgis-0.9.1_user_guide_de.pdf

ich benutze als projektion:
EPSG:4326

grüße von lutz

So, nachdem mir bei meinen debian squeeze bei der Georeferenzierung immer das qgis 1.4 absemmelt ist hab’ ich mir jetzt ein
1.9.90 geholt, jawohl :wink:
Die Georefernzierung stürzt nicht mehr ab, aber leider ist das Teil ja immer noch gegen die libgdal1.6 verlinkt.

Auch mit lokalem 1.8.1 gdal sowie
gdal_translate a.png a.tif -a_srs “+proj=lcc +lon_0=-76.083 +lat_0=-48.467 +lat_1=49.333 +lat_2=54.666”
gdalwarp -t_srs “+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs” a.tif b.tif
sowie World-File
850
0
0
-850
0
0
für das a.png (nur die Karte selbst, ohne Legende links/unten) ergibt sich immer noch kein entzerrtes Bild.

Schade, schade, schade.

Moin moin,

Bitte überprüfe einmal den Parameter lat_0. Der definiert, welcher Punkt der Erdkugel auf den “Ursprung” der Karte abgebildet wird.
Bei den an sich plausiblen Schnittbreiten von 49° und 54° wäre die Abbildung bei -48° grotesk verzerrt, darum glaube ich den Wert nicht.
Möglicherweise einfach ein Vorzeichenfehler?

Gruß Wolf

Vielen Dank fürs Mitdenken.

Jetzt hab’ ich schon ein paar Kombinationen hinter mir, “lat_0=-48”, “lat_0=+49”, “+lat_1=-49.333 +lat_2=-54” (da ja vom Südpol kommend), mit und ohne “-a_ullr -77.0 -48.0 -55.0 -55.0”;
hat aber alles noch nicht so richtig gefruchtet.

Denke, wir brauchen hier einen Spezl der Lambertschen konisch-konformen Projektion
unter besonderer Berücksichtigung der südlichen Hemnisphäre sowie gdal :wink:

Nun, was erwartest du? In “unserer” Mercatorprojektion sind die Meridiane immer senkrecht, bei der Kartenvorlage dagegen ziemlich gebogen. Wenn du das auf Mercator zurechtbiegen willst, bekommst du ein derart verzerrtes Bild, dass du dann erst recht nichts mehr lesen kannst.

Bei kleinen Ausschnitten der Welt mag der Effekt vernachlässigbar sein, bei Karten der halben Welt aber nicht.

Sinn macht eine Georeferenzierung nur, wenn man das KBS (oder wenigstens die Projektion) beibehält. Dann ist Georeferenzierung im Prinzip eine Verschiebung und Skalierung. Eine Verdrehung ist zwar im Worldfile vorgesehen, wird aber meist nicht gesetzt bzw ausgewertet.

Eine Umprojektion macht nur bei Vektordaten wirklich Sinn, weil es dabei keine verzerrte Beschriftung gibt.
Da die OSM-Rohdaten Vektordaten sind, sollte man also die passende Lambert-CC Projektion in Quantum GIS einstellen, die Karte georeferenzieren, und die OSM-Daten als Vektor drüberlegen, bzw ein neues Shapefile erstellen, das wiederum WGS84 sein kann.

JOSM unterstützt nur einige wenige Projektionen. Ob davon eine “passt”, weiß ich nicht.

Gruß,
ajoessen

Die Beschriftungen sind das kleinste Problem, die kann ich problemlos von der alten Karte (die ich ja nicht wegzuwerfen brauche :wink: ablesen.
Es geht um das Abmalen der Geländekonturen.

Vermute stark, dass die LCC negative Werte hat, also “+proj=lcc +lat_1=-49.333 +lat_2=-54.666”
Werde jene mir heut’ abend mal im qgis-1.9 anschauen.

Und da soll die Karte mit Luftbildern ernsthaft konkurrieren können?

gruß,
ajeossen

Die Luftbilder hab ich mir von der Gegend noch gar nicht angeschaut, ist eine kommerz.
eher weniger imteressante Gegend :wink:

Die Karte hat Massstab 1 : 1000000 , auf cm wird’s daher eh nicht genau :slight_smile:

Moins,

Wir sind an Projektionen gewöhnt, die die Breite ausschließlich auf die Karten Y-Achse und die Länge ausschließlich auf die Karten-X-Achse abbilden. Das heißt aber nicht, dass andere Projektionen komplizierter sind.

Bei der konischen Projektion wird die Länge auf einen Winkel und die Breite auf eine Entfernung abgebildet. Das ergibt eine Koordinate in Polardarstellung. Die wird in kartesische Koordinaten umgerechnet, und das wars auch schon.

Der zusätzliche Schritt polar ↔ kartesisch ist sowohl vorwärts als auch rückwärts trivial zu rechnen.

Durch diesen Ablauf werden bei der konischen Projektion Meridiane auf exakt gerade Linien und Breitenkreise auf exakte Kreisbogen abgebildet. Nur verlaufen die Meridiane nicht mehr parallel.

Bei allen Projektionen gibt es noch die nichtlineare Transformation einer Entfernung, mit der man die gewünschten Eigenschaften der Projektion erreicht: Konformität, Flächentreue, Richtungstreue, Erhalt von Großkreisen, Entfernungstreue, you name it. Diese Transformation macht den eigentlichen Aufwand.

Sie ist bei konform konisch zwar anders, aber nicht aufwendiger als bei Merkator: bei beiden gibt es (anders als bei UTM z.B.) eine geschlossene Darstellung ohne Näherungsformeln oder Iteration.

Alle konformen Projektion erzeugen in kleinen Bereichen ähnliche Abbildungen, die sich nur durch Skalierung und Drehung unterscheiden können. Eben dazu hat Herr Gauß das Konzept der Konformität entwickelt.

Bei großen Bereichen unterscheiden sich die Projektionen natürlich sehr – sie wurden ja für unterschiedliche Anwendungen und unterschiedliche Regionen der Erde entwickelt. Das heißt aber nicht, dass sie schwer ineinander zu überführen sind.

Wandle ich eine Karte in konischer Projektion per Bildtransformation in eine Karte in rechtwinkliger Projektion (z.B. Merkator), werden die Meridiane “aufgerichtet”, und dabei die Beschriftung maximal um soviel gedreht, wie die Meridiane vorher “schief” standen. Das mag irritierend sein (ich möchte das gerne mal sehen), erschwert aber wahrscheinlich das “Malen nach Zahlen” nicht wirklich.

Oder man transformiert die Kartengrafik in eine Kartengrafik anderer Projektion - was in dem hier angesprochenen Fall trivial ist – und malt dann in JOSM ab, so wie man das seit Jahrzehnten gewöhnt ist.

Willkommen im Club :slight_smile:

Die Linien konstanter Breite bilden Kreisbögen. Wenn der (gedachte, liegt immer außerhalb der Karte) Mittelpunkt der Kreise im Süden liegt, steht der Kegel auf dem Kopf, und dann müssen die Schnittbreiten (lat1/lat2) negativ sein (genauer: der kleinere muss kleiner sein als der negative Betrag des größeren).

Und ganz wichtig ist, dass der Umrechner weiß, wo exakt auf der gescannten Karte (Y-Position) die Bezugsbreite (lat0) liegt, und um welchen Faktor die Karte vergrößert ist. Daraus wird nämlich der Mittelpunkt des Kreises (=Spitze des Kegels) berechnet, und sind diese Werte falsch, ist die gesamte Abbildung Schrott.

Gruß Wolf

Nach langem Kampf :wink:


$ cs2cs +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +to +proj=lcc +lon_0=-67 +lat_0=-52 +lat_1=-49d20 +lat_2=-54d40
-75.88 -47.48
-668952.66      461790.36 0.00
$ cat d.wld
185
0
0
-185
-668952.66
461790.36
$ gdal_translate map_ohne_legende.png d.tif -a_srs "+proj=lcc +lon_0=-67 +lat_0=-52 +lat_1=-49d20 +lat_2=-54d40"
$ gdalwarp d.tif e.tif -t_srs "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"
$ gdalinfo e.tif
Driver: GTiff/GeoTIFF
Files: e.tif
Size is 9191, 3810
Coordinate System is:
GEOGCS["WGS 84",
    DATUM["WGS_1984",
        SPHEROID["WGS 84",6378137,298.257223563,
            AUTHORITY["EPSG","7030"]],
        AUTHORITY["EPSG","6326"]],
    PRIMEM["Greenwich",0],
    UNIT["degree",0.0174532925199433],
    AUTHORITY["EPSG","4326"]]
Origin = (-77.800112860625660,-47.435764586455079)
Pixel Size = (0.002416744461471,-0.002416744461471)
Metadata:
  AREA_OR_POINT=Area
Image Structure Metadata:
  INTERLEAVE=PIXEL
Corner Coordinates:
Upper Left  ( -77.8001129, -47.4357646) ( 77d48' 0.41"W, 47d26' 8.75"S)
Lower Left  ( -77.8001129, -56.6435610) ( 77d48' 0.41"W, 56d38'36.82"S)
Upper Right ( -55.5878145, -47.4357646) ( 55d35'16.13"W, 47d26' 8.75"S)
Lower Right ( -55.5878145, -56.6435610) ( 55d35'16.13"W, 56d38'36.82"S)
Center      ( -66.6939637, -52.0396628) ( 66d41'38.27"W, 52d 2'22.79"S)
Band 1 Block=9191x1 Type=Byte, ColorInterp=Red
Band 2 Block=9191x1 Type=Byte, ColorInterp=Green
Band 3 Block=9191x1 Type=Byte, ColorInterp=Blue
$

100% stimmt’s nicht (die Pixelbreite ist evtl. nicht ganz richtig, der Offset auch nicht ganz),
aber die Marsch-Richtung passt :slight_smile: