Fragen zu GeoTiff/ Tif mit Worldfile

  • Hallo,


    zuerst ein Hinweis an die Mods/ Admins: Ich habe dieses Thema im Rasterkarten-Bereich eingestellt weil es mir eigentlich vorerst nur um allgemeine Informationen geht. Sollte es zu sehr auf QLandkarteGT abzielen dann bitte dorthin verschieben.





    Nachdem ich mich eine zeitlang mit den Vektorkarten beschäftigt habe will ich mich jetzt mehr den Rasterkarten zuwenden.
    Verwenden will ich sie hauptsächlich mit QlandkarteGT. Dieses Programm benutze ich seit einigen Monaten bereits mit Vektorkarten. Das aber wie oben erwähnt nur am Rande.



    Mir geht es um die GeoTiffs.
    Was ist das eigentlich? Woher bekommt man die? Wie erstellt man die? Was kann man damit machen?


    Angeblich kann ein Tif in sich mehrere Bilder (als JPGs?) enthalten. Ist das so ähnlich wie bei den animierten Gifs? Das müssen ja auch mehrere Bilder sein die (zeitgesteuert) gewechselt werden. Wie ist das bei den Tifs? Oder was hat es im speziellen mit den Übersichtskarten auf sich?


    Kann man sich GeoTiffs (bevorzugt Deutschland und Österreich) irgendwo im Internet herunterladen?
    Von Neuseeland, Kanada oder USA habe ich sogar welche gefunden. Auch Blue Marble gibt es (in ziemlich mieser Qualität) als GeoTiffs. Hierzulande schaut es aber mau aus.
    Mir ist auch schon aufgefallen das solche Karten meist riesige Dateien ergeben. Darum ist es wahrscheinlich auch weniger sinnvoll sich sowas als Download zu holen?
    Oder gibt es vielleicht Quellen für andere Formate wie ECW oder BSB? Die könnte ich mir umwandeln.


    Hauptsächtlich verwirren mich aber die unterschiedlichen Formate von denen ab und zu die Rede ist.
    Ein "richtiges" GeoTiff hat doch die Endung .tif und enthält bereits die Informationen für die Kalibrierung, oder?
    Andererseits werden aber auch "normale" Tif-Dateien mit einer zusätzlichen .tfw (Worldfile) als GeoTiffs bezeichnet. Stimmt das oder ist das nur "halb richtig"?
    Sowas findet man im Internet noch eher wie zb hier für England: http://parlvid.mysociety.org:81/os/


    Und jetzt eigentlich das wichtigste:
    Kann ich eine .tif/ .tfw - Kombination in ein "fertiges" GeoTiff umwandeln? Klar könnte ich mir das selber ausrechnen und die Karte an den Ecken von Hand kalibieren. Zumindest solange die Karte nicht rotiert ist (dann wirds komplizierter).
    Gibt es dafür Programme? Am besten eins mit dem man gleich mehrere Karten oder einen ganzen Ordner auf einmal bearbeiten kann.
    Oder kann ich die Worldfile-Tifs gleich direkt in QLandkarte GT laden? Habe ich bisher noch nicht geschafft.


    Das Blöde an den Worldfiles ist halt das man noch einige andere Informationen (Projektion, Bezugssytem, evtl UTM-Zone) braucht. Wenn ich diese Infos nicht habe: Lassen sich die irgendwie eindeutig bestimen oder muss ich dann raten? Da muss ich mich aber sowieso erst noch einlesen.



    Wäre euch schon mal für ein paar allgemeine Informationen dankbar.


    Übrigens noch zur Info: Habe Windows XP
    Will mir auch nicht unbedingt TTQV oder gar GlobalMapper kaufen müssen.

    ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo

  • Na dann wollen wir mal....



    Also GeoTiff Karten Animationen gibt es nicht. Aber die von Dir schon erwähnten Übersichtsebenen. Das GDAL Kommando dazu heißt gdaladdo. Eine Dokumentation dazu findet man hier: http://www.gdal.org/gdaladdo.html


    Für den DACH Raum gibt es keine wirklich freien Rasterkarten. Entweder man kauft die Karten aus offizieller Quelle und hackt das Format. Oder man bedient sich schamlos bei den zur Verfügung stehenden Kartenservern für TMS, WMS und WTMS Karten.


    Zum World File: Deine Beobachtungen sind richtig. Ohne die Projektion zu kennen ist das witzlos. Deswegen wird der Kram auch nicht von QLGT unterstützt. Aber auch hier hilft GDAL. Den genauen Syntax habe ich jetzt nicht im Kopf. Aber ich würde mal gdal_translate mit dem -s_srs Parameter versuchen. Also in etwa so:


    Code
    1. gdal_translate -s_srs "+proj=...." -co tiled=yes -co compress=LZW <input> <output>


    Wobei input die tif oder twf Datei sein sollte. Beide Dateien müssenden den selben Namen haben. output ist eine Datei mit *tif als Endung. Wenn ich mehrere Dateien habe benütze ich gerne Python zur Automatisierung.


    QLGT für Windows bringt seine eigen GDAL Installation mit. Im Startmenü von Windows wird auch eine Ikone angeboten, mit der sich eine Konsole öffnen lässt. In der Konsole sind alle Umgebungsvariablen richtig gesetzt.


    Generell halte ich es für eine gute Idee wenn man hier im Forum vielleicht mal einen GDAL Thread pint und pflegt. Ich steure gerne mit Wissen bei. Die Pflege will ich nicht übernehmen. Ich habe mit QLGT schon genügend Dinge zu pflegen.

  • Danke für die schnelle Antwort und vor allem den Link zur GDAL-Seite!


    Habe mir schon fast gedacht das ich um dieses Programm nicht drum rum komme. Bisher bin ich damit nicht so richtig klar gekommen. Hoffe, mit der Anleitung kann ich jetzt dann mehr damit anfangen. Kommandozeile ist halt für einen GUI-verwöhnten "Mausschubser" wieder etwas gewöhnungsbedürftig.
    Vielleicht sollte ich mein Thema in "GeoTiffs mit GDAL erzeugen" umbenennen oder so ähnlich?
    Gegen einen eigenen GDAL-Thread hätte ich natürlich auch nichts einzuwenden.



    Ohne die Projektion zu kennen ist das witzlos.


    QLGT für Windows bringt seine eigen GDAL Installation mit. Im Startmenü von Windows wird auch eine Ikone angeboten, mit der sich eine Konsole öffnen lässt. In der Konsole sind alle Umgebungsvariablen richtig gesetzt.

    Bin mir da immer noch nicht sicher was ich bei "+proj=...." eingeben muss. Will GDAL damit die Originalprojektion der (input)Karte wissen oder kann ich dadurch bestimmen welche Projektion meine Output-Karte haben soll?
    Muss ich noch was beachten wenn das Worldfile ein Rotation beinhaltet (2. und 3. Zeile ungleich Null) oder erkennt das GDAL selber?



    Ausserdem ist mir immer noch nicht ganz klar: Ist ein .tif mit .tfw-Worldfile wirklich ein GeoTiff oder wird das nur manchmal der Einfachheit halber so bezeichnet?
    Dann müsste es doch eigentlich auch GeoPNGs oder GeoJPGs geben? Da fällt mir ein das mir auch schon mal ein GeoPDF begegnet ist.

    ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo


  • Habe mir schon fast gedacht das ich um dieses Programm nicht drum rum komme. Bisher bin ich damit nicht so richtig klar gekommen. Hoffe, mit der Anleitung kann ich jetzt dann mehr damit anfangen. Kommandozeile ist halt für einen GUI-verwöhnten "Mausschubser" wieder etwas gewöhnungsbedürftig.


    Das ist sicherlich richtig. Nur kann ein GUI nie und nimmer die selbe Flexibilität bieten. Und wenn man bei GM mit Automatisierung anfängt, ja das geht, wird es sehr schnell seltsam. Dann doch lieber eine gescheite Skriptsprache und kleine Kommandozeilenprogramme.




    Bin mir da immer noch nicht sicher was ich bei "+proj=...." eingeben muss. Will GDAL damit die Originalprojektion der (input)Karte wissen oder kann ich dadurch bestimmen welche Projektion meine Output-Karte haben soll?
    Muss ich noch was beachten wenn das Worldfile ein Rotation beinhaltet (2. und 3. Zeile ungleich Null) oder erkennt das GDAL selber?


    Folgendes als Faustregel aus http://www.gdal.org/gdal_utilities.html:


    gdal_translate wandelt Dateien von einem Format in ein anderes.
    gdalwarp reprojiziert Karten.


    -s_srs ist die Projektion der Quelle (source, s_)
    -t_srs ist die Projektion des Ziels (target, t_)


    Projektionen inklusive dem geographischen Datum kann man am besten per EPSG Code angeben. Google hilft den richtigen zu finden. Dann schreibt man z.B.:

    Code
    1. -s_srs "+init=epsg:4623"


    Die echten Männer schreiben:

    Code
    1. -s_srs "+proj=longlat +a=6378137.0000 +b=6356752.3142 +towgs84=0,0,0,0,0,0,0,0 +units=m +no_defs"


    Anhand der Projektion kann GDAL die in der tfw Datei abgelegte Transformationsmatrix als lineares Gleichungssystem interpretieren. Also auch mit einer Rotation. Aber Vorsicht! QLGT kann das nicht. Dieses Detail ist mir in den Anfängen entgangen. Und es jetzt noch zu ändern ein ganz schöner Aufwand. Deswegen funktionieren Projektionen wie Lambert nicht. Aber alles was Merkator oder Transversal Merkator ähnlich ist geht.



    Ausserdem ist mir immer noch nicht ganz klar: Ist ein .tif mit .tfw-Worldfile wirklich ein GeoTiff oder wird das nur manchmal der Einfachheit halber so bezeichnet?


    Es wird leider auch als GeoTiff bezeichnet. Der Name "Krankheit" war anderweitig vergeben. Für mich hat ein echtes GeoTiff immer alle Information intern in den Tags.



    Dann müsste es doch eigentlich auch GeoPNGs oder GeoJPGs geben? Da fällt mir ein das mir auch schon mal ein GeoPDF begegnet ist.


    Geht, gibt es, hat technisch keine wirkliche Bedeutung. PNG und TIF sind sich in der Codierung sehr ähnlich. Und GeoTiff kann die Daten auch JPEG codiert speichern. Wie übrigens fast alle anderen Formate auch die Kompression von anderen Formaten beherrschen. Die ursprünglichen Namen sind oft nur noch historischer Schall und Rauch. Ganz besonders deutlich wird dies beim Windows BMP. Von 32Bit Pixel unkomprimiert, über 8 Bit Farbtabelle, bis hin zu Lauflängen, Jpeg oder Wavelet Kompressionen kann da alles drinnen sein. Ein Jpeg mit 100% Qualität entspricht quasi einem PNG.

  • Bin mir da immer noch nicht sicher was ich bei "+proj=...." eingeben muss. Will GDAL damit die Originalprojektion der (input)Karte wissen...


    ja, entweder als Datei (Möglichkeiten siehe hier), EPSG-Code oder als vollständigen Parametersatz diskret angegeben. Für die mittlere deutsche Gauß-Krüger-Zone 3 sähe das z.B. so aus:


    Code
    1. +proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs

    oder kann ich dadurch bestimmen welche Projektion meine Output-Karte haben soll?


    nein. Dazu ist ein zweiter Schritt mit gdalwarp nötig.


    Muss ich noch was beachten wenn das Worldfile ein Rotation beinhaltet (2. und 3. Zeile ungleich Null)


    nein.


    Ausserdem ist mir immer noch nicht ganz klar: Ist ein .tif mit .tfw-Worldfile wirklich ein GeoTiff


    im Sinne der Spezifikation nicht.


    oder wird das nur manchmal der Einfachheit halber so bezeichnet?


    fälschlicherweise ja.


    Dann müsste es doch eigentlich auch GeoPNGs oder GeoJPGs geben? Da fällt mir ein das mir auch schon mal ein GeoPDF begegnet ist.


    Prinzipiell läßt sich für jedes Bildformat, das Platz für Metadaten hat, ein GeoBildformat definieren. Es gab ein paar Anläufe, hat sich bisher aber nicht durchgesetzt. PDF ist ein Containerformat, da kann man so ziemlich alles reinpacken.


    Wenn du als langjähriger Mausschubser mit der Kommandozeile nicht zurechtkommen solltest, sieh dir mal QGIS an. Das bietet u.a. ein grafisches Frontend für GDAL inkl. Stapelverarbeitung, die Bedienung ist allerdings alles andere als intuitiv (dafür gibt's aber eine Doku) und setzt einiges an Verständnis für die Materie voraus. Willkommen in der GIS-Welt!

    "The universal aptitude for inaptitude makes any human accomplishment an incredible miracle." (John Paul Stapp)

  • Vielen herzlichen Dank euch beiden!


    Meine wichtigsten Fragen wären damit beantwortet.
    Mit Sicherheit habe ich zu GDAL oder QGIS noch weitere Fragen. Dafür sollte ich aber (wie auch von kiozen vorgeschlagen) besser ein eigenes Thema aufmachen.
    Und mit Koordinatensystemen, Projektionen, Kartendatum usw. werde ich mich auch noch eingehender befassen müssen (weis da jemand vielleicht eine gute Seite für den Einstieg?).


    Danke nochmal und schönes Wochenende!

    ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo

  • Auf den Seiten von GDAL gibt es einige interessante PDFs.

    Bin gerade dabei mich durchzulesen. Habe da auch eine Aufzählung gefunden welches GDAL-Programm (warp, translate, addo usw.) überhaupt für was gut ist. Damit wird die Sache schon etwas klarer.

    Und für den Anfang sollte man sich die Wikipedia Artikel zu Merkator/Transversal Merkator und zum geographischen Datum lesen und verstehen.

    Muss ich mir mal in Ruhe anschauen. Bin schon seit einiger Zeit am Googeln und lesen. So richtig verstanden habe ich es bisher aber nur bruchstückhaft.
    Habe hauptsächlich das Problem das Quadrate eben keine Quadrate bleiben sondern je nach Breitengrad mehr oder weniger langgezogene Rechtecke werden (Kreise entsprechend oval). Koordinaten stimmen zwar, schaut aber halt nicht hübsch aus.
    So Sachen wie transparente Pixel http://www.naviboard.de/vb/showthread.php?t=52321
    oder sonstige Feinheiten sind mir derzeit noch völlig egal. Bin froh wenn ich überhaupt mal so weit komme.

    ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo

  • So richtig verstanden habe ich es bisher aber nur bruchstückhaft.


    Wird auch noch etwas dauern, je nachdem, wie weit du gehen willst. Oliver hat dich auch in eine auf zwei bestimmte Projektionen spezialisierte Richtung losgeschickt, fang mal etwas allgemeiner an:


    http://de.wikipedia.org/wiki/Kartennetzentwurf
    http://www.boehmwanderkarten.de/kartographie/is_netze.html
    http://de.wikipedia.org/wiki/Geod%C3%A4tisches_Datum

    "The universal aptitude for inaptitude makes any human accomplishment an incredible miracle." (John Paul Stapp)

  • Ein bisschen rumprobiert habe ich schon eine ganze Weile. Bisher habe ich meine Karten aber meistens mit Referenzpunkten selber kalibriert.
    Beispiel Österreich: Die einzelnen Kacheln sind oft um ein paar Grad verdreht. Ich hab zwar schon was von Gauss-Krüger, Merkator, WGS 84, Hermannskogel usw. gelesen. Aber mir fehlen noch die Zusammenhänge.


    Ausserdem muss man sich bei Rasterkarten ja auch noch mit den Bildformaten auseinandersetzen.
    Oft bekomme ich zb. an den Rändern zwischen den Kacheln schwarze oder weiße Keile. Jetzt habe ich gelesen daß ein JPG keinen Alphakanal kennt. Okay. Könnte damit zusammenhängen. Aber was ist überhaupt ein Alphakanal? Bin kein Graphiker.


    Und welchen Einfluss haben diese ganze verschiedenen Farben? Da muss ich mein Wissen über Begriffe wie RGB, CMYK, True Colour, bit-Farbtiefen usw. erst deutlich erweitern. Diese Schlagwörter purzeln bei mir noch wirr durcheinander.


    Bei auftretenden Fehrlern fällt es mir schwer überhaupt zu erkennen ob es sich um ein GIS- oder Graphikproblem handelt.


    Bislang habe ich einfach nur rumprobiert. Manchmal kommt sogar was brauchbares dabei raus. Viele Karten habe ich aber auch gleich wieder gelöscht.
    Werde mal versuchen ein System reinzubringen.
    Es gibt also viel zu tun.:arbeit:

    ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo

  • Wenn Du ein konkretes Bespiel hast, können wir auch gerne Schritt für Schritt durchgehen.


    Zu den Farben:
    Es gibt viele Farbmodelle. Ich bin in all den Jahren mit RGB, RGBA und 8 Bit Farbtabellen prima ausgekommen.


    RGB(A) bedeutet Rot Grün Blau(Alpha) und entspricht der üblichen bekannten Farbmischung. Der Wert im Alphakanal gibt an, in wie weit ein Pixel deckend ist. 0 ist durchsichtig, die Werte in RGB sind egal. 255 ist komplett deckend. manchmal werden die RGBA Werte auch von 0..1.0, also als 3(4) Kommazahlen angegeben.


    Die üblichen Bildbearbeitungsprogramme laden normalerweise das ganze Bild in den Speicher. Bei Karten kommt man hier schnell an die Grenzen. QGis macht das auch, weil es versucht die ganze Karte im Bildschirm anzuzeigen. Also mit einem starken Zoom anfängt, als nur einen Ausschnitt 1:1.


    Meine üblichen, grundlegende Vorgehensweise, wenn ich die Datei vom Scannen zurückbekomme ist wie folgt:


    1) Öffnen der Datei mit Gimp.
    2) Umwandeln in den RGBA Farbraum.
    3) Mit dem Lasso Tool den Rand freistellen.
    4) Als TIF mit RGBA Farbraum speichern.
    5) Mit gdal_translate und "-co tiled=yes -co compress=LZW" die interne Struktur der Daten in Kacheln umwandeln
    6) Mit gdaladdo Übersichtsebenen hinzufügen.


    Jetzt habe ich eine Rohdatei, mit der ich was anfangen kann, weil sie nicht die Grenzen meines PCs sprengt.


    Zu den schwarzen Keilen:
    Der Übergang von Merkator nach Transversal Merkator (und anders herum) macht aus einem Rechteck ein Trapez [1], welches leicht gedreht ist. Natürlich muss dieses Trapez wieder als Rechteck gespeichert werden. Deswegen entstehen die Keile.


    Dem kann man entgegenwirken, indem man die Projektion der Karte nicht ändert. Oder indem man einen Alphakanal hat. Also alle Pixel die nicht zur Karte gehören transparent setzt. Da bei gescannten Karten immer ein Rand entsteht, weil diese ja nie perfekt gerade sind, bevorzuge ich die Lösung mit dem Alphakanal.


    Farbtabellen vs. RGBA:
    Eine Karte mit normalisierten Farbraum, also eine wo eine grüne Fläche nur ein Grün hat und nicht Schattierungen von Grün, lässt sich sehr effizient als TIF mit Farbtabelle speichern. Wird solch eine Karte aber skaliert oder gedreht, entstehen Treppenstufen. Warum? Die Farbtabelle hat nur 255 Farben. Es gibt so gut wie keine Zwischenstufen. Um aber z.B. eine waagrechte Linie zu drehen und danach wieder als glatte Linie darzustellen, müssen Pixel mit einer Mischfarbe aus der Linienfarbe und der Umgebungsfarbe verwendet werden. Mit einer Farbtabelle unmöglich. Genauso beim Skalieren (Interpolation). Hier kann man sich nur für die eine oder andere Farbe entscheiden.


    Deswegen arbeite ich zuerst mit RGBA. Zum Schluss wenn die Karte fertig ist, lasse ich eine optimierte Farbtabelle berechnen. Wenn man mehrere gescannte Karten zusammensetzen will, muss man die Tabelle über alle Dateien berechnen. Dann kann man die Kartendateien in einem finalen Schritt zu einer Karte vereinen.


    Zum Referenzieren:
    Man sollte diesen Vorgang mal in Gedanken genau durchspielen und sich überlegen welche Projektionen vorkommen. Nehmen wir z.B. mal die Tabacco Karten. Diese sind in der Merktor Projektion gezeichnet. Haben aber ein UTM Gitter. Das merkt man daran, dass das Gitter leicht verdreht zur Karte liegt. Nimmt man die Gitterpunkte muss man die natürlich richtig interpretieren. Folglich muss man bei Referenzpunkten auch immer die richtige Projektion mit angeben. Und die muss nicht zwangsläufig die der Karte sein.


    Wenn man sich darüber im Klaren ist, dann kann man auch den Dialog zum Referenzieren in QLGT verstehen.



    [1] Eigentlich nicht, weil die Seiten auch noch gebogen werden. Zum Verstehen reicht Trapez.

  • Wenn Du ein konkretes Bespiel hast, können wir auch gerne Schritt für Schritt durchgehen.


    Danke für das Angebot. Wäre vielleicht gar nicht schlecht bevor wir uns hier in etliche "wenn - dann" verlieren. Auch für die Allgemeinheit die hier unter Umständen mitliest.


    Es gäbe im Großen und Ganzen 2 Szenarien die ich gerne durchspielen würde:
    Zum Einen habe ich mir von der im Eingangsbeitrag erwänten England-Seite: http://parlvid.mysociety.org:81/os/
    willkürlich den Bereich "NC" heruntergeladen. Das sind 268 einzelne Tifs mit dazugehörigem Worldfile. Mich würde interessieren wie man sowas am schnellsten hinbringt. Ich beschreibe auch gerne zuerst mal meine Vorgehensweise die wir dann durchdiskutieren können- besonders was die Reihenfolge der einzelnen Schritte betrifft.
    Meiner Meinung nach würde das hier noch am besten zum Thema passen.


    Die andere Variante wäre zb. eine dieser Karten vom BKG: http://www.bkg.bund.de/DE/Bund…oads__node.html__nnn=true
    Das sind reines PDFs ohne irgendwelche Kalibrierung, dafür aber mit einem aufgedrucktem Gradnetz. Ich glaube aber das wäre ein eigenes Thema für das Qlandkarte GT-Unterforum.


    Aber heute nicht mehr. Bin ziemlich durchgefroren und freu mich jetzt auf meine Badewanne.

    ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo

  • Den Url bekomme ich nicht geladen. Der Server scheint nicht zu funktionieren. Aber ich vermute mal das sind die gleichen Daten wie hier:


    http://www.ordnancesurvey.co.u…products/os-opendata.html


    Ich habe mir von "OS VectorMap™ District (Raster)" das Teilgebiet TL herunter geladen und entpackt. Da entstehen mehrere Verzeichnisse. In einem liegen die ganzen Tif Dateien und im anderen die Referenzinformation. Entweder als tfw oder als tab. Da tab die komplette Information enthält, ist es vorzuziehen. Dazu kopiert man alle *tab Dateien rüber in den Ordner mit den *tif Dateien. Für GDAL reicht das schon. Das kann man auf der Konsole wie folgt testen:


    Code
    1. gdalinfo gdalinfo TL99.tif


    ergibt:


    Das sieht doch gut aus! Aber Du willst ja unbedingt wissen was man mit den tfw Dateien machen kann. Also alle *tab löschen und die *tfw kopieren. gdalinfo sieht jetzt nicht ganz so toll aus. Also flugs nach dem EPSG Code für Ordonance Survey National Grid gesucht. Ok das ist jetzt einfach Erfahrung :)


    http://en.wikipedia.org/wiki/Ordnance_Survey_National_Grid


    Und in gdal_translate einsetzen:

    Code
    1. gdal_translate -a_srs "+init=epsg:27700" -co tiled=yes -co compress=LZW TL99.tif TL99_ref.tif


    Man beachte es ist -a_srs und nicht -s_srs. Da bin ich weiter oben durcheinander gekommen. Mit gdalinfo die Datein TL99_ref.tif überprüfen. Sieht gut aus. Mit QLGT laden und einen Wegpunkt an eine markante Straßenkreuzung setzen. OSM Karte laden und überprüfen.


    Jetzt sind das aber 100 Dateien. Ich würde ja empfehlen Cygwin zu installieren. Das ist eine UNIX Shell für Windows. Dort gibt es das Kommando "find", mit dem man die Sache automatisieren kann:

    Code
    1. find ./ -name "*.tif" -exec gdal_translate -a_srs "+init=epsg:27700" -co tiled=yes -co compress=LZW {} {}.tif \;


    Und mit

    Code
    1. gdalwarp -co tiled=yes -co compress=LZW *.tif.tif TL.tif


    wird aus den einzelnen Dateien eine Große gemacht.


    Das mag jetzt dem gemeinen Mausschubser ewig kompliziert vorkommen, aber sich in ein GUI reinfuchsen und dort eine Automatisierung hinzubekommen ist vielleicht gewohnter, aber bestimmt nicht einfacher. Es hilft zu wissen wie man Zeilen aus der Konsole kopiert und wieder einfügt. Das geht auch unter Windows. Ich weiß es nur nicht auswendig. In Cygwin kann man auch die Tab Taste verwenden, um Wörter zu vervollständigen oder sich mögliche Befehle anzeigen zu lassen. Wenn man sich mal auf die Konsole eingelassen hat, will man sie nicht mehr missen und empfindet GUIs, die versuchen das Selbe abzubilden, als zu starr und kompliziert.

  • Danke fürs Ausprobieren und die ausführliche Beschreibung!


    Den Url bekomme ich nicht geladen. Der Server scheint nicht zu funktionieren. Aber ich vermute mal das sind die gleichen Daten wie hier:


    http://www.ordnancesurvey.co.u…products/os-opendata.html

    Der Server funktioniert schon. Ich probiere es mal als Code:

    Code
    1. http://parlvid.mysociety.org:81/os/

    Anscheinend macht mir die Forumssoftware aus dem "Doppelpunkt8" einen "Daumen nach oben"-Smiley.
    Scheinen aber schon die gleichen Daten zu sein wie aus deinem Link.


    Ich beschreibe zuerstmal was ich am Wochenende ausprobiert habe wie ich halbwegs zum Ziel gekommen bin. Mal schauen an welcher Stelle du die Hände über dem Kopf zusammenschlägst:
    - Datei heruntergeladen, entzippt, die .tfw-Dateien in den Ordner mit den .tif-Dateien kopiert.
    - mit QGIS (danke an Hans für den Tip!) auf "Raster - Konvertierung - Übersetzen" gegangen.
    - dort "Stapelverarbeitungsmodus" angeklickt.
    - Ausgabeformat auf "[GDAL] GeoTIFF (*.tif *.tiff *.TIF *.TIFF)" eingestellt (macht Groß- und Kleinschreibung einen Unterschied?).
    - Bei "Ziel-KBS" taucht jetzt das erste Problem auf: Nach ein paarmal Probieren (erster Versuch mit "WGS 84 / UTM zone 10N" (EPSG:32610) ist in die Hose gegangen) bin ich dann durch googeln auch auf "OSGB 1936 / Britisch National Grid" (EPSG:27700) gekommen.
    Macht also in einem Rutsch aus den ganzen Tifs lauter GeoTiffs.


    Hätte ich an dieser Stelle schon den gdaladdo drüberlaufen lassen sollen?


    Dann in QLandkarteGT mit "Karte - Karte bearbeiten/erzeugen - Erzeuge Kartensammlung aus vorliegenden GeoTiff-Dateien" eine qmap-Sammlung angelegt.
    Mangels einer detailierten Vektorkarte von England habe ich die Lagerrichtigkeit mit den Höhenlinien von 3d_coyote (danke für die Arbeit!) besonders an den Seeufern überprüft - passt meiner Meinung nach.
    Aber: Zoomen und verschieben geht jetzt noch ohne Übersichtskarten furchtbar langsam. Geht ziemlich zäh bis ich auf den gesamten Bereich rausgezoomt habe (auch mit quadratischem Zoom). Kann man hier irgendwie gleich ohne Zwischenschrite auf die höchste Stufe rauszoomen ("in Fenster einpassen" oder sowas)?
    Ausserdem sehe wieder lauter blaue und teilweise auch weisse Striche. Wenn ich Zoome oder die Karte verschiebe werden die mal dicker und mal dünner. Teilweise verschwinden sie auch komplett. Ich glaube aber hier handelt es sich eher um ein aufgedrucktes Koordinatengitter. Allerdings sind die Kacheln auch genau entlang des Gitters geschnitten. Die weissen Linien könnten auch die Kachelgranzen sein.


    Als nächsten Schritt habe ich mir die ganze Karte mit "Kartenausschnitt wählen" markiert und links unten auf "Exportieren" gedrückt. Ausgabepfad eingegeben und als Ausgabeformat "GeoTiff" gewählt. "Projektion" habe ich jetzt nicht angehakt (oder besser schon?). Die Übersichten habe ich alle aktiviert gelassen - oder kann man da auf die ein oder andere verzichten?
    Das dauert jetzt eine ganze Zeit (Stunden!).
    Jetzt habe ich ein einziges großes GeoTif das dank der Übersichtsebenen auch deutlich besser zu handhaben ist.


    An dieser Methode stört mich aber daß
    - vor allem das Zusammenfügen mit gdalwarp so ewig lange dauert
    - die endgültige Datei furchbar groß wird.
    Und dabei handelt es sich ja nur um eine von 56 Kacheln der Englandkarte!





    Jetzt aber zu deiner Beschreibung:


    Die tab-Dateien sind glaube ich eher die Ausnahme. Mir sind die zumindest bisher sonst noch nirgens untergekommen. Deswegen habe ich sie jetzt auch erstmal aussen vor gelassen. Praktisch wären die schon weil sie anscheinend auch Informationen zur Projektion enthalten. Meistens bekommt man aber nur die tfw, oder?


    Zur Kommandozeile:
    Muss mir mal die alten DOS-Handbücher wieder rauskramen.
    Die GDAL- und die zu bearbeitenden Dateien müssen anscheinend im gleichen Ordner sein (?). Also das ganze GDAL und alle .dll in den Ordner zu den Karten reinkopiert. Weis nicht ob das wirklich nötig ist.

    gdalinfo gdalinfo TL99.tif


    Schreibt man hier wirklich 2x den Befehl?
    Zuerst mit "cd" in das Karten-Verzeichnis wechseln und mit "gdalinfo TL99.tif" klappt es dann tatsächlich. Erster Schritt geschafft!


    Man beachte es ist -a_srs und nicht -s_srs

    Beachten tue ich das sicher. Aber: Woher weiß man sowas?

    Code
    1. gdal_translate -a_srs "+init=epsg:27700" -co tiled=yes -co compress=LZW TL99.tif TL99_ref.tif

    Habe ich ausprobiert: Geht auch!
    Aber leider nur für ein einziges Tif.


    Jetzt sind das aber 100 Dateien. Ich würde ja empfehlen Cygwin zu installieren. Das ist eine UNIX Shell für Windows. Dort gibt es das Kommando "find", mit dem man die Sache automatisieren kann


    Ah ja. Sehr schön! Habe ich mir auch schon istalliert. Wäre das eine Alternative zu den Pyton-Skripts?


    Komme da aber momentan nicht weiter.
    Erstes Problem: Verzeichnis wechseln mag er nicht. Anscheinend sind die Leerzeichen im Pfad Schuld. Lösung mit Google gefunden: Den Pfad in Anführungszeichen schreiben. Jetzt scheint es zu gehen. Mit "dir" überpfrüft: Ja ich bin im richtigen Verzeichnis.
    Zweite Problem: Den Code mit "find ./ - name "*.tif" usw." eigegeben. Dabei kommt (vermutlich 100x) die Meldung:
    find: `gdal_translate: No such file or directory
    Bringt auch nichts wenn ich für Windows "gdal_translate.exe" statt nur "gdal_translate" zu schreibe.


    Diesen Schritt überspringe ich vorerst mal. Das Ergebnis müsste doch eigentlich das gleiche sein welches mir die Stapelverarbeitung von QGIS liefert?


    Also weiter mit gdalwarp. Mal schauen ob es hier auf der Konsole auch so lange dauert (*.tif.tif habe ich übrigens durch *.tif ersetzt). Läuft aber gerade noch, während ich das hier tippe.





    Ein paar Fragen hätte ich noch:
    - Bei deiner Beschreibung fehlt mit das gdaladdo. Wo bringt man das am besten unter- ganz zum Schluss?
    - Du schreibst immer "compress=LZW". Beim Exportieren aus QLandkarte heisst es "compress=DEFLATE". Welches Verfahren ist (wann) vorzuziehen bzw. wo liegen hier die Unterschiede? Habe auch was von einer "Tiff-Group4" gelesen die deutlich kleinere Dateien ergeben soll. Wäre das auch möglich?
    - Was ist der Unterschied zwischen "+proj=" und "+init="?



    Schaut so aus als würde gdalwarp auf der Konsole heute auch nicht mehr fertig werden. Werde mir das dann morgen anschauen was dabei herausgekommen ist.

    ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo


  • Der Server funktioniert schon. Ich probiere es mal als Code:

    Code
    1. http://parlvid.mysociety.org:81/os/

    Anscheinend macht mir die Forumssoftware aus dem "Doppelpunkt8" einen "Daumen nach oben"-Smiley.
    Scheinen aber schon die gleichen Daten zu sein wie aus deinem Link.


    Mein Fehler. Ich vergesse immer dass ich hier im Büro die Firewall sehr konservativ aufgesetzt habe. Port 81 für HTTP geht da gar nicht.



    Ich beschreibe zuerstmal was ich am Wochenende ausprobiert habe wie ich halbwegs zum Ziel gekommen bin. Mal schauen an welcher Stelle du die Hände über dem Kopf zusammenschlägst:
    ...
    Macht also in einem Rutsch aus den ganzen Tifs lauter GeoTiffs.


    Prima. Soweit alles gut



    Hätte ich an dieser Stelle schon den gdaladdo drüberlaufen lassen sollen?


    gdaladdo macht immer nur Sinn, wenn du eine Datei auch wirklich anzeigen willst. Mit jedem neuen Arbeitsschritt wird die Information wieder entfernt. D.h. die Übersichten werden nicht von einer in die andere Datei übernommen.


    Es macht aber aus meiner Sicht keinen Sinn gdaladdo auf die ganzen Einzeldateien los zulassen. Ich würde die erst zu einer großen Kachel zusammensetzen und dann die Übersichten drüber lassen. Wie du ja schon bemerkt hast entstehen bei der Anzeige von Kacheln, die pixelgenau an einander passen Rundungsfehler, die sich in einer weißen Pixelreihe äußern.


    Die blauen Koordinatenlinien sind ein typische Aliasingproblem bei der Interpolation von Karten mit Farbtabellen. Das wird mit gdaladdo ein wenig besser.


    Dass das Zoom mit den Übersichtsebenen besser geht hast Du ja schon selber herausgefunden.


    Ja , die Bearbeitungszeit. Ich habe die Karte ja schon mal komplett umgewandelt. Das hat auf einem Prozessor Core zwei Wochen gedauert. Das Endergebnis ist ~16GB groß. Das Problem liegt wohl an gdalwarp. Da gdalwarp die Projektion ändern kann, verarbeitet es die Daten sehr umständlich. Und das ist natürlich nicht sehr effizient.


    Aber, inzwischen weiß ich mehr, und es geht besser. Ich habe es gerade ausprobiert. 30 Sekunden für die 100 Kacheln. Ist das besser? :D Geht wie folgt. Zuerst erstellt man einen "virtual table". Das ist sowas wie eine qmap Datei.


    Code
    1. gdalbuildvrt tl.vrt *.tif


    Das sucht im aktuelle Pfad nach allen *.tif Dateien und erstellt eine Datei tl.vrt. Und jetzt:


    Code
    1. gdal_translate -co tiled=yes -co compress=LZW tl.vrt tl.tif


    Und zum Schluss:


    Code
    1. gdaladdo tl.tif 2 4 8 16


    Hätte mir auch gleich einfallen können :simplify:


    Rasterkarten sind übrigens immer furchtbar groß. Und ein Land wie England braucht etwas Platz. Immerhin haben die jetzt einen neuen Monarchenspross. Der brauch auch Platz ;) Deswegen muss auch immer eine Kompression angegeben werden. Ohne -co compress=... werden die rohen Daten geschrieben. Das ist dann groß. Wobei es fast egal ist ob man LZW oder DEFLATE nimmt. Das hat mehr historische Gründe, weil LZW patentverseucht war. Früher kam es zudem mit LZW in GDAL öfters zu Abstürzen. Deswegen benutze ich QLGT oft noch DEFLATE.


    Ob man nun tfw oder tab Dateien bekommt, hängt wirklich von der Quelle ab. Ich finde beide Formate einen Schmarrn. Aber einem geschenkten Gaul schaut man nicht ins Maul.


    Damit GDAL unter Windows auf der Kommandozeile richtig funktioniert, müssen einige Systemvariablen gesetzt sein. Die GDAL Konsole die mit QLGT angeboten wird sollte das richtig machen. Wenn nicht -> melden. Das Gleiche gilt für Cygwin. Und da liegt der Haken. Die 0815 Cygwin Konsole weiß davon nichts. Ich frag mal den Windows Maintainer ob man da was machen kann.


    Das mit den 2x gdalinfo ist natürlich ein falscher Fehler. Zittrige Finger vorm ersten Kaffee. :)


    Wenn man auf der Konsole einen GDAL Befehl ohne alles eingibt, kommt eine kurze Anleitung. Mehr Doku findet man im Internet auf den bekannten Seiten. Einfach ein wenig einlesen.


    +proj/+init: Man kann die Projektion auf 2 Arten definieren. Entweder als "well known projection" über +init=epsg:.... Oder als Projektions String mit allen Parametern einzeln. Für die "well known" Projektionen ist der EPSG Code bedeutend einfacher.


    So ich hoffe, das hat die größten Wirren beseitigt. Das mit der Konsole unter Windows, werde ich mal selber testen. Das sollte alles unabhängig vom Pfad funktionieren.


    Edit: Falscher Dateiname beim gdal_translate Befehl

  • Erstmal zu GDAL auf der Konsole: Funktioniert jetzt bei mir auch.
    Vielleicht sind die erwähnten Systemvariablen erst richtig initialisiert worden indem ich beim ersten Mal GDAL direkt aus dem Kartenverzeichnis gestartet habe? Oder ich habe irgendwo beim Verzeichniswechsel doch einen Fehler gemacht.


    Die Syntax von Cygwin ist auch etwas gewöhnungsbedürftig. Das Programm beschwert sich jedenfalls immer über meine "DOS-mäßige" Ausdrucksweise. ^_^



    Aber, inzwischen weiß ich mehr, und es geht besser. Ich habe es gerade ausprobiert. 30 Sekunden für die 100 Kacheln. Ist das besser?

    Das ist mehr als besser - das ist Spitze! :)
    Diesmal ist das wirklich als Bild gemeint: :tup:
    Die 30 Sekunden erreiche ich mit meinem alten PC zwar nicht. Ich habe das nochmal mit dem "NC"-Ausschnitt komplett durchgespielt. Aber knapp 30 Minuten reichen vom Entzippen des Downloads bis zum Laden der fertigen Karte in QLandkarteGT!
    Und noch dazu sind die Dateien viel kleiner. Brauchen blos mehr geschätzt 1/10 auf der Festplatte im Vergleich zu den bisherigen Karten.
    Jetzt kann Kate von mir aus auch Zwillinge bekommen.


    So ich hoffe, das hat die größten Wirren beseitigt.

    Herzlichen Dank nochmal!

    ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo


  • Die Syntax von Cygwin ist auch etwas gewöhnungsbedürftig. Das Programm beschwert sich jedenfalls immer über meine "DOS-mäßige" Ausdrucksweise. ^_^


    Ist halt Bash Style. Du kannst aber auch in der .bashrc oder .profile sogenannte Aliase setzen. Dann wird "dir" nach "ls -l" übersetzt usw.



    Und noch dazu sind die Dateien viel kleiner. Brauchen blos mehr geschätzt 1/10 auf der Festplatte im Vergleich zu den bisherigen Karten.
    Jetzt kann Kate von mir aus auch Zwillinge bekommen.


    Naja, schlecht ist ihr ja schon mal für zwei :D


    Die *vrt Dateien habe ich auch erst diesen Sommer entdeckt, als ich einen großen Stapel Tabacco Karten zu einer Gesamtkarte umwandeln wollte. Da das Endprodukt eine gemeinsame Farbtabelle haben sollte, musste ich die nötigen Befehle zugleich auf alle Dateien loslassen. Dass man damit Karten über gdal_translate wesentlich effizienter zusammenfügen kann als mit gdalwarp, ist mir aber erst jetzt gekommen.


    Das ist halt das Problem mit GDAL. Lauter kleine Primitiven. So ein System ist zwar sehr flexibel und damit jeder Aufgabe gewachsen. Leider gibt es auch immer mehrere Lösungen, die mehr oder weniger elegant sind.


    Ich sehe auch gerade, dass es ein Python Skript gdal_merge.py gibt. Das benütz auch QGis.


    Code
    1. python gdal_merge.py -o tl.tif -co tiled=yes -co compress=LZW *.tif


    Geht auch recht flott und man spart sich den Zwischenschritt mit der *vrt Datei. Jetzt haben wir schon 3 Wege nach Rom - oder besser nach London.

  • So, wollte mich nochmal melden auch wenn es bisher nicht viel neues gibt.


    Mit Cygwin und Python werde ich mich vielleicht über die Feiertage befassen. Habe zwar schon einiges gelesen und weiß jetzt dass Python eine objektorientierte High-Level-Programmiersprache ist und die Programme nicht kompiliert werden sondern über einen Interpreter laufen. Hilft mir bisher aber noch nicht weiter. Das Python-Script habe ich bisher noch nicht zum Laufen bekommen. Dafür habe ich aber bei QGIS eine gdal_merge.bat gefunden.


    Mit der Dateigröße 1/10-tel war ich etwas zu optimistisch. Bei Dateien die ich bereits mit Gdal bearbeitet habe macht das keinen großen Unterschied mehr.
    Wollte eigentlich meinen "Flickerlteppich" aus kalibrierten Scans und Screenshots zu einer großen Datei zusammenfassen. Irgendwann steigt mir aber gdaltranslate (bei der Vorgehensweise mit der .vrt) aus. Sagt mir die Größe für ein Tiff wäre überschritten (wäre ein Bild mit ca. 250.000x100.000 Pixeln geworden). Ich bekomme am Ende zwar ein großes Tiff. Allerdings ist das nur schwarz.
    Dann habe ich nur ein Viertel genommen. Gdaltranslate läuft zwar durch. Aber bei gdaladdo ist dann Schluß. Das bläht ja die Datei nochmal zusätzlich auf und dann wird es auch zu viel.


    Wenn ich kleinere Flicken wieder in QLandkarte zu einer .qmap zusammensetze bekomme ich zwischen den Karten (die sind nicht unbedingt rechteckig) weisse Streifen (je nach Reihenfolge an unterschiedlichen Stellen). Muss mal schauen ob ich die noch irgendwie transparent bekomme.
    Manchmal sehe ich die Karten auch nur im Zoomlevel 1. Wenn ich weiter rauszoome wird die Karte weiß. Wahrscheinlich hat sich dann gdaladdo hier auch überschlagen.

    ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo

  • Normal Tiff Dateien können 4GB groß sein. Es gibt auch die BigTiff Erweiterung, dann geht ewig viel. Wenn das Dateisystem mit macht :) gdaladdo räumt leider beim Abbruch nicht auf. Deswegen auch die weißen Ebenen.


    Ich habe die Englandkarte wie folgt gezähmt. Die original Projektion habe ich beibehalten. Jede Großkachel, also die mit dem Buchstabenpaar, wird zu einer Datei zusammengesetzt. Und diese Dateien über eine qmap Datei zu einer Karte. Zusätzlich habe ich mir die Übersichtskarten gezogen und als weitere Ebenen eingetragen. Damit habe ich in QLGT eine schöne Karte, die sich flüssig zoomen lässt.


    Auf meinen Geräten habe ich in der Regel immer nur Ausschnitte von Karten. QLGT schneidet aus mehreren Kartendateien die nötigen Bereiche aus und vereint diese. Erst danach wird auf die nötige Projektion reprojiziert.