sofortmassnahmen icon indicating copy to clipboard operation
sofortmassnahmen copied to clipboard

Bundesamt für Strahlenschutz: Gamma-Ortsdosisleistung

Open LilithWittmann opened this issue 3 years ago • 22 comments

https://odlinfo.bfs.de/DE/index.html

LilithWittmann avatar Aug 21 '21 08:08 LilithWittmann

https://odlinfo.bfs.de/json26a81cf54345c5b33f6a026c50517290/stamm.json

scheint alle messstellen zu beinhalten

Hypercookie avatar Aug 21 '21 12:08 Hypercookie

@3nol und ich könnten das fix dokumentieren

Hypercookie avatar Aug 21 '21 12:08 Hypercookie

@Hypercookie hier ein Repo. https://github.com/bundesAPI/strahlenschutz-api

LilithWittmann avatar Aug 21 '21 20:08 LilithWittmann

Hash kann man scheinbar weglassen: https://odlinfo.bfs.de/json/stamm.json

Keys aus stamm.json kann man für den Retrieval einer einzelnen Messstation nutzen: https://odlinfo.bfs.de/json/082150170.json

@Hypercookie bist du da schon dran? Sonst kann ich mich um die OpenAPI-Spec kümmern :blush:

jens-ox avatar Aug 22 '21 07:08 jens-ox

Dokumentation in PDF-Form hier: https://odlinfo.bfs.de/downloads/Datenbereitstellung-2016-04-21.pdf

jens-ox avatar Aug 22 '21 09:08 jens-ox

Initiale Schemas: https://github.com/bundesAPI/strahlenschutz-api/pull/1

jens-ox avatar Aug 22 '21 09:08 jens-ox

Super! Domain ist aufgeschaltet. https://strahlenschutz.api.bund.dev/

LilithWittmann avatar Aug 22 '21 10:08 LilithWittmann

@jens-ox Uh.. da warst du schneller als ich :) danke dir

Hypercookie avatar Aug 22 '21 10:08 Hypercookie

Der MD5 im JSON-Pfad bereitet mir noch Kopfzerbrechen - die Daten ohne MD5 sind alte Daten. Der Hash ist im initialen Payload der Seite eingebettet:

var jkey = '72bd24b6b2d47858e51caa57fe170232';

Browserspezifisch ist der Hash nicht, das Datum hab ich auch schon in verschiedenen Formaten probiert. Scheint sich aber auch mehrmals pro Tag zu ändern 😞

jens-ox avatar Aug 22 '21 10:08 jens-ox

Die 1-Stunden-Mittelwerte und die Stammdaten werden zu den folgenden Zeiten aktualisiert: 04:30 Uhr UTC 10:30 Uhr UTC 16:30 Uhr UTC 22:30 Uhr UTC

Passt das eventuell zu dem mehrmals am tag?

Hypercookie avatar Aug 22 '21 11:08 Hypercookie

Es sind auch keine gehasheten UnixTimeStamps von keinen dieser Uhrzeiten. Wenn der hash/key mit dem HTML statisch kommt lässt das sowieso nichts gutes vermuten. Grade da man sich für die eigentliche Datenschnittstelle registrieren muss.

Hypercookie avatar Aug 22 '21 11:08 Hypercookie

So, bin jetzt auch hier. Hab den ganzen Tag rumprobiert.

Es wird wohl kein Weg dran vorbeiführen, vor JEDEM JSON-Aufruf einer Messstelle VORHER die entprechende HTML-Seite aufzurufen und den aktuellen Key daraus zu extrahieren.

https://odlinfo.bfs.de/DE/aktuelles/messstelle/<Ortskennung>.html

Daraus den aktuellen Key extrahieren und damit die JSON-Daten abrufen

https://odlinfo.bfs.de/json<AktuellerKey>/<Ortskennung>.json

KLiebrecht1 avatar Aug 22 '21 13:08 KLiebrecht1

