Skip to content
roe-dl edited this page Jun 15, 2024 · 35 revisions

Der Deutsche Wetterdienst bietet unterschiedlich aufbereitete Radar-Daten an, die in binären Formaten zur maschinellen Weiterverarbeitung bereitgestellt werden. Diese WeeWX-Erweiterung enthält auch ein Modul zur Verarbeitung von Radardaten.

Funktionsumfang

Bei den Formaten, die von diesem Modul ausgewertet werden können, ist Deutschland in ein 1km-Raster eingeteilt. Für jeden Rasterpunkt werden verschiedene Meßwerte bereitgestellt. Die Daten werden alle 5 Minuten aktualisiert. Das paßt insoweit sehr gut zum Standard-Aktualisierungsintervall von WeeWX. In Auswertung dieser Daten liefert das Modul folgende Daten:

  • aktuelle Meßwerte für in der Konfiguration definierte Orte als WeeWX-Variable (observation type) zur Darstellung in Skins
  • Karten für Deutschland oder einen Teil davon als PNG-Datei
  • Vorhersage der Radarreflektivität und der Niederschlagsintensität für die nächsten zwei Stunden als animierte GIF-Datei

Format HG

Das Format HG liefert den aktuellen Niederschlagsstatus (d.h. gibt es Niederschlag und wenn ja, welcher Art). Die Werte werden zusätzlich in den passenden wawa-Code zur Darstellung von Niederschlagssymbolen (Icons) mittels $presentweather umgewandelt. Die Karte zeigt die Niederschlagsart durch Farben. Eine Vorhersage stellt der Deutsche Wetterdienst für dieses Format nicht bereit.

Format WN

Das Format WN liefert den Wert der Radarreflektivität dBZ. Dabei werden nicht nur die aktuellen Meßwerte übermittelt, sondern auch eine Vorhersage für die nächsten 2 Stunden. Die Karte zeigt die Werte in einer Farbskala.

Format RV

Das Format RV liefert die Niederschlagsmenge der letzten 5 Minuten und die Niederschlagsrate. Dabei werden nicht nur die aktuellen Meßwerte übermittelt, sondern auch eine Vorhersage für die nächsten 2 Stunden. Die Karte zeigt die Werte (die sich wahlweise als Niederschlagsmenge der letzten 5 Minuten oder als aktuelle Niederschlagsrate interpretieren lassen) in einer Farbskala.

Format HGRV

Ein Format mit dieser Kennung gibt es beim Deutschen Wetterdienst nicht. Die Bezeichnung wird hier verwendet, um eine Zusammenfassung der Werte aus den Formaten HG und RV zu bezeichnen. Sie dient dazu, den Wetterzustand wawa zu bestimmen (nur ausgewählte Codes, die mit Niederschlägen zusammenhängen). Außerdem kann eine Karte gezeichnet werden, bei der die Niederschlagsart durch die Farbe und die Niederschlagsintensität durch die Farbsättigung gekennzeichnet wird.

weitere Formate

Die Formatbeschreibung beim Deutschen Wetterdienst enthält eine lange Liste von ähnlichen Formaten, die nicht alle öffentlich erhältlich sind. Einige davon aber schon. Sie lassen sich herunterladen und eingeschränkt auch zu Karten verarbeiten. Die für die Formate HG, WN und RV bereitgestellten Koordinatendateien sind dafür aber nicht nutzbar, da eine andere Projektion verwendet wird.

Kartographie

Da die Erde rund ist, kann man nicht so einfach ein 1km-Raster über einen Landstrich legen. Dazu muß man sich einer kartographischen Projektion bedienen. Eine solche hat der Deutsche Wetterdienst auch angewendet, um die Radardaten auf das Raster abzubilden. Von daher findet man die Daten für einen bestimmten Ort nicht an Hand der geographischen Koordinaten. Es ist eine Umrechnung erforderlich. Zum Glück empfiehlt der Deutsche Wetterdienst auch gleich ein passendes Programm, das frei verfügbar ist, und stellt die nötigen Parameter zu dessen Benutzung bereit.

Die Koordinaten der Projektion heißen Rechtswert (gemessen von West nach Ost, englisch: easting) und Hochwert (gemessen von Süd nach Nord, englisch: northing).

Konfiguration

