Skip to content

Deutscher Wetterdienst

roe-dl edited this page Nov 8, 2024 · 22 revisions

Einleitung

Der Deutsche Wetterdienst bietet ausdrücklich Informationen (Karten, Vorhersagen, Warnungen usw.) zur Einbindung in private Homepages an. Manche Informationen stehen als Dateien zum Verlinken zur Verfügung, andere werden in maschinenlesbaren Formaten zur Weiterverarbeitung durch eigene Programme des Anwenders bereitgestellt.

Erfahrungsgemäß empfiehlt es sich aus Geschwindigkeitsgründen, nicht auf Seiten des Wetterdienstes zu verlinken, sondern die Dateien herunterzuladen und auf eigenem Web-Space bereitzustellen. Der Seitenaufbau wird dadurch deutlich beschleunigt. Das ist auch der Wunsch des Deutschen Wetterdienstes. An manchen Stellen verhindert er die Verlinkung sogar aktiv und ermöglicht nur das Herunterladen durch Skripte.

Nutzung von Daten des Deutschen Wetterdienstes mit WeeWX

Mit dieser WeeWX-Erweiterung können die verschiedensten Daten vom Deutschen Wetterdienst bezogen und aufbereitet werden. Die dafür nötigen Einstellungen sind entweder in den folgenden Abschnitten oder auf eigenen Seiten beschrieben.

Aktuelle Meßwerte von DWD-Wetterstationen als Werte in WeeWX

Die aktuellen Meßwerte der POI- und CDC-Stationen können in WeeWX als Meßwerte (observation type) genutzt werden. Da die Werte vom DWD mit erheblicher Verzögerung bereitgestellt werden, können sie nicht mit in die normale Datenbank gespeichert werden. Stattdessen werden sie in eine eigene SQLITE-Datenbank gespeichert, die in WeeWX als "Binding" eingebunden werden kann. So ist dann auch die Darstellung als Diagramme und der Zugriff auf ältere Werte möglich.

Konfiguration

Für jede Station muß ein Abschnitt unter [WeatherServices][[current]] eingetragen werden.

[DataBindings]
    ...
    [[cdc10_binding]]
        database = cdc10_sqlite
        table_name = archive
        manager = weewx.manager.Manager
        schema = schemas.dwd.schema
    ...
[Databases]
    ...
    [[cdc10_sqlite]]
        database_name = weatherservices-readings-DWDsave-10.sdb
        database_type = SQLite
    ...
...
[WeatherServices]
    [[current]]
        # POI-Station
        [[[station_code]]]
            provider = DWD
            model = POI
            prefix = observation_type_prefix_for_station
        # CDC-Station
        [[[station_id]]]
            provider = DWD
            model = CDC
            prefix = observation_type_prefix_for_station
            # Ausstattung der Wetterstation (optional)
            observations = air,wind,gust,precipitation,solar

POI-Stationen in Deutschland

CDC-Stationen

Meßgrößen

Die Namen der Meßgrößen entsprechen den Standardnamen, die WeeWX verwendet, jeweils mit dem Präfix laut Konfiguration. Der erste Buchstabe des Namens wird in einen Großbuchstaben verwandelt. Für die Außentemperatur outTemp wäre das bei einem Präfix xyz demzufolge xyzOutTemp.

Wenn die Daten auch per MQTT ausgegeben werden sollen, empfiehlt es sich, im Präfix keine Unterstreichstriche zu verwenden, da diese in den MQTT-Topics zur Trennung von Meßgrößenname und Einheit genutzt werden. Das gilt ganz besonders bei Nutzung der Belchertown-Skin.

