Tiling für Pixelkarten mit GDAL

In luucy können diverse Dienste und Dateien direkt angebunden und angezeigt werden. Für Pixelkarten wie Orthofotos empfiehlt sich die Verwendung von Tile Map Services (TMS).

Diese Anleitung zeigt Ihnen, wie sie mit GDAL Ihre Pixelkarten wie Orthofotos vorbereiten und als TMS auf Ihrem Webserver veröffentlichen können.

Diese Anleitung geht davon aus, dass auf Ihrem Computer die OSGeo4W Shell installiert ist. Falls Sie OSGeo4W nicht installiert haben, können Sie das Installationsprogramm unter folgendem Link herunterladen: http://trac.osgeo.org/osgeo4w/

Wenn Sie bereits eine funktionierende Python-Umgebung auf Ihrem Computer installiert haben, müssen Sie OSGeo4W nicht installieren.

Mehr Informationen zu gdal2tiles finden Sie unter https://gdal.org/programs/gdal2tiles.html.

Für die Bereitstellung der Tiles muss ein Webserver vorhanden sein.

Script für das Tiling herunterladen und installieren

Laden Sie sich das neuste Script von GitHub herunter: https://github.com/OSGeo/gdal/blob/master/gdal/swig/python/scripts/gdal2tiles.py und kopieren Sie es in den /bin-Ordner in Ihrer OSGeo4W-Installation.

Sofern Sie OSGeo4W im Standartordner installiert haben, finden Sie diesen Ordner unter C:\OSGeo4W64\bin.

Ihre Installation ist nun vorbereitet.

Ablauf eines Tilings und Einbindung in luucy

Folgende Schritte werden für die Bereitstellung von Pixelkarten ausgeführt:

  • Erstellen der VRT-Datei
  • Starten des Tilings
  • Hochladen der Tiles auf Ihren Webserver
  • Erstelle eines Layers in luucy

Erstellen der VRT-Datei

Eine VRT-Datei ist eine XML-Datei mit der Endung *.vrt, welche eine Auflistung der Bilder, sowie Metadaten beinhaltet. Mehr Informationen zu VRT finden Sie unter https://gdal.org/drivers/raster/vrt.html.

Öffnen Sie die OSGeo4W Shell und navigieren Sie in den /bin-Ordner ihrer Installation:

cd C:\OSGeo4W64\bin

Erstellen Sie die VRT-Datei mit folgendem Befehl:

gdalbuildvrt.exe "C:\Tiles\ortho.vrt" "C:\Ortho\swissImage/*.tif"

Dieser Befehl sucht sich im Ordner C:\Ortho\swissImage alle Bilddateien mit der Endung .tif und schreibt diese Informationen in eine VRT-Datei namens ortho.vrt im Ordner C:\Tiles.

Starten des Tilings

Das Tiling selber wird vom Script gdal2tiles.py ausgeführt. Mit folgendem Befehl wird der Prozess gestartet:

python C:/OSGeo4W64/bin/gdal2tiles.py --profile=mercator -s EPSG:2056 --processes=6 -z 13-21 -e -a 0,0,0 ortho.vrt "C:/Tiles/tileset/"

Das Script lädt die Datei ortho.vrt und schreibt die Tilesets in den Ordner C:/Tiles/tileset/.


Erklärung der Parameter:

–profile
Definiert das Tiling-Profil, wie z.B. mercator, geodetic oder raster.
Standard für luucy: mercator

-s EPSG:xxxx
Definiert das bei den Quelldaten verwendende Koordinatensystem. Für Daten aus der Schweiz verwenden Sie EPSG:2056 (LV95).

–processes
Definiert die Anzahl an Prozessen, welche gleichzeitig die Berechnungen durchführen. Diese Option muss mit dem Schalter -e zusammen verwendet werden.
Für einen 4-Core CPU mit 8 Threads empfiehlt sich, diese Option nicht höher als 6 einzustellen.

-z 13-21
Definiert, welche Zoomstufen gerechnet werden sollen. Für luucy empfiehlt sich die Stufen 13-21 zu erstellen. Die Zoomstufe 21 stellt eine Pixelauflösung von 7.5cm dar. Bei grossmassstäbigen Plänen reicht die Stufe 18 aus.