Die Konfiguration steht im Abschnitt [WeatherServices] in weewx.conf. Sollte es dabei zu Problemen mit der Größe der Konfigurationsdatei kommen, kann die Konfiguration auch mittels include in eine eigene Datei ausgelagert werden.

Die Unterabschnitte [[[Station]]] und [[[Karte]]] können sich mit jeweils geändertem Namen (z.B. Station1, Station2 usw.) wiederholen, wenn man die Daten für mehrere Orte ermitteln oder mehrere Karten mit unterschiedlichen Ausschnitten erzeugen will.

[WeatherServices]
    path = /etc/weewx/skins/SKINNAME/dwd
    ...
    [[radar]]
        places_de1200 = /path/to/file
        [[[Station]]]
            provider = DWD
            model = HG
            easting = replace_me
            northing = replace_me
            prefix = ""
            latitude = replace_me
            longitude = replace_me
        [[[Karte]]]
            provider = DWD
            model = HG
            prefix = ""
            map = 100, 100, 900, 1000
            name = Deutschland
            borders = countrycoords.txt
            borders_copyright = EuroGeographics
            filter = ..., ...
            background = light

Wird die Konfiguration in eine Include-Datei ausgelagert, entfällt die Abschnittsbezeichnung [WeatherServices] und alle Abschnitte erhalten eine eckige Klammer weniger.

Die Schlüssel haben folgende Bedeutung:

  • path: Ort, an den die erzeugte(n) Karte(n) gespeichert werden sollen
  • provider: hier immer DWD, weil die Daten vom Deutschen Wetterdienst stammen
  • model: HG für Niederschlagsart 2m über Grund, WN für Radarreflektivität, RV für Niederschlagsmenge und Niederschlagsrate, HGRV für die kombinierten Daten aus Niederschlagsart und Niederschlagsrate. Es ist möglich, mehrere dieser Werte durch Komma getrennt anzugeben.
  • prefix: Namenspräfix, der den Variablennamen (observation type) vorangestellt wird, wenn mehrere Orte konfiguriert sind; bei Karten Namensbestandteil des Dateinamens der erzeugten Datei
  • easting: Rechtswert des Ortes, für den die Daten ermittelt werden sollen, in Meter
  • northing: Hochwert des Ortes, für den die Daten ermittelt werden sollen, in Meter
  • latitude: geographische Breite des Ortes, für den die Daten ermittelt werden sollen (optional)
  • longitude: geographische Länge des Ortes, für den die Daten ermittelt werden sollen (optional)
  • map: Abmessungen der zu erzeugenden Karte in Pixeln: Die ersten beiden Werte bezeichnen die Koordinaten der linken unteren Ecke der Karte, die anderen beiden Werte Breite und Höhe, Wertebereich 0...1100 in West-Ost-Richtung und 0...1200 in Süd-Nord-Richtung. Alternativ dazu kann der Kartenausschnitt auch durch Angabe eines Bundeslandes im ISO3166-2-Code (z.B. DE-MV für Mecklenburg-Vorpommern) angegeben werden.
  • name: Name der Karte, der in das Titelfeld der Bilddatei aufgenommen werden soll
  • borders: Datei, die Linien enthält, die auf der Karte dargestellt werden sollen, z.B. als Landesgrenzen
  • borders_copyright: Urheberrechtshinweistext, der auf die Quelle der Daten von borders verweist und auf der Karte unten links dargestellt wird
  • credits: Copyright-Text auf der Karte (optional)
  • filter: Liste von Orten, die nicht auf der Karte dargestellt werden sollen (optional)
  • background: Hintergrundfarbe. Mögliche Werte sind light und dark oder eine Farbangabe in #-Notation. (optional)
  • background_img: Bilddatei, die als Hintergrund der Karte verwendet werden soll (optional)
  • forecast: nur bei WN und RV. Mögliche Werte sind none (keine Vorhersage), PNG (jeden Vorhersagezeitpunkt als eigenständige PNG-Datei speichern) oder GIF (Vorhersage als animierte GIF-Datei speichern).
  • animation_interval: Zeit zwischen den Bildern beim animierten GIF (optional)
  • places_de1200: Datei, die eine Tabelle zusätzlicher Orte zur Darstellung auf der Karte enthält (optional)

Landesgrenzen und andere Linien

