GNavigia - Hill shading
Schummerung aus SRTM V3 Daten lokal erzeugen
Unter Schummerung versteht die Kartografie, ein Zweig der Geodäsie, die
partielle Abschattung von Bildelementen zur Erzeugung eines räumlichen Eindrucks. Die OSM-Gemeinde hat über
viele Jahre Kacheln zur Verfügung gestellt, die eine Schummerung realisieren. Diese teiltransparenten Bilder
kann schon seit langer Zeit verarbeiten, das rechte der beiden Doppelbilder
zeigt OSM-Daten im Wikipedia Layout als Overlay.
Leider werden die OSM-Kacheln immer restriktiver gehandhabt, was auf die enormen Kosten zurück zu führen ist,
die die Server im Unterhalt und Datentransfer kosten. Daher ruft keine Daten ab, die nicht in einem Cache gespeichert
werden können. Da die Schummerung ein immens langlebiges Produkt ist, liegt es nahe, diese in Form von
Kacheln selbst zu berechnen, zumal der Benutzer ja für die OSM-Kacheln i. d. R. bereits einen Cache (Zwischenspeicher) vorgesehen hat. Das aktuelle
Layout ist im linken Bild zu sehen. Insgesamt wirkt das Bild dunkler, aber auch plastischer, realer und vor allem schärfer als das OSM-Pendant. Wie ist das Bild entstanden?
Keine Sorge! Was jetzt folgt ist bereits implementiert und wird mit Sobald Sie einen
Ordner für den Cache, also die Ablage der von fremden Servern geladenen Daten, angeben, können Sie auf die
Funktionalität zugreifen. Setzen Sie
- GNAVIGIA_SRTM_CACHE
- Die horizontale Position (Richtung) der Lichtquelle, in Grad gegen geografisch Nord gezählt.
- Die vertikale Position (Richtung) der Lichtquelle, in Grad gegen die Vertikale (Zenit) gezählt.
- Die Größe einer sogenannten «Zelle», die die Helligkeit bestimmt.
- Der Z-Faktor, der die (virtuelle) Überhöhung steuert.
- Eine Maske zur Glättung der Daten, immer ein unrunder Wert, Minimum 1.
- Ein Wert, der die «maximale Dunkelheit» angibt, also eine Skalierung.
- Ein Schwellwert, der angibt, ab welchem Helligkeitswert «volle Helligkeit» angenommen wird.
Warum noch eigene Parameter hinzu erfinden? Es ist eine Besonderheit der Schummerung, dass sie sich als Bild mit hinreichender Transparenz über die Karte legt, die lesbar «hindurch scheinen» muss. Denn die einzelne Kachel besteht aus einer einzigen Farbe: Schwarz. Die Helligkeit entsteht durch Transparenz, die von 0-255 abgestuft ist. Würde man die Schummerung auf den vollen Wertebereich beziehen, gäbe es komplett schwarze Bereiche, die keinerlei Schrift und Zeichnung durchlassen. Also muss man dem Einhalt gebieten, indem man die maximale Dunkelheit begrenzt. Zudem macht es sich gut, wenn man weitgehend flache Gebiete mit 100% Transparenz darstellt, sonst werden Flüsse, Seen und Meere grau. Schneidet man die Helligkeit zu früh ab, wirken die Übergänge zwischen steigendem und fallendem Gelände sichtbar unnatürlich.
Der einzige Parameter, der für alle Zoomstufen derselbe ist, ist die horizontale Position (Richtung) der Lichtquelle. Sie ist auf -45° gegen geografisch Nord festgelegt. Dies entspricht unserem Empfinden - und nur darum geht es: Schummerung ist eine Illusion, die auf der Erfahrung beruht, dass Licht (beim Schreiben) von links vorne kommt und nach rechts unten Schatten wirft. Beleuchtet man die Dinge (oder die Landschaft) von unten, wie es der Normalfall bei Luftbildern ist, entsteht im Kopf ein Bild, das die Täler erhaben und die Bergkämme abgesenkt erscheinen läßt, ein «pseudoskopischer» Eindruck.
Es verwundert daher nicht, dass den hier publizierten Parametern etwa 50 Stunden «voll krasses Rumfummeln» zugrunde liegen, wie es die junge Generation ausdrücken würde. Aber das ist nicht die ganze Story, denn man muss sich ja auch die Frage stellen, wie lange man bereit ist, auf ein Ergebnis auf einem 1920x1200er Monitor zu warten. Dazu muss man die Datenquelle betrachten, wie sie abgerufen wird, wie viele Aufrufe man benötigt etc.
Ausflug in die Historie
Für die nachfolgenden Erläuterungen gilt ganz allgemein, dass Sie sich heute die Daten vom USGS per login besorgen müssen. Benutzen Sie für Europa die EU-DEM Daten, die Sie zwar auch laden müssen, allerdings geht das etwas einfacher.
SRTM V2 war eine Revolution. Zum ersten Mal konnte man ein digitales Höhenmodell kostenlos abrufen und daraus weitere Produkte ableiten. SRTM V3 («no voids») ist Evolution und Revolution zugleich. Evolution, weil man die aus den frühen Daten nicht ermittelbaren Unstetigkeits- oder Leerstellen («voids») aus anderen Remote Sensing Quellen hinzuermittelt hat. Revolution, weil man als Anwender annahmefrei jeden beliebigen Punkt innerhalb des Gültigkeitsbereichs ermitteln kann. (Bis vor kurzer Zeit wurden die Daten vom U.S. Geological Survey (USGS) gehostet.) Allerdings ist das Format noch nicht alltagstauglich. Warum? Soll ich das erklären? «Musst Du immer so weit ausholen?», hätten meine Kinder früher mit demonstrativ gelangweiltem Gesicht gefragt. Bevor Sie mit vergleichbar gelangweiltem Gesicht vor dem Rechner sitzen und auf ein Hintergrundbild warten, erkläre ich es vielleicht doch:
- SRTM-Daten werden in Portionen zu 1° x 1° erstellt und im Motorola «big endian» 2-Byte-Format abgelegt, wo man jedes Byte noch einmal herumdrehen muss, bevor man es nutzen kann. Die Datei wird gepackt ausgeliefert. Mit zwei Byte lassen sich ±32.768 Zustände unterscheiden, weshalb die Auflösung in der Höhe 1 m beträgt.
- Für den o. a. Monitor benötigt man etwa 40 Kacheln.
- Die Berechnung einer Kachel von 256x256 Pixeln² benötigt etwa 0,5 Sekunden, sofern die Höhendaten geladen sind, also 20 Sekunden (oder 1 Sekunde, wenn aus dem Cache verfügbar).
- In der Zoomstufe 7 deckt jede Kachel einen Bereich von 3°x3° ab. Also muss man pro Kachel bis zu 9 Dateien laden. Das dauert 1 Sekunde/Datei, also 9 Sekunden, sofern nicht im SRTM-Cache verfügbar.
Damit Sie vestehen, was passiert, wenn Sie SRTM-V3 Daten anfordern, hier ein kleiner Exkurs in die Datenhaltung des USGS. Anders als noch bei der V2-Serie werden komplett «leere» Kacheln nicht mehr gespeichert sondern als «nicht vohanden» oder, im Klartext, als HTTP-Return Code «404» ausgewiesen. Diese Kacheln soll das Programm natürlich nicht immer wieder anfragen; vielmehr gilt es, sich diese zu merken und vorab aus den Anfragen herauszufiltern. Die Datei «CacheV3-Code404.txt» im SRTM-Cache speichert die Informationen. Sie ist zugleich Bestandteil der Installation und wird mit der Datei vor Ort abgeglichen, will heißen, dass die bisher als fehlend bekannten Dateien zu denen hinzu gefügt werden, die der Benutzer bereits gesammelt hat. Das minimiert die Zugriffe auf fehlende Dateien, auch wenn der Server erfahrungsgemäß recht schnell mit 404 antwortet. Der Vollständigkeit halber sei erwähnt, dass Punkte in fehlenden Dateien als Höhe «0.0» behandelt werden.
Allgemeines zu SRTM V3 Dateien
SRTM-Dateien werden nach den Gradzahlen der linken unteren Ecke nummeriert. Bonn (7,1° östl. Länge/50,7° nördl. Breite) fällt demnach in die SRTM-Datei, die mit «N50E007» beginnt. Meist kommt noch ein Suffix hinzu, das auf die Art des Inhalts hinweist. Wo sich die SRTM-Datei befindet, ist in der Datei GNavigiaDigitalElevation.xml abgelegt, die sich im Verzeichnis der Installation befindet. SRTM-Daten sind von Natur aus auf einen gewissen, mittleren Bereich der Erde beschränkt, der jemandem, der mit dem Fahrrad von Bonn zum Nordkapp fährt, nicht gefallen wird. Im Norden reicht er gerade bis zur Nordspitze der großen schwedischen Seen, bis Oslo und Stockholm. Dann ist Schluss. In Zahlenwerten bedeutet das, dass N60E... bereits als fehlend eingetragen ist. Im Süden ist der Bereich noch etwas geringer. Aber dort enden die interessanten Teile der Erde bereits bei 34° Süd (Südafrika), 43° Süd (Tasmanien) und 55° Süd (Macquarie Island, Tasmanien), sodass aus Sicht englisch sprechender Gesellen alle wesentlichen Landmassen erfasst sind. Daraus ergeben sich nominell 41400 Höhendateien zum Download. Das Maximum einer gezippten Datei ist 1,4 MB. Viele Dateien sind kleiner. Tatsächlich verbleiben, wenn man das Inhaltsverzeichnis des USGS-Servers genauer untersucht, 14297 Dateien, die zu laden wären, wenn man die Zoomstufe 0, 1, 2 oder 3 darstellen wollte. Da das Inhaltsverzeichnis auch die Größe der einzelnen Dateien ausweist, berechnet man 13,7 GB für alle Datensätze.Man könnte nun meinen, dass es vollkommen ausreicht, die 30"-Dateien des USGS zu laden, wenn die Zoomstufe in diesen Bereich (kleine Zahl) vorstößt. Leider sind diese deutlich kleineren Dateien (noch) nicht mit dem Prädikat «no voids» versehen worden, sodass nicht klar ist, welchen Zustand sie aufweisen. Für den hier zur Anwendung kommenden Quellcode ist ein fehlerfreier Datensatz zwingend notwendig. Der aktuell zur Anwendung kommende ist ein 3" Datensatz. Das entspricht einem Abstand von 90 Metern am Äquator.
Um Neid oder Genauigkeit in die Höhe zu treiben: Zur Unterstützung Afrikas hat die US Regierung im September 2014 den originären, überarbeiteten SRTM-Datensatz mit einer Auflösung von 1" freigegeben. Damit lassen sich die Höhen zwischen Punkten mit einem Abstand von 30 Metern berechnen. Wegen der 9-fach größeren Datenmenge wird diese Auflösung von
aber nicht unterstützt.Die aktuellen Parameter: Die Zoomstufen 1-3 sind experimentell und definitiv nicht für den Gebrauch geeignet.
Zoom | Zenitdistanz | Maske | Hellwert | Zelle | Z-Faktor | Dunkelwert | Version |
1 | 50.0 | 3 | 50 | 120 | 2.0 | 100 | - |
2 | 50.0 | 3 | 50 | 120 | 2.0 | 100 | - |
3 | 50.0 | 3 | 50 | 120 | 2.0 | 100 | - |
Zoom | Zenitdistanz | Maske | Hellwert | Zelle | Z-Faktor | Dunkelwert | Version |
4 | 50.0 | 3 | 50 | 120 | 2.0 | 100 | - |
5 | 45.0 | 3 | 50 | 120 | 2.0 | 100 | - |
6 | 45.0 | 1 | 50 | 100 | 2.0 | 100 | - |
7 | 45.0 | 1 | 40 | 80 | 2.0 | 100 | 5.0 |
8 | 45.0 | 1 | 40 | 60 | 2.0 | 100 | 5.0 |
9 | 35.0 | 1 | 35 | 40 | 2.0 | 100 | 5.0 |
10 | 35.0 | 3 | 30 | 25 | 2.0 | 100 | 5.0 |
11 | 40.0 | 3 | 30 | 15 | 2.0 | 100 | 5.0 |
12 | 40.0 | 5 | 25 | 10 | 2.0 | 100 | 5.0 |
13 | 35.0 | 7 | 25 | 10 | 2.0 | 120 | 5.0 |
14 | 40.0 | 19 | 30 | 8 | 2.3 | 120 | 5.0 |
15 | 45.0 | 25 | 40 | 6 | 2.8 | 120 | 5.0 |
Die Spalte «Version» gibt an, ab wann
die Zoomstufe unterstützen wird.Die Welt auf einem Bild
Will man die ganze Welt inklusive Schummerung
auf eine Seite bannen, benötigt man experimentelle Zoomstufen: Die Stufe 4 muss, selbst wenn alle SRTM-Dateien
im Cache sind, so viele Dateien «anfassen», dass pro Kachel 30 Sekunden benötigt werden. Jedes der beiden folgenden
Doppelbilder hat insgesamt 4 Minuten für die Darstellung benötigt. Wer die Daten auf eine SSD legt, kommt schneller
zu Rande. Die CPU spielt da eher eine untergeordnete Rolle.
Die beiden Doppelbilder
unterscheiden sich in der Maske, die die Glättung der Schummerung bestimmt. Bieten die Stufen 6-9 ohne Glättung
knackscharfe Bilder, so wird der Eindruck bei Stufe 4 schnell pixelig. Schlecht gebackenes Vollkornbrot sieht
ähnlich aus. Schrift wird verschluckt und der Duktus kommt grob daher. Die Glättung mit einer Maske von 3x3 Pixeln
hingegen wirkt dezent und dennoch bestimmend. Die Alpen zeichnen sich klar und deutlich ab, wirken aber nicht so,
als seien sie gerade erst aufgefaltet worden. Nicht zuletzt wegen der besseren Lesbarkeit von Schrift werden
die Stufen 1-4 mit einer Maske von 3 ausgeliefert.
Wenn Sie alles verstanden haben, können Sie die Berechnung einer Schummerung auf Skandinavien (Norwegen, Schweden, Finnland) ausdehnen. Wie das geht, ist auf unserer Seite über das Programm zur Umwandlung von EU-DEM nach SRTM ausführlich beschrieben.