Folgende Meßgrößen sind definiert, aber nicht immer verfügbar:

  • immer:
    • dateTime: Zeitstempel der Messung
    • interval: Meßinterval (1h bei POI, 10min. bei CDC)
  • Sensorgruppe air:
    • pressure: Stationsluftdruck QFE
    • barometer: auf Meeresniveau umgerechneter Luftdruck (bei POI im Datensatz enthalten, bei CDC berechnet, wenn pressure und outTemp verfügbar)
    • barometerDWD: nach der Formel des DWD auf Meeresniveau umgerechneter Luftdruck (nur bei CDC und nur wenn pressure, outTemp und outHumidity verfügbar)
    • outTemp: Lufttemperatur 2m über dem Boden
    • extraTemp1: Lufttemperatur 5cm über dem Boden
    • outHumidity: relative Luftfeuchtigkeit
    • dewpoint: Taupunkttemperatur
  • Sensorgruppe wind:
    • windSpeed: Windgeschwindigkeit
    • windDir: Windrichtung
  • Sensorgruppe gust:
    • windGust: Böengeschwindigkeit
    • windGustDir: Böenrichtung
  • Sensorgruppe precipitation:
    • rainDur: Niederschlagsdauer im Meßintervall
    • rain: Niederschlagsmenge im Meßintervall
    • rainIndex: Niederschlagsart
  • Sensorgruppe solar:
    • solarRad
    • radiation
    • sunshineDur: Sonnenscheindauer im Meßintervall
    • LS_10
  • nur bei POI:
    • cloudcover: Wolkenbedeckung in Prozent
    • cloudbase: Höhe der Wolkenunterkante
    • visibility: Sichtweite
    • presentWeather: codierter Wetterzustand
    • snowDepth: Schneehöhe
    • icon: Symbol des Wetterzustandes (Dateiname)
    • icontitle: Beschreibung dazu
  • nur bei CDC:
    • station_id
    • MESS_DATUM_ENDE
    • quality_level
  • außer POI:
    • latitude: geographische Breite der Station
    • longitude: geographische Länge der Station
    • altitude: Höhe der Station

icon, icontitle, station_id und MESS_DATUM_ENDE sind Textfelder, die nur mit .raw benutzt werden können.

Nutzung in Skins

Aktuelle Werte als Zahlenwerte

Die jeweils zuletzt bereitgestellten Werte stehen unter dem Tag $current bereit. Ist beispielsweise das konfigurierte Präfix xyz, dann zeigt $current.xyzOutTemp den letztverfügbaren Meßwert der Lufttemperatur an. Auf einzelne ältere Werte kann man mit Angabe eines Zeitstempels zurückgreifen, z.B. $current(timestamp=Zeitstempel,data_binding='cdc10_binding').xyzOutTemp. Auch die Zusammenfassungsoperatoren können benutzt werden, etwa $year(data_binding='cdc10_binding').xyzOutTemp.max für die Maximaltemperatur des Jahres.

Diagramm in der Belchertown-Skin

Einzutragen in graphs.conf:

    [[station_xyz_measurements]]
        tooltip_date_format = "dddd LLL"
        gapsize = 3600 # 1 hour in seconds
        credits = "© DWD"
        data_binding = cdc10_binding
        [[[xyzOutTemp]]]
        [[[xyzDewpoint]]]

Diagramm in anderen Skins

Einzutragen in skin.conf:

[ImageGenerator]
    ...
    [[day_images]]
        ...
        [[[station_xyz_measurements]]]
            data_binding = cdc10_binding
            line_gap_fraction = 0.04
            [[[[xyzOutTemp]]]]
            [[[[xyzDewpoint]]]]

Wettervorhersagen

Zum Herunterladen und Verarbeiten der Vorhersagedaten dient das Script dwd-mosmix. Es kann die Daten auf viererlei Weise aufbereiten:

  • als Tabellen im HTML-Format zum Einbinden in Skins mittels #include (Option --html)
  • als Datenbank für WeeWX zur Anzeige als Graphik oder als Tabelle in selbstgeschriebenen WeeWX-Templates (Option --database)
  • als JSON-Datei für die Belchertown-Skin (Option --belchertown)
  • als JSON-Datei zur Weiterverarbeitung mittels JavaScript im Browser oder PHP auf dem Web-Server (Option --json)

Die Vorhersagen werden für etwa 6000 verschiedene Orte auf der Welt berechnet, die durch ein Kürzel benannt werden:

Eine Übersicht über die verfügbaren Wetterelemente gibt:

Vorhersagegrößen:

  • outTemp: Lufttemperatur 2m
  • dewpoint: Taupunkt 2m
  • windchill: Windchill-Temperatur (aus outTemp und windSpeed berechnet)
  • heatindex: Hitzeindex (aus outTemp und dewpoint berechnet, nur bei Temperaturen ab 26,7°C und Luftfeuchte ab 40%)
  • outHumidity: relative Luftfeuchte (aus outTemp und dewpoint berechnet)
  • windDir: Windrichtung
  • windSpeed: Windgeschwindigkeit
  • windGust: Böengeschwindigkeit
  • pop: Regenwahrscheinlichkeit
  • cloudcover: Wolkenbedeckung
  • barometer: Luftdruck
  • rain: Regenmenge
  • rainDur: Regendauer innerhalb der letzten Stunde
  • sunshineDur: Sonnenscheindauer innerhalb der letzten Stunde

Text-Wettervorhersage

Für den aktuellen und die drei folgenden Tage stellt der DWD eine Vorhersage auf Bundeslandbasis in Textform bereit. Die Bereitstellung erfolgt unregelmäßig mehrmals am Tag. Immer zum Ende des Archiv-Intervalls und rechtzeitig vor dem Reporterzeugungslauf wird geprüft, ob es ein Update der Vorhersagen gibt.

Konfiguration

[WeatherServices]
    # Verzeichnis, in das die Dateien gespeichert werden sollen
    path='/etc/weewx/skins/SKINNAME/SUBDIRECTORY'
    ...
    [[forecast]]
        ...
        [[[Bundesland]]]
            # Text-Vorhersage für Sachsen
            provider = DWD
            model = text
            area = Bundeslandkennung
            insert_lf_after_summary = false # optional

Die hier gültigen Kennungen der Bundesländer sind im Wiki-Artikel Abkürzungen der Bundesländer beim Deutschen Wetterdienst in Spalte VHDL zu finden.

Mit der Option insert_lf_after_summary = true kann ein Zeilenwechsel nach der fettgedruckten Überschrift eingefügt werden.

Änderungen an der weewx.conf sind erst nach einem Neustart von WeeWX wirksam.

Nutzung in Skins

Die heruntergeladenen Texte werden im durch den Schlüssel path bezeichnete Verzeichnis abgelegt. Sie werden mittels #include eingefügt, zum Beispiel:

#include raw "SUBDIRECTORY/VHDL50_Bundeslandkennung_LATEST.html"

"Bundeslandkennung" ist durch die entsprechende Kennung aus der Konfiguration zu ersetzen. Anstelle der 50 kann auch 51, 52, 53 und 54 stehen.

Bodenwetterkarte

Der DWD stellt eine Wetterkarte von Europa mit Luftdruck, Frontensystemen und den Meßwerten der Wetterstationen bereit. Sie kann heruntergeladen und auf der eigenen Website dargestellt werden. Die Datei wird nur dann neu heruntergeladen, wenn sie sich geändert hat.

Konfiguration

[WeatherServices]
    path = /etc/weewx/skins/SKINNAME/SUBDIRECTORY
    ...
    [[download]]
        ...
        [[[BWK]]]
            provider = DWD
            model = bwk-map

Soweit der Dateiname nicht über den Parameter file anders festgelegt wird, heißt die Datei bwk_bodendruck_na_ana.png.

Damit die Wetterkarte dann auch mit auf den Server hochgeladen wird, muß sie in skin.conf ergänzt werden:

[CopyGenerator]
    ...
    copy_always = ...,SUBDIRECTORY/bwk_bodendruck_na_ana.png

Nutzung in Skins

Der Pfad, hier SUBDIRECTORY, ist entsprechend der eigenen Konfiguration anzupassen. Das Anhängsel mit getmtime ist notwendig, damit der Browser keine veralteten Karten anzeigt. Damit wird der Cache beim Nutzer überlistet.

  <div class="col-xs-12 snapshot-records-text">
    Wetterkarte (Luftdruck am Boden)
  </div>
  
  <div class="col-xs-12">
    <img src="$relative_url/SUBDIRECTORY/bwk_bodendruck_na_ana.png?v=<%=os.path.getmtime("/etc/weewx/skins/SKINNAME/SUBDIRECTORY/bwk_bodendruck_na_ana.png")%>" />
  </div>

$relative_url steht hier für den relativen Pfad zum Basisverzeichnis der Skin. Das ist in der Regel .. oder ..

Warnungen