Drei vorbereitete Dateien mit Landesgrenzen zur unmittelbaren Verwendung finden Sie unter skins/DWD/geo. Sie unterscheiden sich in Umfang und Auflösung. Wenn Sie selbst so eine Datei erstellen wollen, gelten die folgenden Informationen.

Koordinatendateien für Landesgrenzen sind u.a. bei EuroGeographics, Geofabrik und Overpass-Turbo erhältlich.

Dateien, die pro Zeile ein Koordinatenpaar enthalten, können direkt dem Programm proj übergeben werden und erzeugen eine gleichartige Datei mit Rechts- und Hochwerten, die direkt bei der Option borders referenziert werden kann. Verschiedene Linien werden durch eine Zeile mit zwei Sternchen und einem Leerzeichen dazwischen getrennt. In der Koordinatendatei vor dem Aufruf von proj müssen es vier Sternchen sein.

Zu beachten ist, daß alle diese Anbieter einen Urheberrechtshinweis verlangen. Dazu ist der Schlüssel borders_copyright zu benutzen. Im Falle von EuroGeographics ist das EuroGeographics, im Falle der bei Geofabrik und Overpass-Turbo heruntergeladenen Daten OpenStreetMap, ODbL 1.0.

Orte auf der Karte

Zur Einordnung des Kartenbildes wird auf der Karte die Lage von Ortschaften dargestellt. Für die Darstellung Deutschlands im Ganzen sind ausreichend Ortschaften bereits vorkonfiguriert. Weitere Orte können hinzugefügt werden. Dazu muß der Schlüssel places_de1200 existieren und auf eine Textdatei zeigen, die eine Tabelle der Orte enthält. Jede Zeile enthält einen Ort. Durch jeweils ein Leerzeichen getrennt muß die Zeile folgende Informationen enthalten:

Rechtswert Hochwert Ortsname Breite Länge Maßstab

Die Spalten haben folgende Bedeutung:

  • Rechtswert, Hochwert: Koordinaten des Ortes in der Projektion in Metern (können mit dem Programm proj berechnet werden)

  • Ortsname: Name des Ortes (darf keine Leerzeichen enthalten, diese sind demzufolge durch Unterstreichstriche zu ersetzen)

    Wird der Ortsbezeichnung ein Zirkumflex-Zeichen (Dach, Caret, ^) vorangestellt, handelt es sich um einen Berg, der auf der Karte mit einem Dreieck anstelle eines Punktes markiert wird.

  • Breite, Länge: geographische Breite und Länge des Ortes (die Zahlen werden zur Zeit nicht genutzt)

  • Maßstab: Um so größer die Zahl ist, um so kleiner muß der Kartenausschnitt sein, daß der Ort angezeigt wird. Das dient dazu, Übersichtskarten nicht mit Ortsnamen zu überfrachten.

Für den Maßstab gilt folgende Zuordnung:

Breite des Kartenausschnitts in km Anzeige von Orten mit Maßstabswert
513...1100 km 1.0
301...512 km bis 2.0
257...300 km bis 3.0
201...256 km bis 4.0
167...200 km bis 5.0
129...166 km bis 6.0
101...128 km bis 8.0
51...100 km bis 10.0
bis 50 km bis 20.0
keine Darstellung über 20.0

Soll ein Ort, der in der Voreinstellung enthalten ist, ausgeblendet werden, ist er in die Datei aufzunehmen und mit einem Maßstabswert >20.0 zu versehen.

Als Koordinaten eines Ortes wurde bei Städten der jeweilige Marktplatz (und dort, soweit vorhanden, der Brunnen) verwendet. Bei Dörfern, die keinen zentralen Platz haben, ist es der ungefähre Mittelpunkt der von der Bebauung eingenommenen Fläche.

Nutzung in Skins

Niederschlagsstatus für einzelne Orte