-e
Wenn die Option -e gesetzt wird, werden nur die Tiles gerechnet, welche noch nicht vorhanden sind. Wird diese Option nicht gesetzt, wird immer von vorne angefangen und bereits bestehende Tiles werden überschrieben. Diese Option muss zwingend gesetzt werden, falls die Option —processes benutzt wird.

-a
Definiert, welchen Farbwert als Transparenz interpretiert werden soll. Ein Wert von 0,0,0 bestimmt, dass schwarze Pixel als transparente Pixel gerechnet werden. Stellen Sie vorgängig sicher, dass in den Ausgangsdaten nur diejenigen Pixel schwarz sind, welche transparent dargestellt werden sollen.

Die Ausführungsdauer des Scripts kann je nach der Anzahl und Grösse der Eingangsdateien mehrere Stunden in Anspruch nehmen. Nachdem das Script fertig ausgeführt wurde, sind die Tilesets inkl. der Steuerdatei tilemapresource.xml im Ordner C:/Tiles/tileset/ abgelegt.

Hochladen der Tiles auf Ihren Webserver

Laden Sie den Inhalt des Ordners C:/Tiles/tileset/ nun auf Ihren Webserver hoch.
luucy muss in der Lage sein, die XML-Datei, sowie alle Bild-Daten in den entsprechenden Unterordner aufzurufen. Testen Sie es in Ihrem Browser aus.

Beispiel:
Sie haben die Daten in Ihrem Webserver im Unterordner /tms/ortho abgelegt.
Die Tilemap-Ressouce-Datei muss nun unter folgender Adresse erreichbar sein:
https://www.ihredomain.ch/tms/ortho/tilemapresource.xml

Testen Sie ebenfalls aus, ob sich eine PNG-Datei in einem beliebigen Unterordner auch anzeigen lässt.

Wenn die Daten erfolgreich aufgerufen werden können, steht der Einbindung in luucy nichts mehr im Weg.

Erstellen eines Layers in luucy

Loggen Sie sich in luucy mit Ihrem Benutzernamen und Passwort ein.
Erstellen Sie ein neues Layer im gewünschten Workspace unter der Rubrik Karten und stellen Sie es wie folgt ein:

CORS einschalten (IIS, Apache und NGINX)

In der Regel muss für den Zugriff auf den Webserver von luucy aus das CORS eingeschaltet werden.

Konfiguration für Microsoft IIS 6+:

  1. Öffnen Sie den Internet Information Service (IIS) Manager
  2. Klicken Sie mit der rechten Maustaste auf die Seite, bei welche Sie CORS einschalten möchten und wählen Sie Properties.
  3. Wechseln Sie zum Tab HTTP Headers
  4. Klicken Sie im Bereich Custom HTTP headers auf Hinzufügen
  5. Geben Sie folgendes als Headername ein: Access-Control-Allow-Origin
  6. Geben Sie als Header-Wert folgendes ein: https://luucy.ch
  7. Klicken Sie zweimal auf OK

Konfiguration für Apache

Geben Sie in der Serverkonfiguration in einem der Abschnitte Directory><Location><Files> oder <VirtualHost> folgenden Konfigurationsblock ein:

 <Directory "/path/to/tms/directory">
   <IfModule mod_headers.c>
      Header set Access-Control-Allow-Origin "http//luucy.ch"
   </IfModule>
</Directory>  

Alternativ können auch nur bestimmte Dateitypen freigegeben werden:

 <FilesMatch "\.(tif|png|jpg)$">
    <IfModule mod_headers.c>
        Header Set Access-Control-Allow-Origin "http//luucy.ch"
    </IfModule>
</FilesMatch> 

Konfiguration für NGINX:

Navigieren Sie zu Ihrer aktuellen Konfigurationsdatei, z.B.
/etc/nginx/sites-enabled/default

Geben Sie im gewünschten Abschnitt folgendes ein, um CORS zu aktivieren: add_header 'Access-Control-Allow-Origin' 'https://luucy.ch

Starten Sie NGINX neu.

Laden Sie den luucy-Workspace neu, das Orthofoto wird nun angezeigt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.