dünnschliff applikation
  • HTML 91.8%
  • Shell 8.2%
Find a file
2026-05-29 10:09:44 +02:00
.gitignore Initial commit 2026-05-27 15:34:51 +02:00
build-cog-map.sh Update build-cog-map.sh 2026-05-27 15:41:36 +02:00
index.html Add index.html 2026-05-27 15:35:37 +02:00
LICENSE Initial commit 2026-05-27 15:34:51 +02:00
README.md Update README.md 2026-05-29 10:09:44 +02:00
tif-index.json Upload files to "/" 2026-05-27 15:38:26 +02:00

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

ardigeos Anwendung


Dünnschliffe

Verfügbare Datensätze:

1  13.xxx

Beispiel:

Dünnschliff Viewer


Geosphere Maps

Geosphere Maps Dünnschliffe


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.