Warnmeldungen des Deutschen Wetterdienstes werden mit Hilfe des Scriptes dwd-cap-warnings bezogen. Dieses Script muß dazu turnusmäßig aufgerufen werden, etwa durch Eintrag in /etc/crontab oder in eine unter /etc/cron.hourly gespeicherte Datei.

Warnsymbole

Der Deutsche Wetterdienst stellt Warnsymbole zum Herunterladen bereit:

Warnicons

Diese Symbole müssen auf dem eigenen Webserver abgelegt werden. Die nachfolgenden Beispiele gehen davon aus, daß sie in das Verzeichnis dwd/warn_icons_50x50 gespeichert wurden. Das Verzeichnis kann natürlich auch anders benannt werden.

Die Zusammenstellung auf dem Server des Deutschen Wetterdienstes ist nicht ganz vollständig. Fehlende Dateien können bei Bedarf einzeln unter https://www.woellsdorf-wetter.de/dwd/warn_icons_50x50/ unter Anfügung des jeweiligen Dateinamens heruntergeladen werden.

Konfiguration

[WeatherServices]
    # Verzeichnis, in das die Dateien gespeichert werden sollen
    path='/etc/weewx/skins/SKINNAME/SUBDIRECTORY'
    ...
    [warning]
        dwd_icons = '../dwd/warn_icons_50x50'
        ...
        [[counties]]
            provider = DWD
            ...
        [[cities]]
            provider = DWD
            ...

Der Schlüssel dwd_icons beschreibt den Pfad, wo die Warnsymbole auf dem Webserver gespeichert sind. Der Wert darf nicht mit einem Schrägstrich beginnen. Er beginnt mit zwei Punkten, wenn sich die Webseite, in die die Warnung eingefügt wird, in einem Unterverzeichnis des Webservers befindet. Befindet sich die Webseite dagegen direkt im Hauptverzeichnis des Webservers, dann beginnt der Wert direkt mit dem Unterverzeichnisnamen, hier etwa dwd/warn_icons_50x50.

Der Abschnitt [[counties]] wird benutzt, wenn die Warnungen auf Landkreisbasis angezeigt werden sollen. Darunter sind die Namen der Landkreise nach den Regeln des Deutschen Wetterdienstes aufzuführen. Jeder Landkreis kommt in eine eigene Zeile. Dahinter ist ein Gleicheitszeichen und ein Dateinamenskürzel zu setzen. Die Warnungen für alle Landkreise, denen dasselbe Dateinamenskürzel zugeordnet ist, werden in derselben Datei zusammengefaßt. Die Dateien heißen warn-Dateinamenskürzel.inc und warn-Dateinamenskürzel.json.

Der Abschnitt [[cities]] wird benutzt, wenn die Warnungen auf Gemeindebasis angezeigt werden sollen. Darunter sind die Namen der Gemeinden nach den Regeln des Deutschen Wetterdienstes aufzuführen. Jede Gemeinde kommt in eine eigene Zeile. Dahinter ist ein Gleichheitszeichen und ein Dateinamenskürzel zu setzen. Die Warnungen für alle Gemeinden, denen dasselbe Dateinamenskürzel zugeordnet ist, werden in derselben Datei zusammengefaßt. Die Dateien heißen warn-Dateinamenskürzel.inc und warn-Dateinamenskürzel.json.

Aufruf

Der Aufruf muß in /etc/crontab oder in eine unter /etc/cron.hourly/ liegende Datei eingetragen werden. Er sieht ungefähr so aus:

/usr/local/bin/dwd-cap-warnings --weewx --resolution=city >/var/log/dwd-cap-warnings.log 2>&1

Wurde WeeWX mittels pip installiert, ist die Option --wewex durch --config=Pfad/der/weewx.conf zu ersetzen.

Sollen die Warnungen auf Landkreisbasis angezeigt werden, ist als Auflösung --resolution=county anzugeben.

Nutzung in Skins

Die erzeugten Warndateien werden im durch den Schlüssel path bezeichnete Verzeichnis abgelegt. Sie werden mittels #include eingefügt, zum Beispiel:

#include raw "SUBDIRECTORY/warn-Dateinamenskürzel.inc"

Copyright/Urheberrechtsangaben/Nutzungsbedingungen

Bitte beachten Sie die Nutzungsbedingungen des Herausgebers, hier des Deutschen Wetterdienstes.

Verweise

Clone this wiki locally