In einem ersten Post habe ich die Grundlagen der Visualisierungs- und Animationsumgebung Processing kurz erläutert. Im zweiten Post habe ich dann eine statische Geovisualisierung am Beispiel von Erdbebendaten demonstriert:
In diesem Post möchte ich nun aber mehr auf die Fähigkeiten von Processing eingehen, Animationen zu erstellen. Wie ich schon im ersten Post über Processing erklärt habe, besteht jedes Processing-Projekt bzw. -Sketch aus zwei Teilen:
In der setup-Methode werden grundlegende Eigenschaften der Sketch definiert, in der draw-Methode werden dann Dinge in die Sketch gezeichnet. Standardmässig wird die draw-Methode immer wieder aufgerufen, so dass man mit Processing einfach Animationen anfertigen kann (oder interaktive Sketches, wie in diesem Beispiel).
Diese Animationsfähigkeit möchte ich nun anhand der Erdbebendaten aus dem letzten Post demonstrieren. Die Daten sollen auf der Zeitachse animiert werden. Als kleinste Zeiteinheit habe ich einen Tag gewählt. Die Erdbeben-Daten wurden dann einfachheitshalber so aufbereitet, dass ein neues Attribut den Tag im Jahr speichert (also von 1 bis 365 hochzählt).
In einem ersten Versuch hat die Processing-Sketch den Zeitraum eines Jahres durchlaufen und jeweils diejenigen Erdbeben in der Karte gezeichnet, welche am aktuellen Tag aufgezeichnet worden sind. Diese Darstellung konnte schon die raumzeitliche Dynamik des Phänomens zeigen, war aber relativ chaotisch, da Erdbeben jeweils nur sehr kurz aufleuchteten, sich gegenseitig überlagerten und die Informationsfülle verwirrend war.
In der zweiten Version habe ich dann folgende Massnahmen getroffen, welche die Darstellung deutlich aufgewertet haben und welche auch für andere dynamische Visualisierungen adaptiert werden können:
- Erdbeben werden mit einem Symbol dargestellt, das proportional zu ihrer Stärke (Magnitude) ist. Dadurch werden Erdbeben differenziert und die vielen kleinen Beben treten zugunsten der wirklich grossen Beben in den Hintergund.
- Die Erdbeben-Symbole erhielten eine Teil-Transparenz. Dadurch werden sich überlagernde Erdbeben ebenfalls sichtbar.
- Die Erdbeben-Symbole leuchten nicht nur beim Durchlaufen des aktuellen Tages auf, sondern sie erscheinen plötzlich und verblassen dann über eine relativ kurze Dauer. Dadurch wird die Darstellung in der Wahrnehmung etwas geglättet und erscheint weniger chaotisch oder verwirrend. Das Verblassen wird über Transparenz gesteuert. Gleichzeitig habe ich auch den Farbwert von Rot zu Grau verändert, was die Sichtbarkeit der etwas zurückliegenden Erdbeben weiter vermindert.
- Die Ränder der Darstellung erhalten dynamische Histogramme. Die Histogramme zeigen pro 10°-Intervall die Verteilung der Erdbeben über die geographische Länge und geographische Breite. Die Histogramme sind relativ, d.h. der Balken, der beim aktuellen Zeitstand am meisten Erdbeben repräsentiert, hat immer maximale Länge. Durch diese dynamische Skalierung (Histogramm-Spreizung) ist das Histogramm immer sehr informativ. Weiter glättet das Histogramm die Werte etwas über die Zeit, denn sie basieren auf einer (kleinen) zeitlichen Mittelung. (Die Mittelung tritt übrigens anfang des Jahres bzw. der Animation natürlich mangels Werten noch nicht in Erscheinung. Deshalb wirken die Histogramme in den ersten paar Frames des Films noch etwas nervöser.)
- Ein Zeitbalken zeigt dynamisch und einfach verständlich den Zeitstand der Animation an.
- Eine Legende verdeutlicht die verwendeten Massstäbe bei der Skalierung der Erdbeben-Symbole.
Das Resultat können Sie unten eingebettet bzw. falls das in Ihrem Browser nicht funktioniert auf Vimeo als Video betrachten:
Earthquakes in 2009 – Animated geovisualization from Geo@EBP on Vimeo.
Ich hoffe, Sie haben anhand dieser Demonstration gesehen, dass Processing ein grosses Potential für dynamische (Geo-)Visualisierungen aufweist. Es können beliebige Phänomene und Geometrietypen (Punkt, Linie, Polygon) visualisiert werden. Sogar Visualisierungen in 3D sind möglich.
Vielleicht haben Sie selbst Daten mit Raum- und Zeitdimension, die Sie gerne so visualisieren würden?