5.3 KiB
ardigeos
Cloud-Optimized GeoTIFF (COG) Workflow für Dünnschliff-Scans mit GDAL, OpenLayers und QGIS.
Überblick
Dieses Projekt konvertiert hochauflösende Dünnschliff-Scans in performante Cloud Optimized GeoTIFFs (COGs) inklusive Overviews/Pyramidenstufen für Web-Visualisierung und GIS-Anwendungen.
Die erzeugten Dateien:
- sind deutlich kleiner als die Originale
- besitzen echte TIFF-Overviews
- sind webbasiert performant streambar
- funktionieren direkt mit OpenLayers/QGIS
Workflow
1. Höchste Auflösung aus Subdataset extrahieren
Die Originaldaten enthalten mehrere interne Auflösungsstufen als Subdatasets.
Zuerst wird nur die höchste Auflösung extrahiert:
gdal_translate \
GTIFF_DIR:1:/scans/thinsect/1/101.tif \
base.tif \
-co TILED=YES \
-co COMPRESS=JPEG \
-co QUALITY=75
👉 Ergebnis: das neue Masterbild (base.tif)
2. Overviews erzeugen
Anschließend werden echte TIFF-Overviews erstellt.
gdaladdo -r average base.tif 2 4 8 16 32
Dies entspricht den ursprünglichen Pyramidenschritten:
34576 → 17288 → 8644 → …
Vorteile
- gleiche Struktur wie die Originaldaten
- echte TIFF-Pyramiden
- vollständig COG-kompatibel
- deutlich bessere Web-Performance
3. Cloud Optimized GeoTIFF erzeugen
gdal_translate \
base.tif \
cog_final.tif \
-of COG \
-co COMPRESS=JPEG \
-co QUALITY=75 \
-co COPY_SRC_OVERVIEWS=YES
Ergebnis
- ca. 1/3 kleinere Dateien
- interne Tile-Struktur optimiert
- echte COG-Overviews statt proprietärer Pyramiden
Beispiel: gdalinfo
gdalinfo /scans/thinsect/cog_out/1/1.tif
GeoTIFF / COG Metadaten
Allgemeine Informationen
| Eigenschaft | Wert |
|---|---|
| Driver | GTiff / GeoTIFF |
| Datei | /scans/thinsect/cog_out/1/1.tif |
| Größe | 37264 × 21744 px |
| Layout | COG (Cloud Optimized GeoTIFF) |
TIFF Metadaten
| Schlüssel | Wert |
|---|---|
| TIFFTAG_IMAGEDESCRIPTION | Objective Imaging, AppMag = 4 | MPP = 1.2320 | Q = 75 |
| TIFFTAG_XRESOLUTION | 8116 |
| TIFFTAG_YRESOLUTION | 8116 |
| TIFFTAG_RESOLUTIONUNIT | 3 (pixels/cm) |
Image Structure Metadata
| Eigenschaft | Wert |
|---|---|
| LAYOUT | COG |
| SOURCE_COLOR_SPACE | YCbCr |
| COMPRESSION | YCbCr JPEG |
| INTERLEAVE | PIXEL |
| OVERVIEW_RESAMPLING | AVERAGE |
| JPEG_QUALITY | 75 |
| JPEGTABLESMODE | 1 |
Overviews
Alle drei RGB-Bänder besitzen identische Pyramidenstufen:
18632 × 10872
9316 × 5436
4658 × 2718
2329 × 1359
1164 × 679
582 × 339
291 × 169
Blockgröße:
512 × 512
Batch-Konvertierung aller Dünnschliffe
Konvertierung aller TIFF-Dateien in mehreren Verzeichnissen mit GNU Parallel:
nohup bash -c '
for dir in 49 50 51 52; do
find /scans/thinsect/$dir -name "*.tif" | parallel \
--bar \
--joblog conversion_${dir}.log \
"
file={}
name=\$(basename \"\$file\" .tif)
gdal_translate \
\"GTIFF_DIR:1:\$file\" \
\"/scans/thinsect/cog_out/13/\${name}.tif\" \
-of COG \
-co COMPRESS=JPEG \
-co QUALITY=75 \
-co RESAMPLING=AVERAGE
"
done
' > conversion.out 2>&1 &
Index-Datei erzeugen
Nach der Konvertierung:
gdalinfo /scans/thinsect/cog_out/1/1.tif
Danach die JSON-Indexdatei generieren:
sudo /usr/local/bin/build-cog-map.sh
Erzeugt:
/var/www/html/tif-index.json
Webviewer
NGINX konfigurieren
- statische TIFF-Dateien bereitstellen
- CORS aktivieren
- Byte-Range Requests erlauben
OpenLayers Frontend
Anschließend index.html mit OpenLayers + GeoTIFF-Plugin erstellen.
Anwendungen
QGIS-generierte Anwendung
Dünnschliffe
Verfügbare Datensätze:
1 – 13.xxx
Beispiel:
Geosphere Maps
Technologien
- GDAL
- Cloud Optimized GeoTIFF (COG)
- GNU Parallel
- OpenLayers
- QGIS
- NGINX
Ziel
Performante Bereitstellung hochauflösender Dünnschliff-Scans direkt im Browser — ohne klassische Tile-Server-Infrastruktur.