Case Study

Erkennung konvektiver Bewölkung

Der Deutscher Wetterdienst (DWD) ist unter anderem für die Erstellung von Wetterberichten für Piloten verantwortlich (in einem System namens METAR). Wir waren beauftragt worden, ein Modell zu erstellen, das die Erkennung konvektiver Wolken mit Hilfe von Satellitenbildern zur Unterstützung anderer Formen der Erkennung unterstützt.

Ausgangslage

Cumulonimbus-Wolken (CB) verursachen erhebliche Fallwinde, die für startende und landende Flugzeuge gefährlich sind. Daher ist es für unseren Kunden, den Deutschen Wetterdienst (DWD), wichtig, diese zuverlässig zu erkennen, ebenso wie Towering Cumulus (TCU), die sich zu Cumulonimbus-Wolken entwickeln können.

Die Daten, die wir für dieses Projekt verwenden, stammen von einem geostationären Satelliten namens Meteosat Second Generation. Damit erhalten wir alle 5 oder 15 Minuten ein Bild von Deutschland von einem festen Standpunkt aus. Unser Ziel wird es sein, jedes Pixel im Bild in CB, TCU oder keines von beiden zu klassifizieren.

Piloten erhalten eine Wettervorhersage, einen sogenannten METAR-Bericht, der die Bedingungen am Zielflughafen beschreibt. Derzeit wird dieser Bericht manuell durch Beobachtungen von erfahrenen Meteorologen am Boden erstellt, aber der DWD bemüht sich, dieses Vorgehen so weit wie möglich zu automatisieren, um den Meteorologen Zeit für andere Aufgaben zu geben. Wir werden uns auf den Abschnitt dieses Berichts konzentrieren, der die konvektiven Wolken betrifft.

Damit ein automatisiertes System zuverlässig und vertrauenswürdig ist, muss es mehrfach redundant sein, und deshalb müssen die Modelle auf unterschiedlichen Datenquellen basieren. Algorithmen, die Radar- und Blitzdaten verwenden, gibt es bereits, und unser Ziel war es hier, ein unabhängiges Modell auf der Grundlage von Meteosat-Daten der zweiten Generation (MSG) bereitzustellen, um diese zu unterstützen. Als solche ist die ML-Komponente des Systems eine semantische Segmentierung der Satellitendaten in drei Klassen: CB, TCU oder keine von beiden.

Herausforderungen

Die wichtigste Komponente jeder ML-Lösung ist ein großer und qualitativ hochwertiger Trainingsdatensatz, und dieses Projekt war keine Ausnahme. Die Aufgabe ist selbst für Menschen äußerst schwierig zu bewältigen, so dass das Labeling an sich schon eine Herausforderung darstellt.

Außerdem liegen die Eingabedaten in einem ungewöhnlichen Format vor, das eine umfangreiche Vorverarbeitung mit domänenspezifischem Wissen erfordert, bevor ML-Algorithmen genutzt werden können.

Das Labeling war hier eine große Herausforderung. Die Merkmale von konvektiven Wolken sind äußerst subtil, und es ist selbst für einen geschulten Menschen schwierig, sie in den Daten zu erkennen.

Darüber hinaus gab es auch eine Reihe von technischen Herausforderungen bezüglich der Eingabedaten. Der Satellit kreist über dem Äquator und nimmt ein Bild der gesamten Erdscheibe auf. Damit befindet er sich in einem Winkel von ~20° über der Normalen. Folglich muss das Bild geometrisch transformiert werden, um die richtige Perspektive zu erhalten.

Darüber hinaus haben wir 12 Kanäle: 3 visuelle Kanäle, die sich alle in der Wellenlänge von Rot und nicht von RGB unterscheiden, und 9 Infrarotkanäle. Einer der visuellen Kanäle, der High Resolution Visual (HRV)-Kanal, hat eine dreimal höhere Auflösung als die anderen. Dies stellt uns vor die Wahl: Wir können den HRV-Kanal herunter- oder die anderen Kanäle hochskalieren. Wir entschieden uns für das Hochskalieren der übrigen Kanäle, um sicherzustellen, dass die Feinstruktur im HRV-Kanal erhalten bleibt.

