Erzeugen mehrerer Auflösungen bei Tiff-Bildern (z.B. DOPs) mit gdaladdo zur Performencesteigerung bei den Ladezeiten

Aus kvwmap
Wechseln zu: Navigation, Suche

Allgemeines:

Mit dem Befehl gdaladdo, eine Funktionen der gdal-Bibliothek, werden Übersichts-(Raster-)Bilder erstellt. Es unterstützt die meisten Formate und kann verschiedene Downsampling-Algorithmen verwenden. Weitere Informationen findet man unter http://en.giswiki.org/wiki/Gdaladdo Wir haben unsere gerasterten DOP's mit Gdaladdo in der Form bearbeitet, dass wir in den jeweiligen Tiff-Bildern verschiedene Auflösungen erzeugt haben. Der Speicherbedarf für das Tiff-Bild wird dadurch ca. 1/3 größer. Mit Hilfe von IrfanView kann man sich dann für das Tiff-Bild die unterschiedlichen Ebenen anschauen. Im Ergebnis dieser Anwendung sind die Ladezeiten für das Anzeigen der DOP's enorm gefallen. Man kann sich sogar den gesamten Landkreis anzeigen, auch wenn das wenig Sinn macht und die Wartezeit ist echt komfortabel.

Ausführung:

1. Die Zeilen im nächsten Fenster ergeben ein Shell-Script und sind z.B. in TextPad hinein zu kopieren. Die Datei wird dann beispielsweise script.sh genannt. Die Endung sh ist nicht so wichtig aber zu empfehlen.


#!/bin/sh

# Dieses Script erzeugt eine Datei namens pyramiden_batch.sh, die die gdaladdo-Funktions-Aufrufe für alle TIFF-Dateien im Verzeichnis und Unterverzeichnissen enthält.Sie muss anschließend manuell mit sh pyramiden_batch.sh gestartet werden. Vorher bitte die Datei prüfen.

wert="2 4 8 16 32 64 128 256" # hier mit 8 Stufen

# liste=`ls *.tif`

# liste=`find . -name *.tif`

liste=`find *.tif`

set $liste

>pyramiden_batch.sh

for i do :

string="gdaladdo -r average ${i} ${wert}"

echo $string

echo $string >>pyramiden_batch.sh

done


2. Die Datei script.sh kopiert man sich dann mit winSCP in das Verzeichnis, wo auch die Geo-tiff Bilder, welche gewandelt werden sollen, liegen.

3. Man muss das Recht zugewiesen bekommen, dass Shell-Script ausführen zu dürfen (In winSCP auf Datei und rechte Maustaste und dann auf Eigenschaften; bei Rechte Eigentümer muss bei R W und X ein Kreuz sein).

4. Starten von putty

5. Anmeldung als root

6. Befehl "cd .."

7. Wechseln in das Verzeichnis, wo die Geo-tiff Bilder und die script.sh liegen. Z.B.: data/DOP

8. Dann ./script.sh eingeben und Ausführen.

9. Unter winSCP im Verzeichnis der zu wandelnden Geo-tiff Bilder schaut man jetzt nach, ob die Datei pyramiden_batch.sh gebildet wurde.

10. In der Datei müssen für alle Geo-tiff Bilder die Befehle für die Wandelung aufgeführt sein.

   Z.B.:	gdaladdo -r average 44605934.tif 2 4 8 16 32 64 128 256

11. Jetzt schaue ich nach, ob auch die Datei pyramiden_batch.sh die entsprechenden Rechte hat (siehe Punkt 3)

12. Unter putty führt man mit ./pyramiden_batch.sh das Shell-Script aus. Auch hier muss man sich im Verzeichnis befinden, wo alle Dateien liegen. (in diesem Beispiel data/DOP)

13. Jetzt werden alle Geo-tiff Bilder gewandelt, wobei der die Dateigröße zunimmt.

14. Mit IrfanView kann man sich die unterschiedlichen Auflösungen der einzelnen Geo-tiff Bilder durch betätigen der Pfeiltaste anschauen.


--HolgerR 13:08, 16. Apr 2007 (CEST)
Hier noch ein kurzer Nachtrag, um die Pyramiden auch unter WindowsXP zu erzeugen:
  • Download von GDAL für Windows von GDAL-Download und installieren
  • Batchdatei mit folgendem Inhalt schreiben und abspeichern:
FOR %%F IN (*.tif) DO c:\programme\FWTools1.1.0\bin\gdaladdo.exe -r average %%F 2 4 8 16 32 64 128
  • Batchdatei in das Verzeichnis mit den Tiff-Bildern kopieren
  • Batchdatei mit Doppelklick starten
  • Konvertierte Bilder auf den Server kopieren
--Markus Hentschel 13:10, 3. Jul 2007 (CEST)
Bei mir gab es mit der GDAL-Version 1.3.2 Probleme. gdaladdo lief mit etlichen Fehlermeldungen durch und produzierte dann Bilder, die ab ca. 1:7.000 nur noch schwarz waren. Mit der Version 1.4.1 gab es dann keine Probleme mehr.
--Markus Hentschel 14:14, 1. Apr 2008 (CEST)
Teilweise sieht eine Kachel, wenn man sie sich mit IrfanView ansieht, ganz grauenvoll aus - wenn man sie jedoch anzeigen lässt, ist aber alles in Ordnung, auch in den verschiedenen Maßstäben. Also nicht zu schnell aufgeben!