Animierte Zeitreihen-Daten (QGIS3)

Zeit ist ein wichtiger Bestandteil vieler Geodatensätze. Neben Ortsinformationen bietet die Zeit eine weitere Dimension für die Analyse und Visualisierung von Daten. Wenn wir mit einem Datensatz arbeiten, der Zeitstempel enthält, oder bei dem Beobachtungen in mehreren Zeitschritten aufgezeichnet wurden, können wir ihn mithilfe der Zeitsteuerung in QGIS problemlos visualisieren. die Zeitsteuerung erlaubt uns, Datenscheiben zwischen bestimmten Zeitintervallen anzuzeigen und zu exportieren, die zu Animationen kombiniert werden können.

Bemerkung

Die Zeitsteuerung ist ab der Version 3.14 von QGIS verfügbar. Für ältere Versionen von QGIS bietet der TimeManager ähnliche Funktionalitäten.

Überblick über die Aufgabe

Wir werden einen Punktlayer von Piraterievorfällen auf See verwenden, eine Heatmap-Visualisierung und eine Animation erstellen, wie sich die Hotspots der Piraterie in den letzten 2 Jahrzehnten verändert haben.

Weitere Fähigkeiten, die wir erlernen:

  • den Verteilungskarten- oder Heatmap-Renderer für die schnelle Visualisierung dichter Punktkarten verwenden

  • Karten-Projektionen erstellen oder verwenden

Beschaffung der Daten

Das Portal Maritime Safety Information der National Geospatial-Intelligence Agency der USA bietet ein Shapefile aller Vorfälle von Piraterie auf den Meeren in Form von Anti-shipping Activity Messages an. Wir laden die Version Arc Shapefile der Datenbank herunter.

Bei Natural Earth findet man verschiedene globale Vektorlayer. Wir laden folgenden Layer mit Polygonen der Länder herunter: 10m Physical Vectors - Land.

Der Einfachheit halber können auch Kopien der oben genannten Layer unter folgendem Link heruntergeladen werden:

ASAM_shp.zip

ne_10m_land.zip

Datenquelle: [NGA_MSI] [NATURALEARTH]

Arbeitsablauf

  1. Wir suchen im Browser-Bereich das Verzeichnis, in dem die heruntergeladenen Daten gespeichert sind. Wir erweitern die Datei ne_10m_land.zip, wählen den Layer ne_10m_land.shp und ziehen den Layer in den Arbeitsbereich. Als nächstes suchen wir die Datei ASAM_shp.zip, erweitern sie und ziehen den Layer asam_data_download/ASAM_events.shp in den Arbeitsbereich.

../../_images/1.png
  1. Nach dem Laden der Layer werden Punkte dargestellt, die einzelne Vorfälle von Piraterie verorten. Es gibt tausende von Vorfällen, und es ist kompliziert, Bereiche mit mehr Piraterie gegen solche mit weniger abzugrenzen. Zur Visualisierung eignen sich Verteilungskarten besser als einzelne Punkte. Wir wählen den Layer ASAM_events und klicken den Button Layergestaltungsfenster öffnen im Layer-Panel. Wir öffnen die Dropdown-Liste Einzelsymbol.

../../_images/2.png
  1. Hier wählen wir Heatmap und danach Viridis aus der Liste für den Farbverlauf.

../../_images/3.png
  1. Den Wert für den Radius setzen wir auf 5.0. Unten im Fenster erweitern wir den Bereich Layergestaltung und setzen die Deckkraft auf 75.0 %. Das ergibt einen netten Effekt zur Visualisierung der Hotspots mit dem darunterliegenden Layer der Länder.

../../_images/4.png
  1. Nun wollen wir die Daten animieren, um eine Karte der jährlichen Piraterie-Vorfälle zu erstellen. Wir öffnen das Kontextmenü für den Layer ASAM_event mit einem Rechtsklick und wählen Eigenschaften....

../../_images/5.png
  1. Im Dialog Layereigenschaften wählen wir den Bereich Zeitlich und setzen die Option Dynamische Zeitsteuerung.