Folgende Variablen (observation types) werden erzeugt:

  • für das Format HG:
    • radarHGValue: Niederschlagsstatus nach der Codierung des Deutschen Wetterdienstes (Rohwert)
    • radarHGWawa: zugehöriger wawa-Code (Achtung! Es können keine Intensitäten bereitgestellt werden)
    • radarHGDateTime: Zeitstempel der Information
  • für das Format WN:
    • radarWNDBZ: Radarreflektivität in dBZ
    • radarWNDateTime: Zeitstempel der Information
  • für das Format RV:
    • radarRVRain: Niederschlagsmenge der letzten 5 Minuten
    • radarRVRainRate: aktuelle Niederschlagsrate
    • radarRVDateTime: Zeitstempel der Information
    • radarRVRainRateForecast: Kurzfristvorhersage der Niederschlagsrate für die nächsten zwei Stunden im 5-Minuten-Intervall. Nur in der Form $day.radarRVRainRateForecast.series nutzbar.
    • radarRVRain2hForecast: Vorhersage der Gesamt-Niederschlagsmenge der nächsten zwei Stunden
  • für das kombinierte Format HGRV:
    • radarWawa: wawa-Code unter Einbeziehung der Intensität
    • radarRainRate: Niederschlagsrate (derselbe Wert wie radarRVRainRate)

Wenn ein Präfix konfiguriert ist, ist es den o.g. Namen vorangestellt, wobei der erste Buchstabe in einen Großbuchstaben verwandelt wird. Ist das Präfix zum Beispiel xyz, lautet der Name dann xyzRadarHGValue.

Ein Wettersymbol kann wie folgt dargestellt werden:

$presentweather($wawa=$current.radarWawa).svg_icon

Anstelle von svg_icon können auch andere Symbolsätze verwendet werden, siehe Beschreibung von $presentweather.

Karte

Die Karten werden als Graphikdateien im PNG-Format erzeugt.

<img src="radar-HG.png?v=$current.dateTime.raw" alt="Landkarte der Niederschlagssituation in Deutschland" style="max-width:900px" />

Die Anfügung mit $current.dateTime.raw ist nötig, um den Cache des Browsers zu überlisten, daß die Datei jedes Mal neu vom Server heruntergeladen wird.

Darstellung der Farblegende

#from user.weatherservicesradar import DwdRadar
...
                 #for $idx,$val in $DwdRadar.TEXT['de'].items()
                 <p>
                 <i class="statusIcon" style="background-color:$DwdRadar.COLORS_HG[$idx]"></i>
                 $val
                 </p>
                 #end for

Und in einer CSS-Datei:

.statusIcon {
  width:14px;
  height:14px;
  display:inline-block;
  border:1px solid #808080;
}

Anstelle von de kann auch en stehen.

Kurzfrist-Niederschlagsvorhersage als Tabelle

Das Beispiel liefert eine waagerechte Tabelle mit den zu erwartenden Niederschlagsintensitäten der nächsten zwei Stunden im 5-Minuten-Abstand.

<table>
  #set $forecast = $day.radarRVRainRateForecast.series
  <tr>
    <th>Zeit</th>
    #for $i in $forecast
    #if $i[1].raw>$current.dateTime.raw
    <td class="center">$i[1].format("%H:%M")</td>
    #end if
    #end for
  </tr>
  <tr>
    <th>mm/h</th>
    #for $i in $forecast
    #if $i[1].raw>$current.dateTime.raw
    <td class="center">$i[2].format(add_label=False)</td>
    #end if
    #end for
  </tr>
</table>
<p style="font-size:65%">vom DWD aus Radardaten berechnet, herausgegeben am ${current.radarRVDateTime}</p>

Kurzfrist-Niederschlagsvorhersage als Diagramm in Belchertown-Skin

in graphs.conf:

    [[RV]]
        [[[radarRVRainRateForecast]]]

Wenn ein Präfix konfiguriert ist, ist es dem Namen voranzustellen. Wenn mehrere Orte konfiguriert sind, kann man sie in einem Diagramm darstellen, indem man die weiteren Variablen (observation type) jeweils in drei eckige Klammern eingeschlossen hinzufügt.

Testbetrieb

Zu Testzwecken kann das Modul auch von der Kommandozeile aus aufgerufen werden. Auf diesem Wege kann man die Erzeugung der Karten testen und verschiedene Koordinaten ausprobieren, ohne jeweils WeeWX neu starten zu müssen. Es ist auch möglich, vorab heruntergeladene Dateien zu verarbeiten.

Mit dem Aufruf

python3 /usr/share/weewx/user/weatherservicesradar.py --help

können die verfügbaren Aufrufparameter angezeigt werden. Dieser Aufruf gibt Folgendes aus:

Usage: weatherservicesradar.py [options] [file.bz2]
       weatherservicesradar.py --convert-geojson [options] sourcefile targetfile

