Wetterstationsforum.info - Archiv

Software => DWD - OpenData => Thema gestartet von: enager am 22.01.2018, 21:01:28

Titel: OpenData nutzen
Beitrag von: enager am 22.01.2018, 21:01:28
Dieses Thema stand ursprünglich in DWD- Grundversorgung - Script Weather-Basic-Care 1.0 (We-Ba-Ca 1.0) (http://www.wetterstationen.info/forum/index.php?topic=27238.0).



Guten Abend,

ich habe es mal gewagt und am Wochenende die Datenauswertung von Grundauf neu geschrieben. Gebenüber dem alten GDS sind nun deutlich mehr Stationen auf den Karten verzeichnet. Die Programmierung lief diesmal deutlich unkomplizierter, da die Daten als CSV-Daeien vorliegen. Die alte Software hat sich die Daten aus einer HTML-Seite herausgefiltert. Die Filterung des HTML-Codes war wesentlich aufwendiger zu programmieren, als ein Semikolon als Trennzeichen zu vereinbaren.

Kurz und knapp, hier geht es zur Übersicht der neuen DWD-Messwertkarten:
http://wetterstation-hohenwalde.info.w016fc40.kasserver.com/wetterdaten/dwd-data/start.htm (http://wetterstation-hohenwalde.info.w016fc40.kasserver.com/wetterdaten/dwd-data/start.htm) Jede Station ist hier mit einem Monatsdiagramm verlinkt. Drauf klicken lohnt also. Allerdings ist die Software erst seit heute Abend am laufen und entsprechend liegen auch erst seit heute Abend Messwerte vor.
Titel: Re: OpenData nutzen
Beitrag von: odi am 24.01.2018, 07:55:51
Tolle Sache, besten Dank fürs Teilen.

Grüße
Ole
Titel: Re: OpenData nutzen
Beitrag von: enager am 24.01.2018, 08:40:33
Guten Morgen,

erst einmal vielen Dank für die Teilung des Themas. Als Klaus geschrieben hat, dass mein Beitrag nicht wirklich zum Thema passt, ist mir das auch selbst erst richtig aufgefallen. Beim Schreiben des Beitrags habe ich nur "DWD - Grundversorgung" gelesen und sah diesen Thread daher als geeignet an. Erst nach Klaus seinem Kommentar, fiel mir auf, dass hinter dem gelesenen Titel noch "- Script Weather-Basic-Care 1.0 (We-Ba-Ca 1.0)" folgte.

Nun denn, machen wir etwas aus diesem Thread. Da sicher viele andere hier im Forum sich auch der DWD-Daten bedienen und daraus teils tolle Scripte und Programme geschaffen haben, dachte ich daran, dass jeder hier sein Projekt vorstellen kann. Bei Sorgen und Problemen mit den Projekten, gibt es hier sicher irgendwo jemanden, der weiter helfen kann.

Mein Projekt basiert nicht auf PHP oder einer anderen Scriptsprache, sondern wurde unter Lazarus programmiert und wird auf meinem Banana-Pi Minicomputer daheim ausgeführt. Es holt sich die CSV-Dateien von 207 ausgewählten DWD-Stationen (https://opendata.dwd.de/weather/weather_reports/poi/) liest dort die oberste Zeile mit den aktuellsten Messwerten aus und schiebt diese Messwerte in ein Diagramm, in welchem schon die anderen Messwerte der vorangegangenen Stunden und Tage abgelegt sind. Zeitgleich werden diese Messdaten in die Deutschlandkarten eingetragen. Nachfolgend noch Upload des Diagramms auf die Homepage und danach ist die nächste Station dran. Wieder FTP-Download der CSV-Datei, eintragen ins Diagramm, eintragen in die Deutschlandkarten, Upload des Diagramms. Das geht runde 5 Minuten so, dann ist der kleine Banana-Pi mit allen Stationen durch und die Deutschlandkarte mit allen Stationswerten gefüllt. Entsprechend gehen dann auch die Deutschlandkarten hoch auf die Homepage. Danach ist warten angesagt. Warten bis es wieder XX:50:50 Uhr (HH:MM:SS) ist und die nächsten Datensätze abgefragt werden können. Zeitgleich lesen andere Lazarus-Programme fortwährend die Stationsdaten aus, empfangen Satellitenbilder, fragen die Webcam ab, erstellen zu jeder vollen Stunde Webcam-Zeitraffervideos und so weiter. Ich bin immer wieder erstaunt, was ich dem kleinen Banana-Pi so alles aufbürden kann, ohne das es Probleme gibt.

Das soweit zu dem hier vorgestelltem Projekt. Für Anregungen und Kritiken bin ich jederzeit offen. Schließlich macht die Sache nur Sinn, wenn die Datenauswertung auch korrekt abläuft und sich in den Diagrammen keine Fehler eingeschlichen haben. Gestern Abend zum Beispiel habe ich die Software noch einmal umgeschrieben. Da in den CSV-Dateien nicht vorhandene Messwerte mit einem "---" dargestellt werden, habe ich die Striche von der Software einfach ignorieren lassen. Dabei habe ich allerdings nicht an negative Temperaturen gedacht. Durch die Nichtübernahme des Minus, hatte die Zugspitze in meinen Diagrammen plötzlich +10,x°C. Dies wurde nun behoben, in dem die Software ausschließlich "---" raus filtert. Einzelne Striche gehen jetzt durch und damit bleiben negativen Temperaturen auch ihr Minus erhalten.

So, das wars jetzt aber wirklich erst einmal dazu. Ich könnte Buchautor werden, bei dem was ich immer alles schreibe  :D.

@odi: Vielen Dank. Freut mich, wenns gefällt  ;).
Titel: Re: OpenData nutzen
Beitrag von: falk am 24.01.2018, 09:40:10
Ich hole mir die Daten unter ftp://ftp-cdc.dwd.de/pub/CDC/observations_germany/climate/10_minutes/

Für die Wetterseite nutze ich hierfür erst nur die Sonnenscheindauer. Da die nächste DWD-Station nur wenige Kilometer entfernt ist, sind die Daten für mich hochinteressant.

https://buwx.de/index.php/chart/heatmaps

Die anderen Messdaten dienen der Kontrolle meiner Sensoren. Insbesondere der Niederschlag lässt sich jetzt um diese Jahreszeit gut vergleichen.


+---------------------+----------+------+-----------+
| date                | dwd_rain | rain | diff_rain |
+---------------------+----------+------+-----------+
| 2018-01-24 01:00:00 |      0.0 |  0.0 |       0.0 |
| 2018-01-23 01:00:00 |      0.0 |  0.0 |       0.0 |
| 2018-01-22 01:00:00 |     11.9 | 13.4 |      -1.5 |
| 2018-01-21 01:00:00 |      0.4 |  0.6 |      -0.4 |
| 2018-01-20 01:00:00 |      9.1 |  9.2 |      -0.1 |
| 2018-01-19 01:00:00 |      3.0 |  3.6 |      -0.6 |
| 2018-01-18 01:00:00 |      6.2 |  5.8 |       0.4 |
| 2018-01-17 01:00:00 |      3.3 |  2.8 |       0.5 |
| 2018-01-16 01:00:00 |     11.0 |  9.4 |       1.6 |
| 2018-01-15 01:00:00 |      1.6 |  1.4 |       0.2 |
| 2018-01-14 01:00:00 |      0.0 |  0.0 |       0.0 |
| 2018-01-13 01:00:00 |      0.0 |  0.0 |       0.0 |
| 2018-01-12 01:00:00 |      0.0 |  0.0 |       0.0 |
| 2018-01-11 01:00:00 |      0.0 |  0.2 |      -0.2 |
| 2018-01-10 01:00:00 |      0.0 |  0.0 |       0.0 |
| 2018-01-09 01:00:00 |      0.0 |  0.0 |       0.0 |
| 2018-01-08 01:00:00 |      0.0 |  0.0 |       0.0 |
| 2018-01-07 01:00:00 |      0.0 |  0.2 |      -0.2 |
| 2018-01-06 01:00:00 |      0.7 |  2.0 |      -1.3 |
| 2018-01-05 01:00:00 |      5.6 |  5.8 |      -0.2 |
| 2018-01-04 01:00:00 |     12.9 | 12.6 |       0.3 |
| 2018-01-03 01:00:00 |      9.2 |  6.0 |       3.2 |
| 2018-01-02 01:00:00 |      2.2 |  2.2 |       0.0 |
| 2018-01-01 01:00:00 |      0.4 |  0.4 |       0.0 |
| 2017-12-31 01:00:00 |      0.0 |  0.2 |      -0.2 |
+---------------------+----------+------+-----------+


Titel: Re: OpenData nutzen
Beitrag von: LE-Wetter am 24.01.2018, 18:56:06
@enager

Respekt wie du die Seite erstellt hast und schreibst das so daher, als ob das jeder in 10 Minuten auf seinem Rechner hinbekommen könnte  :D Da steckt aber schon eine Menge Wissen und Können dahinter  :top: Beim ersten Schauen hatte ich nur die vielen Überlagerungen der Städtenamen gesehen, da aber die Karte ja deutlich zu vergrößern geht, ist das auch gelöst - auch die grafische Umsetzung der einzelnen Stationen - Klasse.  :top:

Wieviel Datenvolumen verbrauchst du pro Tag?
Titel: Re: OpenData nutzen
Beitrag von: enager am 24.01.2018, 19:28:56
@LE-Wetter:

So das riesen Ding war es auch nicht. Auf jeden Fall wesentlich einfacher, als die Version davor, als meine Software sich die Daten aus einer HTML-Datei raus gesaugt hat. Da musste sie noch den ganzen HTML-Code raus filtern. In der jetzigen Version gilt es lediglich darauf zu achten, dass das Semikolon als Trennzeichen zu verstehen ist und ein Datensatz mit --- als nicht gemeldeter Wert zu verstehen ist. Der ganze Rest wird in Variablen eingelesen und in die Diagramme und Landkarten eingefügt.

Die eigentliche Arbeit macht hier der Rechner des Betrachters. In den Dateien sind lediglich die Messwerte hinterlegt, der Rechner des Betrachters generiert auf Basis der Scriptanweisungen und Styleinformationen in den verlinkten CSS-Dateien, die Diagramme und Landkarten. Daher schwirren hier pro Diagramm/Landkarte nur einige Kilobyte oder weniger, durchs Internet. Da sind die Webcam-Zeitraffervideos und auch die Satellitenbilder deutlich größer. Ist eben AmCharts. Bietet gegenüber Grafiken den großen Vorteil, dass die User sich einen interessanten Diagrammeil heranzoomen können. Zudem hängt ein Cursor am Mauszeiger, welcher die Messwerte an der Mausposition oben links im Diagrammtitel anzeigt. Somit kann keiner sagen, er könne die Messwerte nicht genau aus dem Diagramm ablesen. Denn das macht das Script schon.

Ich habe eben mal geschaut, was mein Hoster so zu meinem Traffic sagt. Im Monat Januar habe ich bislang einen Gesamttraffic von 37.742 MB hingelegt. FTP-Traffic sind davon 22.259 MB und HTTP-Traffic beläuft sich auf 15.483 MB. Aber das muss deren Server abkönnen. Nicht umsonst dürfen die sich jeden Mont 5€ von meinem Konto abholen.


Nachtrag:

Ich habe mal noch 3 Screenshots vom Banana-Pi hochgeladen. Hier ist die unter Lazarus erstellte Software zu sehen. Gerade der dritte Screenshot dürfte interessant sein, da er das Programm für die Erstellung der DWD-Diagramme und Deutschlandkarten zeigt. Screenshot 1 hingegen zeigt die Software, welche die Daten meiner Wetterstation einliest und auswertet und damit auch meine Stationsdiagramme generiert. Ganz unten, das lange, schmale Programm steuert die Webcamaufzeichnung. Und im Screenshot 2 ist das Programm zu sehen, welches die Satellitenaufnahme über den DVB-T Stick (RTL2832u) steuert.

Lazarus macht sich klasse. Ist eine schöne, einfache, objektorientierte Programmiersprache in Basic-Syntax. Genau genommen ist Lazarus eine nahezu hundertprozentige Kopie von Delphi. Nur Lazarus ist im Gegensatz zu Delphi kostenfrei und gibt es sowohl für Windows, als auch für Linuxsysteme. Selbst für den Raspberry-Pi und ähnliche Minicomputer wurden ältere Lazarusversionen inzwischen konvertiert. Somit steht Lazarus auch für den Raspberry-Pi zur Verfügung.

Noch ein Update  :D :


Da das Forum die Dateianhänge in der Größe reduziert udn somit nicht mehr alle Details erkennbar sind, habe ich sie auf meine Homepage hochgeladen.
Screenshot1 (http://wetterstation-hohenwalde.info.w016fc40.kasserver.com/Bilder/fuer-Forum/Screenshot1.jpg)
Screenshot2 (http://wetterstation-hohenwalde.info.w016fc40.kasserver.com/Bilder/fuer-Forum/Screenshot2.jpg)
Screenshot3 (http://wetterstation-hohenwalde.info.w016fc40.kasserver.com/Bilder/fuer-Forum/Screenshot3.jpg)
Titel: Re: OpenData nutzen
Beitrag von: TheWeather am 24.01.2018, 19:55:30
Hallo enager,

ich denke auch,
ZitatIn der jetzigen Version gilt es lediglich darauf zu achten, dass das Semikolon als Trennzeichen zu verstehen ist und ein Datensatz mit --- als nicht gemeldeter Wert zu verstehen ist.
dass es wesentlich einfacher ist, aus einer .csv (selbst einer .zip mit vorgeschaltetem Entcoder) an die Werte zu gelangen, als es durch Parsen eines HTML-Textes mit allen Ungereimtheiten, die sich bei einem Autor einschleichen könnten, zu entschlüsseln.

In C++ liest man eine Liste (z.B. aus einer Datei) ein, bestimmt den Delimiter (hier z.B. das ";") und hat den kompletten Inhalt in einer Textliste, nach Inhalten getrennt und die Einzeltexte oder Daten leicht durch Indizees in das Programm einzubauen verfügbar. So übel finde ich das Konzept "Open Data" des DWD nun nicht. Man muss sich halt erst mal damit vertraut machen und wie bei jedem neuen ("reformierten") Konzept, gibt es auch hier neue Hürden zu nehmen.

Solange das Konzept "DWD Open Data" keine Daten ausschließt, welche früher mal verfügbar waren, braucht es nur eine gewisse Umstellung der Auswertung und eventuell auch das Neuauffinden der entsprechenden, neuen Quellen.

Meines Erachtens bleibt Alles im grünen Bereich ...

Gruß Hans
Titel: Re: OpenData nutzen
Beitrag von: enager am 24.01.2018, 20:16:13
Zitatich denke auch, dass es wesentlich einfacher ist, aus einer .csv (selbst einer .zip mit vorgeschaltetem Entcoder) an die Werte zu gelangen, als es durch Parsen eines HTML-Textes mit allen Ungereimtheiten, die sich bei einem Autor einschleichen könnten, zu entschlüsseln.

Dem schließe ich mich an. Unter Linux ist es absolut kein Thema mal schnell per Konsolenbefehl eine Datei automatisiert entpacken zu lassen und sie dann der weiteren Verarbeitung zuzuführen. Von PHP habe ich jetzt keine wirkliche Ahnung, aber als ich meine Homepage vom alten Hoster zum jetzigen verschoben habe, merkte ich, dass auch PHP und MqSQL kein Poblem mit ZIP-Dateien haben. Diesen Beispielen (http://php.net/manual/de/zip.examples.php) nach liege ich mit meiner Vermutung richtig. ZIP ist für PHP absolut kein Thema. Eine kleine Befehlszeile und schon kann PHP etwas mit den Daten in einer ZIP-Datei anfangen, auswerten und gegebenenfalls in eine Datenbank schreiben.

Also aus meiner Sicht, haben sich die Leute beim DWD da wirklich Gedanken gemacht, wie sie ihre Daten den Hobby-Programmierern besser zugänglich und verarbeitbar machen können. Zumal jetzt nicht einmal mehr ein Login notwendig ist. Erspart eine Fehlerquelle, nämlich falsche Zugansdaten. Alles in allem stehe ich dem neuen Opendata-Projekt des DWD inzwischen nach eigener Erfahrung positiv gegenüber.
Titel: Re: OpenData nutzen
Beitrag von: Wetterfrosch1971 am 24.01.2018, 20:48:18
Hallo,

irgendwie ist das für mich alles ein Buch mit 7 Siegeln.

kann mir vielleicht jemand erklären, wie ich z.B. an die aktuellen Messwerte der DWD-Station Feldberg/Schwarzwald komme?

Ich komme einfach mit den Dateien aus diesen "Optadata" nicht zurecht, wo sehe ich denn, von welcher DWD Station die Werte sind und wie kann ich diese dann auf meinem Webspace verarbeiten (benötige von der Station Feldberg die aktuelle Temperatur und die Luftfeuchte).

Danke für die Hilfe.
Gruß Frank
Titel: Re: OpenData nutzen
Beitrag von: enager am 24.01.2018, 20:55:45
Hallo Frank,

ich habe eben mal in meiner Karte nachgeschaut. Hier das Diagramm (http://wetterstation-hohenwalde.info.w016fc40.kasserver.com/wetterdaten/dwd-data/10908.htm). Wie Du am Dateinamen der Station erkennen kannst (10908.htm) hat die Station "Feldberg/Schwarzwald" die Stations-ID 10908. Nach dieser schaust Du nun unter opendata.dwd.de (https://opendata.dwd.de/weather/weather_reports/poi/) Und schwupps, da ist sie schon: https://opendata.dwd.de/weather/weather_reports/poi/10908-BEOB.csv

Auf diesem neuen Server läuft einfach alles über die Stations-ID. Wenn Du diese kennst, findest Du jede DWD-Station in dem verlinkten Verzeichnis.

Liebe Grüße, Stefan.
Titel: Re: OpenData nutzen
Beitrag von: Wetterfrosch1971 am 24.01.2018, 21:30:07
Hallo,

ah, das mit der id wusste ich nicht, das macht das ganze jetzt natürlich transparenter.
Gibt es denn irgendwo eine Übersichtstabelle über alle DWD-Stationen zuzüglich ihrer id?
Titel: Re: OpenData nutzen
Beitrag von: enager am 24.01.2018, 21:33:35
Jupp, hier: https://www.dwd.de/DE/leistungen/opendata/help/stationen/ha_messnetz.xls?__blob=publicationFile&v=1

Diese Tabelle habe ich auch bei der Programmierung meiner Software verwendet. Macht sich gut, da auch gleich die GPS-Koordinaten aller Stationen mit aufgeführt sind. Die Stations-ID ist hier in der Spalte "WMO-Kennung" zu finden. In der ersten Spalte, die Stations-ID ist vermutlich eine DWD-interne Stations-ID. Auf jeden Fall sind die WMO-Kennungen für Dich relevant  ;) .
Titel: Re: OpenData nutzen
Beitrag von: Wetterfrosch1971 am 24.01.2018, 21:49:46
Super, danke für die Liste.

Noch eine Frage, weiß jemand wieso man die DWD-Station in 79379 Müllheim (ID: 259) beim DWD nirgens findet:
http://www.wzforum.de/forum2/read.php?38,3250873

Diese Station liegt gerade mal 3km von mir entfernt und somit wären ihre Messwerte interessant für mich, doch leider finde ich sie im Messnetz des DWD nicht.
Titel: Re: OpenData nutzen
Beitrag von: falk am 24.01.2018, 23:45:49
Zitat von: Wetterfrosch1971 am 24.01.2018, 21:49:46
Super, danke für die Liste.

Noch eine Frage, weiß jemand wieso man die DWD-Station in 79379 Müllheim (ID: 259) beim DWD nirgens findet:
http://www.wzforum.de/forum2/read.php?38,3250873


Hallo Frank,

hier findest du alle Werte dieser Station seit 24.03.2003 im 10-Minuten-Takt  :)

ftp://ftp-cdc.dwd.de/pub/CDC/observations_germany/climate/10_minutes/

Ich habe mir von meiner Station 4931 die historischen Daten einmalig die Datenbank gefüllt und hole mir per Cronjob nur noch täglich die "recent"-Daten.

Gruß
Falk

Titel: Re: OpenData nutzen
Beitrag von: enager am 25.01.2018, 10:48:04
Hi,

das mit der Station von Frank wundert mich auch etwas, dass diese nirgends zu finden ist. Deren Messwerte sollen wohl geheim bleiben  :D.

Bei mir gibt es Neuigkeiten. Ich habe eben ein Formular in den Titelframe eingebaut. Damit können die Wetterstationen nun über einen nach unten ausklappendes Auswahlmenü ausgewählt werden. Darüber ist es auch möglich, sich die Stationsdiagramme bereits vergangener Monate anzuschauen. Die ganze Sache läuft erst seit 22.01.2018. Entsprechend enthält das Archiv bisher noch keine Daten so wirklich. Aber zukünftig wird es interessant, Wenn sich dann beispielsweise jemand fragt "Wie viel Schnee lag nochmal am 25.01.2018 um 12 Uhr mittags auf dem Brocken?", dann ist das kein Problem. Einfach im Formular 01-2018 eingestellt, den Brocken ausgewählt und auf "Diagramm anzeigen" geklickt. Dann im Diagramm den 25.01. markiert und hineingezoomt und dann können mit der Maus die Werte um 12 Uhr Mittags ausgelesen werden.

Zudem habe ich mit weiteren Deutschlandkarten gespielt:
Sichtweite in Kilometern (http://wetterstation-hohenwalde.info.w016fc40.kasserver.com/wetterdaten/dwd-data/Sicht.htm)
Sonnenscheindauer in den letzten 60 Minuten (http://wetterstation-hohenwalde.info.w016fc40.kasserver.com/wetterdaten/dwd-data/Sonne.htm)
Direkte Sonneneinstrahlung (http://wetterstation-hohenwalde.info.w016fc40.kasserver.com/wetterdaten/dwd-data/DirekteStrahlung.htm)
Globalstrahlung (http://wetterstation-hohenwalde.info.w016fc40.kasserver.com/wetterdaten/dwd-data/GlobalStrahlung.htm)

Gerade die Strahlungswerte scheinen eher Exoten zu sein, die bei weitem nicht überall gemessen werden. In den Deutschlandkarten werden nicht gemessene Werte als 000W/m² angezeigt. Der Wert 0 selbst, wenn also gemessen wurde, aber eben 0W/m² sind, dann steht dort nur 0W/m². Damit kann unterschieden werden, wo die Strahlung gemessen wird.

Die Sonnenscheindauer werde ich heute Abend noch in das Luftdruck-Diagramm einbauen. Der Luftdruck gruselt sich da so allein in so einem großen Diagramm  :D.

Das ganze ist nach wie vor zu finden unter wetterstation-hohenwalde.info (http://wetterstation-hohenwalde.info/) -> WS-sonstiges/DWD-Wetterdaten  ;)
Titel: Re: OpenData nutzen
Beitrag von: wneudeck am 25.01.2018, 16:52:49
Hallo,
möchte einen Link von falk hier zusätzlich nochmals einbinden, auch wenn er mit dem Thema opendata nicht unmittelbar zu tun hat.
Es geht darum, mit welchen Links fertige Darstellungen eingebunden werden können, was ich für recht nützlich halte
https://www.dwd.de/DE/wetter/warnungen_aktuell/objekt_einbindung/objekteinbindung.html