../../_images/6.png
  1. Die Quelldaten enthalten das Attribut dateofocc - hier ist das Datum gespeichert, an dem der Vorfall auftrat. Dieses Feld werden wir benutzen, um die Punkte zu bestimmen, die innerhalb einer bestimmten Zeitspanne angezeigt werden. Wir wählen Einzelfeld mit Datum/Zeit unter Konfiguration und dateofocc als Feld.

../../_images/7.png
  1. Neben dem Layernamen wird nun ein Uhren-Symbol angezeigt. Wir klicken auf das Icon für das Zeitsteuerungsfenster (Uhrensymbol) in der Kartennavigationswerkzeugleiste.

../../_images/8.png
  1. Wir klicken auf Animierte Zeitnavigation (Abspielen-Icon), um die Steuerungselemente für die Animation zu aktivieren und anschließend auf Auf ganzen Bereich setzen (Aktualisieren-Icon) neben Animationsbereich, um den Zeitbereich automatisch auf den Bereich zu setzen, der im Datensatz enthalten ist.

../../_images/9.png
  1. Die Vorschau der Animation ist nun fertiggestellt. Wir setzen Schritt auf 1 Jahr und klicken danach den Abspielen-Button, um die Animation zu starten.

../../_images/102.png

Bemerkung

Wenn die Animation zu schnell abläuft, kann die Abspielrate durch Klick auf Zeiteinstellungen (gelbes Zahnrad) rechts oben im Zeitsteuerungsfenster angepasst werden. Eine Verringerung der Abspielrate (Bilder pro Sekunde) verlangsamt die Animation.

  1. Es könnte hilfreich sein, die aktuelle Zeitscheibe in einem Rahmen auf der Karte anzuzeigen. Wir können dies umsetzen, indem wir die eingebaute Titel-Anzeige verwenden. Dazu wählen wir Ansicht ‣ Dekorationen ‣ Titelbeschriftung….

../../_images/112.png
  1. Wir aktivieren die Option Titelbeschriftung aktivieren und klicken auf den Button Einen Ausdruck einfügen oder bearbeiten…. Dort geben wir den folgenden Ausdruck ein, um das Jahr anzuzeigen. Die Variable @map_start_time enthält den Zeitstempel der aktuell angezeigten Zeitscheibe. Wir können diesen Zeitstempel also verwenden, um das betreffende Jahr anzuzeigen. Vgl. die QGIS-Dokumentation bezüglich der Details der unterstützten Formatierungsoptionen für den Zeitstempel.

format_date(@map_start_time, 'yyyy')
../../_images/122.png
  1. Wir wählen in der Dropdown-Liste Schriftart eine Schriftgröße von 25, setzen die Hintergrundbalkenfarbe auf Weiß und die Transparenz auf 50 %. Als Platzierung wählen wir Unten rechts und klicken OK.

../../_images/131.png
  1. Sobald die Parameter entsprechend gesetzt sind, wird das Jahr wie dargestellt angezeigt. Um die Bilder zu exportieren und sie in das GIF-Format zu konvertieren, wählen wir Animation exportieren (Speichern-Icon) im Zeitsteuerungsfenster.

../../_images/141.png
  1. Wir klicken auf den Button ... neben Ausgabeverzeichnis, um das Verzeichnis auszuwählen, in dem die Bilder gespeichert werden sollen.

../../_images/151.png
  1. Im Bereich Ausdehnung wählen wir Berechne aus ‣ Layer ‣ ne_10_land und klicken Speichern.

../../_images/161.png
  1. Nach Abschluss des Exports können wir im Ausgabeverzeichnis PNG-Bilder für jedes Jahr finden (insgesamt 18).

../../_images/171.png
  1. Nun wollen wir aus diesen Bildern noch ein animiertes GIF erzeugen. Es gibt viele Möglichkeiten, um Animationen aus einzelnen Bildern zu erzeugen. Ich bevorzuge ezgif als einfaches Online-Tool. Wir besuchen diese Website, klicken Durchsuchen und wählen alle von uns erstellten PNG-Dateien. Nach der Auswahl klicken wir den Button Upload Files und Make a GIF!. Nach der Erstellung können wir das GIF herunterladen, indem wir den Save-Button benutzen.

../../_images/18.gif

If you want to give feedback or share your experience with this tutorial, please comment below. (requires GitHub account)