Ich habe mal den BFS-Leuten geschrieben und nach Zugangsdaten gefragt. Vielleicht lässt sich ja darüber was ableiten 🙈

Ich nehme an (und hoffe!), dass das irgendein Timestamp-Hash ist. Dann könnte man sehr schön auch historische Daten abfragen.

jens-ox avatar Aug 22 '21 13:08 jens-ox

Hast du die Zugangsdaten mittlerweile erhalten? Und konntest du daraus etwas ableiten?

KLiebrecht1 avatar Sep 04 '21 06:09 KLiebrecht1

Ja, habe mittlerweile Zugangsdaten bekommen - die Daten sind vom Format her identisch zu den öffentlich verfügbaren, außer dass man nicht den Key braucht. Ich habe Herrn Müller, der für die Schnittstelle verantwortlich zu sein scheint darum gebeten, die JSON-Files ohne Key mitzuaktualisieren. Er meint, er werde sich bei mir melden, sobald das der Fall ist.

jens-ox avatar Sep 10 '21 22:09 jens-ox

Das Bundesamt für Strahlenschutz (BfS) begrüßt Initiativen zu Open Data und veröffentlicht seit vielen Jahren auch Daten zur Gamma-Ortsdosisleistung als Information für die Bevölkerung. Auf dem Portal ODL-Info (https://odlinfo.bfs.de) stehen die jeweils letzten verfügbaren Stundenmittelwerte der betriebsbereiten Messstellen sowie die Zeitreihen der einzelnen Messstellen im JSON-Format offen zur Verfügung. Eine standardkonforme API für die Daten auf ODL-Info existiert noch nicht. Die Umstellung auf OGC-konforme Geodatendienste (https://de.wikipedia.org/wiki/Open_Geospatial_Consortium), wie sie bereits im Geoportal des BfS (https://www.imis.bfs.de/geoportal/) eingesetzt werden und bei Daten mit Raumbezug internationaler offener Standard sind, befindet sich aktuell in Umsetzung. Sobald auch ODL-Info auf OGC-Standards umgestellt ist, können neben Geographischen Informationssystemen (GIS, z.B. https://www.qgis.org) gängige Programmbibliotheken wie OpenLayers (https://github.com/openlayers/openlayers), Leaflet (https://github.com/Leaflet/Leaflet) oder Vergleichbares in den jeweiligen Programmiersprachen für den anonymen Zugriff verwendet werden. Eine Authentifizierung oder Registrierung ist für diese Dienste nicht erforderlich. Bei Fragen ist das BfS auch gerne unter [email protected] oder @strahlenschutz auf Twitter errreichbar. Auf Github sind unsere Open Source Projekte unter OpenBfS (https://github.com/OpenBfS) zu finden.

mlechner avatar Oct 12 '21 13:10 mlechner

Gute Nachrichten! Das Bundesamt für Strahlenschutz hat die neue API veröffentlicht. Allgemein zugänglich, man braucht jetzt keinen Key mehr. Sehr schön. Dokumentation gibt es hier: https://odlinfo.bfs.de/ODL/DE/service/datenschnittstelle/datenschnittstelle_node.html

KLiebrecht1 avatar Dec 03 '21 05:12 KLiebrecht1

Hi @KLiebrecht1, ist im entsprechenden Repo schon umgesetzt ☺️

jens-ox avatar Dec 03 '21 07:12 jens-ox

Hallo @jens-ox und @KLiebrecht1,

das wichtige daran ist ja nicht, dass es da überhaupt irgendeine API von Behördenseite gibt, die idealerweise auch noch dokumentiert ist. Besser ist, dass die Datenschnittstelle des BfS nicht mehr custom ist, sondern wie das Geoportal des BfS, auf eine offene Standardschnittstelle auf Basis der OGC-Standards umgestellt wurde.

Die OGC Standards finden in der Webkartographie breite Verwendung und werden bei fast allen Geoportalen (von kommunal bis EU und darüber hinaus) eingesetzt. Das Nette daran ist, dass es in allen gängigen Programmiersprachen Bibliotheken gibt, die die Nutzung der OGC-Standards sehr einfach machen und man sich nicht selbst mit JSON oder XML parsing und dem Handling der resultierenden Objekte kümmern muss. Im Webmapping/JS sind das in erster Linie die beiden OS Projekte OpenLayers und Leaflet. Leider gibt es diese hohe Standardisierung nicht in vielen anderen Themenbereichen.

Übrigens gibt es von der OGC seit kurzem (Ende 2019 ☺️) die OGC-API Features oder auch hier. Damit wird dann auch eine OpenAPI konforme Veröffentlichung von Features als OGC Standard möglich. Das muss jetzt nur noch in die entsprechenden Projekte, wie Geoserver und eben den genannten JS-Libs implementiert werden (Anfänge dazu gibt es schon) und wir können unsere Daten auch darüber veröffentlichen.

We do our very best!

Marco

mlechner avatar Dec 03 '21 08:12 mlechner

Also tbh. finde ich es relativ traurig das die einfach zugängliche API zugunsten von OGC komplett abgeschaltet wurde. OGC ist halt stand heute für die meisten Menschen weniger zugänglich als 3 json Endpunkte aus denen Daten rausfallen.

Wäre das jetzt wirklich linked open data, würde ich sagen "hey das ist es wert" aber so ist es halt mit der gleichzeitigen Abschaltung anderer Schnittstellen schon ein bisschen schade, dass es die leichter Zugänglichen Schnittstellen nichtmehr gibt.

LilithWittmann avatar Dec 04 '21 01:12 LilithWittmann

@LilithWittmann Die bisherige (alte) offizielle Schnittstelle ist nach wie vor verfügbar und seit der Umstellung sogar ohne vorherige Registrierung frei nutzbar. Da die überarbeitete ODL-Info Webseite jetzt auf anderen Systemen gehostet wird, als die Datenschnittstelle, hat sich die URL zur alten Datenschnittstelle geändert. Entsprechende Weiterleitungen sind jedoch eingerichtet. Die json-Dateien der alten Schnittstelle sind in der gewohnten Form weiterhin unter https://odlinfo2.bfs.de/daten/json/ verfügbar und werden regelmäßig aktualisiert. Langfristig ist angedacht, dass die alte Schnittstelle irgendwann abgeschaltet wird. Hierzu werden vorab alle registrierten Nutzer informiert werden.

crycode-de avatar Dec 04 '21 18:12 crycode-de

@LilithWittmann Man kann sich bestimmt endlos darüber streiten, ob man die eine oder die andere API einfacher oder zugänglicher findet. Im Einzelfall mag eine custom API (und das ist die bisherige nun Mal) einfacher erscheinen als eine API, die auf einem internationalen offenen Standard beruht. Die Programmierarbeit hört aber nicht beim Abholen der Daten auf, sondern geht dann erst richtig los. Wenn ich mir dann für jede API eigene Klassen mit ihren Methoden bauen muss, ist der Aufwand unterschiedliche Datenquellen miteinander zu verknüpfen entsprechend aufwändig. Dagegen werden APIs, die auf Standards setzen, wie im Falle geographischer Daten die OGC-Standards, in den diversen Programmiersprachen über gängige Bibliotheken unterstützt, so dass die Handhabung in der konkreten Umsetzung sehr einfach ist. Um die Daten eines OGC-WFS Dienstes von einer anderen Behörde zu holen, muss ich im Idealfall :-) lediglich die URL und den Parameter des Layernamens (siehe Examplecode, l.14 ff): https://openlayers.org/en/latest/examples/vector-wfs.html) anpassen (für Python "OWSlib"). Nach meiner persönlichen Meinung darf die Forderung nach frei zugänglichen APIs nicht am "ob" halt machen, sondern sollte auch auf das "wie" eingehen (aber da rudern wie ja in die gleiche Richtung, sitzen vielleicht sogar im selben Boot).

mlechner avatar Dec 06 '21 12:12 mlechner