Corona Inzidenz

Inspiriert durch einen Artikel in der Zeitschrift c't, habe ich diese Einblendung gebaut. In dem Artikel geht es darum, dass das RKI sehr detaillierte Daten zu SARS-COV2 über eine Schnittstelle bereitstellt und jeder darauf zugreifen darf. Als Abonnent der c't könnt Ihr hier den Artikel lesen.
Wie man die Abfrage-URL generiert habe ich ganz unten beschrieben. 

Measures:

[MeasureRKI]
Measure=WebParser
URL=https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_Landkreisdaten/FeatureServer/0/query?where=OBJECTID=66&outFields=cases7_per_100k&returnGeometry=false&returnDistinctValues=true&outSR=4326&f=json
RegExp={"cases7_per_100k":(\d+)

[MeasureCorona]
Measure=WebParser
URL=[MeasureRKI]
StringIndex=1
IfCondition=MeasureCorona < 100
IfTrueAction=[!SetOption meterValueCorona FontColor 0,205,0,205]
IfCondition2=MeasureCorona >= 100
IfTrueAction2=[!SetOption meterValueCorona FontColor 205,205,0,205]
IfCondition3=MeasureCorona > 165
IfTrueAction3=[!SetOption meterValueCorona FontColor 205,0,0,205]

Der Übersichtlichkeit halber habe ich hier zwei Measures angelegt. Das erste Measure fragt über die API des RKI die 7 Tage Inzidenz für Essen ab. Über die RegExpression wird aus der Antwort nur der interessante Bereich gefiltert.
Das Measure [MeasureCorona] übernimmt die Werte des Measures [MeasureRKI]. StringIndex=1 definiert in Zusammenarbeit mit der RegExpression dass nur die Zahl an das meter übergeben wird, ohne den JSON Key "cases7_per_100k".
Die folgenden "if-then-Verszweigungen" sorgen nur dafür das die Farbe der Ausgabe, abhängig vom Wert, geändert wird. Unter 100 wird der Wert grün angezeigt. Zwischen 100 und 165 gelb und oberhalb von 165 rot.

Ausgabe:

[meterLabelCorona]
Meter=String
MeterStyle=styleLeftText
X=10
Y=40
W=#width#
H=14
Text=Inzidenz in Essen

[meterValueCorona]
Meter=String
MeterStyle=styleRightText
MeasureName=MeasureCorona
X=#width#
Y=0r
W=#width#
H=14

Bei der Ausgabe gibt es keine Überraschungen und keine Spezialitäten. [meterLabelCorona] erzeugt den Text "Inzidenz in Essen" linksbündig und [meterValueCorona] zeigt den Wert rechtsbündig an.

Corona API des RKI

Unter der Adresse https://npgeo-corona-npgeo-de.hub.arcgis.com/ hat das RKI mehrere APIs, die die unterschiedlichen Dashboards füttern. Interessant ist hier die API "RKI Corona Landkreise", über die man die Daten nach Landkreisen sortiert abrufen kann.

Einen Zugriff auf "RKI Corona Landkreise" erhält man unter https://npgeo-corona-npgeo-de.hub.arcgis.com/datasets/917fc37a709542548cc3be077a786c17_0/explore 

Dort wird eine Deutschlandkarte mit allen Landkreisen gezeigt. Wenn man nun auf einen Landkreis klickt, wird eine Tabelle mit den zugehörigen Daten eingeblendet.

Hier findet man auch schon die erste wichtige Information. In der ersten Zeile der Tabelle steht die ObjectID. Mit dieser Nummer kann man in der Abfrage nur den interessanten Landkreis abfragen. In meinem Fall hat Essen die ObjectID 66.

Mit dieser Information geht man jetzt unten links auf "Verwenden", öffnet "API Ressourcen anzeigen" und klickt dann auf den Link "In API Explorer öffnen".

Nun kann man sich die passende Abfrage URL zusammenbauen. Wenn man nur die 7 Tage Inzidenz abrufen möchte, sind zunächst alle angewählten Datenfelder abzuwählen außer cases7_per_100k.

Auf der rechten Seite wird die URL generiert. Zumindest fast. Diese kann man jetzt in die Zwischenablage kopieren und dann in einem Browser abrufen. Es gibt jedoch einen Fehler im URL Generator. Man muss manuell in der URL den Parameter where=1%3D1 durch where=OBJECTID=<ID aus der Tabelle> ersetzen. Also in meinem Fall where=OBJECTID=66.

Diese URL wird mit einem riesigen JSON Objekt beantwortet, in dem auch die geografischen Koordinatendaten des Landkreises liegen. Diese Koordinaten wird man los indem man ganz unten im Bereich "Ausgabeoptionen" die "Rückgabegeomentrie" auf "False" stellt.