PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datum-Problem mit .map-Dateien


gps-bernie
05.06.2017, 14:57
Hallo zusammen,

ich steh grad vor dem Problem, einen Satz Portugal-Rasterkarten in QMapShack einbinden zu wollen.

Diese liegen in .gif mit .map vor.

for file in *.map
(...)
gdal_translate -co COPY_SRC_OVERVIEWS=YES -co TILED=YES -co COMPRESS=LZW "$file" "${file%.*}".tif sollte diese in Geo-TIFFs wandeln, aber ich bekomme Fehlermeldungen:

ERROR 1: Failed to find datum Datum Lisboa (Portugal) in ozi_datum.csv.
Input file size is 5339, 3340
0...10...20...30...40...50...60...70...80...90...1 00 - done.
es entsteht zwar ein .tif, aber das ist nicht georeferenziert. Das sagt QMapShack:
0...10...20...30..Warning 6: gdalbuildvrt does not support ungeoreferenced image. Skipping ~/TopKarten/Portugal-25k/001.tifHier ein beispielhaftes .map
OziExplorer Map Data File Version 2.2
M888 - 001
\001.GIF
1 ,Map Code,
Datum Lisboa (Portugal),WGS 84, 0.0000, 0.0000,WGS 84
Reserved 1
Reserved 2
Magnetic Variation,,,W
Map Projection,Transverse Mercator,PolyCal,No,AutoCalOnly,No,BSBUseWPX,No
Point01,xy, 337, 336,in, deg, , ,N, , ,W, grid, , 185000, 579000,N
Point02,xy, 5002, 3001,in, deg, , ,N, , ,W, grid, , 199000, 571000,N
Point03,xy, 5002, 337,in, deg, , ,N, , ,W, grid, , 199000, 579000,N
Point04,xy, 336, 3003,in, deg, , ,N, , ,W, grid, , 185000, 571000,N
Point05,xy, 2003, 1004,in, deg, , ,N, , ,W, grid, , 190000, 577000,N
Point06,xy, 3669, 2338,in, deg, , ,N, , ,W, grid, , 195000, 573000,N
Point07,xy, 3669, 1003,in, deg, , ,N, , ,W, grid, , 195000, 577000,N
Point08,xy, 2002, 2337,in, deg, , ,N, , ,W, grid, , 190000, 573000,N
Point09,xy, 3004, 1669,in, deg, , ,N, , ,W, grid, , 193000, 575000,N
Point10,xy, , ,in, deg, , ,N, , ,W, grid, , , ,N
Point11,xy, , ,in, deg, , ,N, , ,W, grid, , , ,N
Point12,xy, , ,in, deg, , ,N, , ,W, grid, , , ,N
Point13,xy, , ,in, deg, , ,N, , ,W, grid, , , ,N
Point14,xy, , ,in, deg, , ,N, , ,W, grid, , , ,N
Point15,xy, , ,in, deg, , ,N, , ,W, grid, , , ,N
Point16,xy, , ,in, deg, , ,N, , ,W, grid, , , ,N
Point17,xy, , ,in, deg, , ,N, , ,W, grid, , , ,N
Point18,xy, , ,in, deg, , ,N, , ,W, grid, , , ,N
Point19,xy, , ,in, deg, , ,N, , ,W, grid, , , ,N
Point20,xy, , ,in, deg, , ,N, , ,W, grid, , , ,N
Point21,xy, , ,in, deg, , ,N, , ,W, grid, , , ,N
Point22,xy, , ,in, deg, , ,N, , ,W, grid, , , ,N
Point23,xy, , ,in, deg, , ,N, , ,W, grid, , , ,N
Point24,xy, , ,in, deg, , ,N, , ,W, grid, , , ,N
Point25,xy, , ,in, deg, , ,N, , ,W, grid, , , ,N
Point26,xy, , ,in, deg, , ,N, , ,W, grid, , , ,N
Point27,xy, , ,in, deg, , ,N, , ,W, grid, , , ,N
Point28,xy, , ,in, deg, , ,N, , ,W, grid, , , ,N
Point29,xy, , ,in, deg, , ,N, , ,W, grid, , , ,N
Point30,xy, , ,in, deg, , ,N, , ,W, grid, , , ,N
Projection Setup, 39.666666667, -8.131906667, 1.000000000, 200000.00, 300000.00,,,,,
Map Feature = MF ; Map Comment = MC These follow if they exist
Track File = TF These follow if they exist
Moving Map Parameters = MM? These follow if they exist
MM0,Yes
MMPNUM,4
MMPXY,1,0,0
MMPXY,2,5336,0
MMPXY,3,5336,3336
MMPXY,4,0,3336
MMPLL,1, -8.325720, 42.187861
MMPLL,2, -8.131900, 42.188012
MMPLL,3, -8.131873, 42.097892
MMPLL,4, -8.325418, 42.097741
MM1B,2.999459
LL Grid Setup
LLGRID,No,No Grid,Yes,255,16711680,0,Geen label,0,16777215,7,1,Yes,x
Other Grid Setup
GRGRID,Yes,1 Km,No,8388608,12632256,1 Km,8388608,16777215,8,1,Yes,No,Yes,x
MOP,Map Open Position,0,0
IWH,Map Image Width/Height,5339,3340gdal Info liefert:
gdalinfo 001.map
ERROR 1: Failed to find datum Datum Lisboa (Portugal) in ozi_datum.csv.
Driver: MAP/OziExplorer .MAP
Files: 001.map
001.GIF
Size is 5339, 3340
Coordinate System is `'
GCP Projection =
GCP[ 0]: Id=, Info=
(337,336) -> (185000,579000,0)
GCP[ 1]: Id=, Info=
(5002,3001) -> (199000,571000,0)
GCP[ 2]: Id=, Info=
(5002,337) -> (199000,579000,0)
GCP[ 3]: Id=, Info=
(336,3003) -> (185000,571000,0)
GCP[ 4]: Id=, Info=
(2003,1004) -> (190000,577000,0)
GCP[ 5]: Id=, Info=
(3669,2338) -> (195000,573000,0)
GCP[ 6]: Id=, Info=
(3669,1003) -> (195000,577000,0)
GCP[ 7]: Id=, Info=
(2002,2337) -> (190000,573000,0)
GCP[ 8]: Id=, Info=
(3004,1669) -> (193000,575000,0)
Metadata:
NEATLINE=POLYGON ((-8.32572 42.187861,-8.1319 42.188012,-8.131873 42.097892,-8.325418 42.097741,-8.32572 42.187861))
Corner Coordinates:
Upper Left ( 0.0, 0.0)
Lower Left ( 0.0, 3340.0)
Upper Right ( 5339.0, 0.0)
Lower Right ( 5339.0, 3340.0)
Center ( 2669.5, 1670.0)
Band 1 Block=5339x1 Type=Byte, ColorInterp=Palette
Metadata:
GIF_BACKGROUND=0
Color Table (RGB with 16 entries)
0: 16,0,0,255
1: 156,49,49,255
2: 156,49,0,255
3: 156,49,98,255
4: 246,205,255,255
5: 205,49,16,255
6: 156,205,164,255
7: 246,255,246,255
8: 156,0,0,255
9: 57,49,41,255
10: 0,49,41,255
11: 205,205,98,255
12: 172,156,106,255
13: 74,98,98,255
14: 205,98,49,255
15: 156,98,57,255
Nun hab ich noch eine datums.dat
Datum Lisboa (Portugal), 29, -304.046, -60.576, 103.640
European 1950 (Portugal), 14, -87.987, -108.639, -121.593
Was kann ich jetzt mit dem allem anfangen? Ich bräuchte irgendwie einen Schups in die richtige Richtung :confused::).

nordlicht
05.06.2017, 16:52
Hallo Bernie,

du mußt die map-Dateien als Source-Dateien auswählen, damit gdal_translate die Georeferenzierung übernimmt.

Das Lissabon-Datum gehört nicht zum Ozi-Standardvorrat, könntest du aber selber in der ozi_datum.csv nachrüsten, die nötigen Parameter findest du z.B. in der EPSG-Datenbank (https://epsg-registry.org/).

gps-bernie
05.06.2017, 17:36
du mußt die map-Dateien als Source-Dateien auswählen, damit gdal_translate die Georeferenzierung übernimmt.
Sorry, ich hatte oben den Quelltext zu stark beschnitten, gdal_translate wird in einer loop aufgerufen
for file in *.mapalso das paßt schon


Das Lissabon-Datum gehört nicht zum Ozi-Standardvorrat, könntest du aber selber in der ozi_datum.csv nachrüsten, die nötigen Parameter findest du z.B. in der EPSG-Datenbank (https://epsg-registry.org/).
und genau da stehe ich auf'm Schlauch. Ich hab kein Ozi, sondern nur QMapShack und gdal und was es so unter Linux sonst noch so gibt. Wo müßte ich dies .csv denn dann hinlegen?

Und da ist jetzt einfach mein Problem, wem (ich nehme an, gdal_translate) ich wie (welche Parameter muß ich in welchem Format an welcher Stelle übergeben) sagen muß, wie er mit dem Lissabon-Datum umgehen soll.

Rauspurzeln sollen halt Files, die ich in QMapShack verwenden kann, also GeoTIFF z. B.

kiozen
06.06.2017, 18:31
Das müssen aber recht alte Karten sein, wenn die noch Lissabon als Datum haben.

Die Datei /usr/share/gdal/ozi_datum.csv ist eigentlich recht einfach aufgebaut.

Datum Lisboa (Portugal),27493,29, -304.046, -60.576, 103.640

27493 ist der EPSG Code. Da gibt es zwei 27493 oder 27492. Welches stimmt weiß ich nicht. Du kannst ihn auch weg lassen, dann werden die Parameter danach genommen. Also so:

Datum Lisboa (Portugal),,29, -304.046, -60.576, 103.640

Die Parameter danach habe ich aus deinem Post entnommen. Ich hoffe die stimmen. Probier es mal aus.

gps-bernie
08.06.2017, 21:38
danke, das hat mich erstmal ein Stück weitergebracht: Unter
/usr/share/gdal/1.11findet sich in der Tat eine ozi_datum.csv.
Dort hab ich die beiden Zeilen von oben eingetragen, mit Doppelkomma nach dem Namen (erstmal den EPSG Code weggelassen).

Da kamen irgendwelche Meldungen beim Konvertieren nach GeoTIFF, war auch irgendwo von einem Ellipsoid die Rede. Nachdem ich mir das nochmal angeschaut habe und die ganzen Leerzeichen rausgemacht habe, lief das ohne Fehlermeldung durch.

Aber der VRT-Builder behauptet jetzt:
0.Warning 6: gdalbuildvrt does not support ungeoreferenced image. Skipping /home/{Benutzername}/Portugal-25k/001.tif
..10...20Warning 6: gdalbuildvrt does not support ungeoreferenced image. Skipping /home/{Benutzername}/Portugal-25k/002.tif
Warning 6: gdalbuildvrt does not support ungeoreferenced image. Skipping /home/{Benutzername}/Portugal-25k/003.tif
Warning 6: gdalbuildvrt does not support ungeoreferenced image. Skipping /home/{Benutzername}/Portugal-25k/004.tif
Warning 6: gdalbuildvrt does not support ungeoreferenced image. Skipping /home/{Benutzername}/Portugal-25k/005.tif ... und so weiter ...

Hab da noch eine ozi_ellips.csv gefunden - und dieses: http://trac.osgeo.org/gdal/ticket/3929 - evtl. werd ich da mal irgendwann draus schlau ... mal sehen, wann wieder Zeit ist, gerade viel Arbeit (Rechner defekt und so)

kiozen
10.06.2017, 09:23
Wenn ich mich richtig erinnere, ist eine Datei die nur GCPs enthält noch nicht referenziert. Versuche mal mit gdalwarp oder gdal_translate the GCP Punkte zu einer echten Referenzierung umrechnen zu lassen. Am Ende vom Tag muss gdalinfo den üblichen verschachtelten Projektions String anzeigen und nicht eine Liste von GCPs.