Was ist der beste Weg, um mit GeoServer ein riesiges Luftbild anzuzeigen?

8

Ich habe ein Luftbild - fast 1,5 GB, GeoTIFF - und ich habe versucht, es als Ebene in GeoServer hinzuzufügen ...

Das Hinzufügen der Ebene war erfolgreich, aber die Leistung war sehr schlecht.

Ich habe versucht, die Ebene mit GeoWebCache zwischenzuspeichern, und die Leistung ist immer noch schlecht.

Irgendwelche Tipps?

Mathboy
quelle

Antworten:

13

Sie müssen das Bild kacheln und Übersichten hinzufügen, damit das gesamte Bild nie gleichzeitig in den Speicher eingelesen wird. GeoServer stellt zu diesem Zweck einen Bildpyramidendatenspeicher zur Verfügung.

Ich habe diese Notizen geschrieben, in denen beschrieben wird, wie ich dies auf meinem Computer eingerichtet habe. Der wichtigste Schritt besteht darin, GDAL zum Erstellen der Pyramide mit dem folgenden Befehl zu verwenden:

mkdir bmpyramid
gdal_retile.py -v -r bilinear -levels 8 -ps 2048 2048 -co \
"TILED=YES" -targetDir bmpyramid \
bluemarble.tif

Wo-

  • -v: Ausführliche Ausgabe, ermöglicht dem Benutzer, zu sehen, wie jede Dateierstellung vorbeirollt, um zu wissen, dass Fortschritte erzielt werden (eine große Pyramidenkonstruktion kann Stunden dauern).
  • -r bilinear: Verwenden Sie die bilineare Interpolation, wenn Sie die niedrigeren Auflösungsstufen erstellen. Dies ist der Schlüssel für eine gute Bildqualität, ohne dass GeoServer teure Interpolationen im Speicher durchführen muss
  • -Stufen 8: Die Anzahl der Ebenen in der Pyramide
  • -ps 2048 2048: Jede Kachel in der Pyramide ist ein 2048x2048 GeoTIFF
  • -co “TILED = YES”: Jede GeoTIFF-Kachel in der Pyramide wird innen gekachelt
  • (Wird hier nicht verwendet) -co “COMPRESS = JPEG”: Jede GeoTIFF-Kachel in der Pyramide wird JPEG-komprimiert (handelt klein, um eine höhere Leistung zu erzielen, probieren Sie sie auch ohne diesen Parameter aus).
  • -targetDir bmpyramid: Erstellt die Pyramide im Verzeichnis bmpyramid. Das Zielverzeichnis muss vorhanden und leer sein
  • bmreduced.tiff: die Quelldatei

Dienstprogrammhinweise für gdal_retile.py .

Ian Turton
quelle
Wie kann ich die Datei gdal_retile.py abrufen (ich verwende den Geoserver unter Windows XP)?
Mathboy
trac.osgeo.org/osgeo4w und folgen Sie den Anweisungen zur Schnellinstallation
Ian Turton
Jetzt habe ich ein Problem, ich habe die Kacheln mit dem Tool gdal_retile.py erstellt, aber ich erhalte den folgenden Fehler von Geoserver, während ich die Ebene mit dem Kachelordner verknüpfe: Irgendwelche Could not list layers for this store, an error occurred retrieving them: This plugin accepts only File, URL and String pointing to a fileVorschläge?
Mathboy
@iant, erlaubt der Schrägstrich in diesem Teil -co \ "TILED=YES"nur, dass die Anweisung einen Zeilenumbruch im Befehlsfenster überspannt?
Elrobis
3
Wenn Sie gdal_retile unter Windows verwenden, um ein hochauflösendes, großflächiges Raster zu verarbeiten, empfehle ich das Hinzufügen -useDirForEachRow. Standardmäßig legt retile alle Kacheln, die es erstellt, in demselben Ordner ab. Bei großen Rastern führt dies zu einer enormen Verlangsamung, sobald sich etwa 350.000 Kacheln im Stammordner befinden. Im Gegensatz dazu werden -useDirForEachRowdie Kacheln für jede Zeile in einem eigenen Ordner unter dem Kachelstamm platziert. Dies bedeutet eine enorme Beschleunigung unter Windows. Bevor -useDirForEachRowein Full-County-Bildmosaik (6 Zoll) 2 Monate brauchte, um zu laufen! Nach -useDir wird der gesamte Prozess über Nacht abgeschlossen.
Elrobis