Terrain-RGB
Terrain-RGB
Terrain-RGB speichert eine Höhe pro Pixel in den drei Farbkanälen eines Bildes. So lassen sich Höhenkacheln mit gewöhnlichen Bildformaten ausliefern, und Clients wie MapLibre berechnen daraus Schummerung und 3D-Gelände.
Formel
höhe_m = -10000 + (R · 65536 + G · 256 + B) · 0,1R ist das höchstwertige Byte. Der Zahlenwert q = R·65536 + G·256 + B liegt zwischen 0 und 16 777 215, die Höhe also zwischen
−10 000 m und +1 667 721,5 m in Schritten von 0,1 m.
Dekodieren
const hoehe = (r, g, b) => -10000 + (r * 65536 + g * 256 + b) * 0.1;hoehe = -10000 + (r.astype("uint32") * 65536 + g * 256 + b) * 0.1 # r, g, b als numpy-ArraysWorauf achten
- Bildformat verlustfrei lesen. mapx liefert WebP lossless. Jede verlustbehaftete Zwischenstufe (JPEG, Farbprofil, Premultiplied Alpha, Skalierung beim Dekodieren) verfälscht die Höhe.
- Nicht interpolieren, bevor dekodiert ist. Mischen von RGB-Werten ergibt keine gemischte Höhe. Erst dekodieren, dann mitteln.
- Mapbox-kompatibel.
encoding: "mapbox"in MapLibre. Terrarium (R·256 + G + B/256 − 32768) ist eine andere Kodierung und wird von mapx nicht ausgeliefert. - 512 Pixel, kein Rand.
tileSize: 512.
Anwendung: DTM Geländemodell.