Förderjahr 2023 / Projekt Call #18 / ProjektID: 6745 / Projekt: weBIGeo
Im ersten Teil dieses Blogposts haben wir erläutert wie wir WebGL und Fragment Shader für Echtzeitberechnung von Datenoverlays einsetzen können. Die Einschränkung ist, dass wir Daten nur pixelweise auswerten und keine Berechnungen über größere Regionen ausführen können. Diese Einschränkung kann durch die Verwendung von WebGPU, einer neuen Grafik-API für das Web, gelöst werden. WebGPU bietet erstmals die Möglichkeit im Browser Compute Shader auszuführen. Compute Shader arbeiten unabhängig der zu zeichnenden Geometrie und ermöglichen damit flexible und effiziente parallele Datenverarbeitung. Interessant sind Compute Shader für alle Probleme, die parallelisiert werden können. Für die Datenanalyse sind das alle Aufgabenstellungen für die man die Daten beliebig unterteilen kann und diese Datenteile dann unabhängig voneinander analysieren kann.
In diesem Blogpost zeigen wir die vielfältigen Möglichkeiten, die uns Compute Shader für geographische Datenvisualisierung bieten – und das alles direkt im Browser!
Positionsdaten: Wind und Wetter
Positionsdaten repräsentieren Objekte, die mit geographischen Koordinaten und weiteren Attributen assoziiert sind. Auf einer interaktiven 3D Karte möchten wir einen Überblick bekommen wie sich die Objekte räumlich verteilen, welche Eigenschaften sie haben, und bei Bedarf so nah heranzoomen, dass einzelne Objekte im Detail inspiziert werden können. Ein Beispiel wäre die Visualisierung von Messdaten aller Wetterstationen in Österreich: Ausgewählte Messgrößen (z.B. Temperatur, Windstärke etc.) können räumlich, je nach Distanz zur Kamera, zusammengefasst (aggregiert) werden um einen Gesamtüberblick zu gelangen. Zusätzlich sollte man die Möglichkeit haben, Messstationen oder Messdaten anhand bestimmter Kriterien auszuwählen (filtern). Mit dem Climate Change Explorer konnten wir beispielsweise erstmals zeigen wie wir Millionen von Temperaturmesswerte in Echtzeit auf einer 2D Karte zusammenfassen, über die Zeit filtern und direkt als Overlay anzeigen können. Geosphere Austria bietet etwa verschiedene Messwerte von Wetterstationen über lange Zeitspannen hinweg als Open Data an.
Geometriedaten: alle Wege führen auf den Gipfel!
Zusammenhängende Positionsdaten, etwa in der Form von GPS-basierten Bewegungsdaten oder Vektordaten, die das Netz von Wanderwegen in Österreich darstellen, werden in großer Zahl erhoben. Die Stadt Wien veröffentlicht beispielsweise ihr Wanderwegnetz als Open Data. Bekannte Tourenplattformen zeigen alle Touren ihrer Datenbank im sichtbaren Bereich der Karte als Symbole. Erst durch aktives Anklicken wird die eigentliche Route angezeigt. Es wurden bereits viele Ansätze vorgestellt wie eine große Anzahl von Bewegungsdaten effektiv aggregiert (d.h. zusammengefasst) dargestellt werden können. Auch das Filtern von Bewegungsdaten anhand vordefinierter Kriterien ist ein wichtiges Feature. Mit Hilfe von Compute Shadern wäre die Berechnung einer solchen Darstellung nun auch in Echtzeit im Browser möglich.
Simulationen: das Gelände als Datenquelle
Nicht nur die Visualisierung von Punkt- und Geometriedaten ist als Overlay interessant. Auch die Geländeformen selbst – d.h. die Daten, die wir zur Darstellung unserer 3D Basiskarte heranziehen – können analytisch ausgewertet werden. Mit Hilfe von 3D Geländeformen ist es beispielsweise möglich, Lawinen oder Überschwemmungen zu simulieren und direkt (in-situ) zu rendern oder nach der Simulation (post-hoc) als Datenoverlays zu visualisieren. Die Geländedaten sind selbstverständlich als Open Data verfügbar.
Die Steilheit, die hier angezeigt wird, kann isoliert pro Pixel in einem Fragment Shader ausgewertet werden. Für Simulationen muss allerdings eine größere Region analysiert werden, was nur mit Compute Shader sinnvoll möglich ist (Basiskarte und Overlay: AlpineMaps.org).
Alles zusammen: Licht und Schatten
Natürlich ist es möglich alle diese Daten auch miteinander zu verbinden. Beispielsweise könnte man die Positionen von allen Photovoltaik- und Solaranlagen in Österreich mit dem aktuellen Sonnenstand und dem Schattenwurf des umliegenden Geländes auswerten. Zusätzlich könnte man auch Rasterdaten (oder „Grid Daten“) heranziehen - etwa die aktuell vorhergesagte Bewölkungssituation abbilden. Solche Daten werden etwa über das Nowcastingsystem INCA der Geosphere Austria öffentlich zur Verfügung gestellt.
Die Qual der Wahl
weBIGeo soll keine spezialisierte Anwendung werden, wie etwa ein 3D Wegeregister, sondern vielmehr eine flexible Plattform um Anwendungen wie oben skizziert umzusetzen. Nichtsdestotrotz möchten wir am Ende des Projektes eine Demoanwendung haben, die die Stärke von weBIGeo eindrücklich aufzeigt.
Ein limitierender Faktor bei der Auswahl eines aussagekräftigen Szenarios ist tatsächlich die Größe der verfügbaren Daten. Im Moment ist unsere Anwendung aufgrund der Verfügbarkeit der Höhendaten und Flugbilder, sowie unserer limitierten Serverkapazitäten, auf Österreich beschränkt. Die Anzahl der Wetterstationen innerhalb von Österreich liegt im dreistelligen Bereich, und die Aggregierung von so wenigen Messdaten bedarf eigentlich keiner parallelen Verarbeitung. Auch das Wegenetz und die Positionen von Photovoltaikanlagen sind leider nur punktuell verfügbar. Das interessanteste Szenario umfasst daher die Auswertung der Geländedaten:
Im ersten Teil dieses Blogs haben wir beschrieben wie wir das lokale Lawinenrisiko pro Bildschirmpixel berechnen können, jedoch keine Möglichkeit haben die Umgebung eines Geländepunktes in Echtzeit auszuwerten. Mittels Compute Shader können wir dieses Problem nun lösen. Das Ziel ist, entlang eines beliebigen GPX-Tracks das Lawinenrisiko auszuwerten – was mit unserer bestehenden Methode bereits möglich ist. Zusätzlich aber können wir nun berechnen welche umliegenden Regionen im Einflussbereich des Tracks liegen – d.h. je nach Lawinenwarnstufe im unmittelbaren Nahbereich, oberhalb oder innerhalb derselben Geländekammer – und ob sie ein Risiko für den Track darstellen. Diese Auswertung kann parallel für alle Punkte entlang des Tracks ausgeführt werden nachdem er geladen wurde und direkt graphisch ausgegeben werden.
Wie groß ist das Risiko entlang dieser Route von einer Lawine verschüttet zu werden? Mittels Compute Shader kann die Umgebung des Tracks in Echtzeit ausgewertet werden. (Basiskarte: AlpineMaps.org, Track Rendering: Jakob Maier)
Natürlich wäre es konzeptionell auch möglich (und auch höchst interessant!) komplexere Lawinen- oder Hochwassersimulationen durchzuführen, wie etwa im Projekt avaFrame. Eine solche Simulation bedarf einer Menge Spezialwissen, das in unserem kleinen Projektteam momentan nicht vorhanden ist. Wir hoffen jedoch, dass weBIGeo in Zukunft für Anwender_innen aus diesem und ähnlichen Feldern eine interessante Plattform für Echtzeitsimulationen bietet.