Lösung

Um dies zu erreichen, haben wir einen Datensatz mit Hilfe einiger externer Radardaten manuell beschriftet, um den Entscheidungsprozess zu unterstützen. Darüber hinaus wurden unsere Beschriftungen von einem Meteorologen überprüft, um die Qualität der Daten sicherzustellen.

Es wurde ein neuronales Netz trainiert, wobei die Satellitendaten als Input und unsere manuellen Beschriftungen als Labels verwendet wurden. Die Genauigkeit des neuronalen Netzes wurde mit Hilfe eines Holdback-Datensatzes gemessen, der während des Trainings überhaupt nicht verwendet wurde. Mit diesem Datensatz konnten wir eine Genauigkeit von 98% erreichen.

Genutzte Technologie: Python, PyTorch, SatPy, OpenCV, Numpy

Der Labeling-Prozess wurde mit einem zusammengesetzten Bild des HRV-Kanals mit einem der Infrarotkanäle durchgeführt, die die relevanten Wolken stärker hervortreten ließen. Doch selbst dies reicht nicht in allen Fällen aus, um ein Urteil zu fällen, so dass zur korrekten Kennzeichnung auch externe Daten in Form von Radar- und Bodenbeobachtungen herangezogen wurden. Zusätzlich überprüfte ein Meteorologe alle Beschriftungen, um sicherzustellen, dass sie korrekt waren.

Das Modell selbst war ein U-Net, das im Rahmen von PyTorch implementiert und mit Adam mit einer Lernrate von einem Zyklus trainiert wurde (one cycle learning rate scheduler).

Es wurden auch umfangreiche Datenaugmentation vorgenommen, um das Beste aus unserem Datensatz herauszuholen.

Produkt

Hier sind einige Beispielausgaben aus dem Testsatz mit blau gekennzeichneten CB-Wolken und TCU in grün. Beide Beispiele zeigen ein mitteleuropäisches Gebiet mit Schwerpunkt Deutschland.

Beispiel 1: 15:00 28/06/2012. Der Algorithmus hat die großen Cumulonimbus-Wolken in der Mitte und im Süden herausgesucht, während die große nicht konvektive Region im Nordosten nicht falsch beschriftet wurde. Der Algorithmus hat auch die hoch aufragenden Cumulus-Wolken von den ähnlich gefärbten Alpen in der Nähe getrennt.

Beispiel 2: 29.06.2012 Hier hat der Algorithmus die konvektiven Wolken innerhalb des vorderen Systems korrekt identifiziert und gleichzeitig eine falsche Beschriftung der gesamten Region vermieden (Ein häufiger Fehlerfall von pixelweisen Algorithmen).

Hier sind einige Beispielausgaben aus dem Testsatz mit blau gekennzeichneten CB-Wolken und TCU in grün. Beide Beispiele zeigen ein mitteleuropäisches Gebiet mit Schwerpunkt Deutschland.

Beispiel 1: 15:00 28/06/2012. Der Algorithmus hat die großen Cumulonimbus-Wolken in der Mitte und im Süden herausgesucht, während die große nicht konvektive Region im Nordosten nicht falsch beschriftet wurde. Der Algorithmus hat auch die hoch aufragenden Cumulus-Wolken von den ähnlich gefärbten Alpen in der Nähe getrennt.

Beispiel 2: 29.06.2012 Hier hat der Algorithmus die konvektiven Wolken innerhalb des vorderen Systems korrekt identifiziert und gleichzeitig eine falsche Beschriftung der gesamten Region vermieden (Ein häufiger Fehlerfall von pixelweisen Algorithmen).