Direct call is for testing only.

Options:
  -h, --help            show this help message and exit
  -v, --verbose         verbose output
  --places=FILE         optional list of places to show on the map

  Commands:
    --write-map         write map image
    --get=LOCATION      print reading for the specified location
    --print-locations   print locations list
    --test-thread       test thread
    --convert-geojson   convert geojson file to list for proj

  Map creation options:
    --image-size=X,Y,W,H
                        optional x y width height
    --filter=LIST       optional list of locations to filter
    --borders=FILE      file of border coordinates
    --background=TYPE   optional background type light or dark
    --svg               output in SVG format

  GEOJSON options:
    --include-comment   include comments in list
    --color=COLOR       line color

The maximum image size for HG, WN, and RV is 1100px wide and 1200px high,
referring to 1100 km west-east and 1200 km south-north. Coordinates go from
west to east and south to north, respectively.

Ohne Angabe einer Datei werden die aktuellen Daten im Format HG heruntergeladen und verarbeitet. Soll ein anderes Format heruntergeladen werden, ist anstelle eines Dateinamens =WN für das WN-Format und =RV für das RV-Format anzugeben. Wird eine Datei angegeben, ergibt sich das Format aus dem Inhalt der Datei.

Bei image-size können wie auch in der WeeWX-Konfiguration die Namen der Bundesländer im ISO3166-2-Code angegeben werden. Beispielsweise führt die Option --image-size=DE-MV zur Erzeugung einer Karte für das Land Mecklenburg-Vorpommern.

Koordinatenumrechnung

Der Deutsche Wetterdienst empfiehlt das Programm proj, das für Linux ganz normal mit apt-get installiert werden kann. Der Konfigurationsstring lautet:

+proj=stere +lat_0=90 +lat_ts=60 +lon_0=10 +a=6378137 +b=6356752.3142451802 +no_defs +x_0=543196.83521776402 +y_0=3622588.8619310018

Das Programm wird auf der Kommandozeile wie folgt aufgerufen:

echo longitude latitude | proj +proj=stere +lat_0=90 +lat_ts=60 +lon_0=10 +a=6378137 +b=6356752.3142451802 +no_defs +x_0=543196.83521776402 +y_0=3622588.8619310018

longitude und latitude sind durch die entsprechenden Werte in Dezimalgrad mit Punkt als Dezimaltrennzeichen zu ersetzen. Bitte beachten Sie, daß die Reihenfolge der Werte umgekehrt zu den üblichen Gepflogenheiten ist.

Wenn man mehrere Koordinaten auf einmal umrechnen will, kann man die Werte auch in eine Datei schreiben (ein Koordinatenpaar pro Zeile) und beim Programmaufruf übergeben:

proj +proj=stere +lat_0=90 +lat_ts=60 +lon_0=10 +a=6378137 +b=6356752.3142451802 +no_defs +x_0=543196.83521776402 +y_0=3622588.8619310018 <datei_der_umzurechnenden_werte.txt >datei_der_umgerechneten_werte.txt

Beispiele:

Ort geographische Breite geographische Länge Rechtswert Hochwert
Fichtelberg 50.429444° 12.954167° 764264.57 m -661198.14 m
Brocken 51.7991° 10.6156° 587565.63 m -506791.63 m
Zugspitze 47.42122° 10.9863° 623159.66 m -1022123.31 m

Copyright/Urheberrechtsangaben

Die Nutzungsbedingungen des Deutschen Wetterdienstes und der Anbieter geographischer Basisinformationen wie auch die GPL, unter der dieses Modul steht, verlangen Namensnennung. Dies ist bei der Veröffentlichung der Daten zu beachten. Deswegen enthält die erzeugte Graphik unten links solche Copyright- bzw. Urheberrechtsvermerke. Wenn der Kartenausschnitt so klein gewählt wird, daß diese Daten nicht direkt auf der Karte angebracht werden können, müssen sie anderweitig in räumlicher Nähe zu der Darstellung erscheinen.

Auch für die Einzelwerte gilt die Vorschrift zur Nennung der Datenquellen.

Beispielkarte

Deutschland insgesamt

radar-HG-2

Ausschnittskarte mit zusätzlichen Daten, gesetzt mittels der Optionen places_de1200 und borders

image

Links

Clone this wiki locally