-
Notifications
You must be signed in to change notification settings - Fork 4
Deutscher Wetterdienst
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.
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
- Wettervorhersage als HTML-Tabelle, JSON-Datei oder Datenbank für WeeWX
- Wettervorhersage als Text
- Pollenflugvorhersage
- Biowettervorhersage
- Niederschlagsradar
- Bodenwetterkarte
- Wetterwarnungen
- Warnstatuskarten
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.
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
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, wennpressure
undoutTemp
verfügbar) -
barometerDWD
: nach der Formel des DWD auf Meeresniveau umgerechneter Luftdruck (nur bei CDC und nur wennpressure
,outTemp
undoutHumidity
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.
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.
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]]]
Einzutragen in skin.conf
:
[ImageGenerator]
...
[[day_images]]
...
[[[station_xyz_measurements]]]
data_binding = cdc10_binding
line_gap_fraction = 0.04
[[[[xyzOutTemp]]]]
[[[[xyzDewpoint]]]]
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:
- MOSMIX-Stationen Deutschland Nord
- MOSMIX-Stationen Deutschland Ost
- MOSMIX-Stationen Deutschland Süd
- MOSMIX-Stationen Tschechien
- MOSMIX-Stationen Österreich
- MOSMIX-Stationen Schweiz
Eine Übersicht über die verfügbaren Wetterelemente gibt:
Vorhersagegrößen:
-
outTemp
: Lufttemperatur 2m -
dewpoint
: Taupunkt 2m -
windchill
: Windchill-Temperatur (ausoutTemp
undwindSpeed
berechnet) -
heatindex
: Hitzeindex (ausoutTemp
unddewpoint
berechnet, nur bei Temperaturen ab 26,7°C und Luftfeuchte ab 40%) -
outHumidity
: relative Luftfeuchte (ausoutTemp
unddewpoint
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
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.
[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.
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.
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.
[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
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 .
.
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.
Der Deutsche Wetterdienst stellt Warnsymbole zum Herunterladen bereit:
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.
[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
.
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.
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"
Bitte beachten Sie die Nutzungsbedingungen des Herausgebers, hier des Deutschen Wetterdienstes.
- Deutscher Wetterdienst
- Deutscher Wetterdienst - Informationen für Hobbymeteorologen
- Deutscher Wetterdienst - Open Data
- Deutscher Wetterdienst - GeoServer
- POI-Stationen in Deutschland
- CDC-Stationen
- Abkürzungen der Bundesländer beim Deutschen Wetterdienst
- Namen der Landkreise in der Schreibweise des Deutschen Wetterdienstes
- WarncellIds
- Warnicons