Bekijk de COVID-19 cijfers met de Github-API

Ingediend door Dirk Hornstra op 08-apr-2020 22:50

Op radio, tv en in de krant wordt je overspoeld met informatie over het Corona virus/covid-19. Ook op social media komt het steeds meer naar voren. Zo kwam ik op meerdere facebookpagina's de afbeelding tegen waar de cijfers van Nederland en Italië naast elkaar worden gelegd, de datums zijn wat verschoven omdat de epidemie in Italië eerder gestart is en waarbij je dan ziet dat het redelijk gelijk loopt. En dan vraag ik me af, is het waar? Want je had ook het bericht op twitter dat het water in Venetië een stuk schoner was, maar later bleek dat fake-nieuws te zijn omdat dit foto's waren van een andere plaats... De vergelijking tussen Nederland en Italië was van 21 maart, dus wat is de huidige status?

Tijdens mijn zoektocht kwam ik op de pagina van De Morgen (een Belgische krant), met het overzicht en een wereldkaart: link. Een krant zou betrouwbare gegevens moeten publiceren. Bij de kaart wordt netjes de bron met naam en link getoond: Johns Hopkins CSSE en de link. En toen kwam ik tot mijn verrassing uit op een pagina van Github. Github is een dienst van Microsoft waar ontwikkelaars hun code in versiebeheer kunnen opslaan. Maar je kunt er dus ook dagelijkse overzichten (CSV-bestanden in dit geval) opslaan met de cijfers van de impact van Corona in de wereld.

Die Johns Hopkinks CSSE is een universiteit in Baltimore, Amerika: link. Ze hebben zelf ook een duidelijk/indrukwekkend dashboard gemaakt: link. De bron lijkt me dus betrouwbaar.

In het eigen dashboard wat ik wil maken ga ik een filtering toepassen. Ik wil namelijk alleen zien wat de cijfers in Nederland en de omringende landen doen (België, Frankrijk, Luxemburg, Duitsland, Denemarken, Oostenrijk, Zwitserland, Italië). Het is erg dat er allemaal mensen in New York geïnfecteerd en ziek zijn, maar deze hebben geen rechtstreekse invloed op de cijfers in Nederland.

Hoe kan ik automatisch de gegevens uit deze Github repository opvragen en gebruiken? Github heeft natuurlijk een api, deze heb ik nog niet eerder gebruikt, dus eerst maar eens gaan zoeken wat dit biedt / hoe dit werkt, dus naar de pagina over de REST api, v3 gegaan: link.

Door onderstaande URL aan te roepen krijg ik JSON terug, met daarin een overzicht van de repo's (dat is er maar 1, de COVID-19 repo) en ik zie daar de velden updated_at, pushed_at, daar zou ik op moeten kunnen filteren of er wat aangepast is, of dat er een nieuw bestand met nieuwe cijfers toegevoegd is:


https://api.github.com/users/CSSEGISandData/repos

Dan is de vraag, hoe kan ik dit bestand binnen halen? Ik kan het ZIP-bestand downloaden, wat je in je browser ziet als je naar de repo gaat:


https://github.com/CSSEGISandData/COVID-19/archive/master.zip

Maar kan het niet handiger? Het gaat mij tenslotte alleen maar om de CSV-bestanden die in de map https://github.com/CSSEGISandData/COVID-19/tree/master/csse_covid_19_data/csse_covid_19_daily_reports staan.

Via de eigenschap contents_url kom ik uiteindelijk uit op deze locatie:


https://api.github.com/repos/CSSEGISandData/COVID-19/contents/csse_covid_19_data/csse_covid_19_daily_reports?ref=master

Kijk, dat is beter, je krijgt in JSON-formaat een overzicht van alle bestanden die in deze map staan. En elk bestand heeft een eigenschap download_url, wat je rechtstreeks naar het bestand brengt. De onderstaande link toont de inhoud van het bestand van 2 april 2020:


https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_daily_reports/04-02-2020.csv

Als ik zoek op "Netherlands" vind ik ook nog Sint Maarten, Aruba, Bonaire, dus het lijkt me wel netjes om ook deze delen van ons koninkrijk toe te voegen aan het eigen dashboard.

 

Nu sla ik dat nog even over, ik wil eerst de cijfers van Nederland tonen en op een apart dashboard de cijfers van Italië.

En dan zet ik ze naast elkaar. Het lijstje wat op Facebook viraal gedeeld werd bevatte deze cijfers:

NEDERLAND   Italië
Datum Besmettingen Doden   Datum Besmettingen Doden
16/3 1413 24   29/2 1049 29
17/3 1705 43   1/3 1577 41
18/3 2051 58   2/3 1835 52
19/3 2460 76   3/3 2263 79
20/3 2994 106   4/3 2706 107
21/3 3631 136   5/3 3296 148
22/3 4204 179   6/3 3916 197
23/3 4534 213   7/3 5061 233
24/3 5282 276   8/3 6387 366
25/3 6053 356   9/3 7985 463

 

Wat in het vet staat, dat zijn de cijfers die toen nog niet bekend waren.

Je ziet dat qua besmettingen we er eerst boven zaten, maar sinds 23 januari qua besmettingen onder de aantallen van Italië zitten.

Deskundigen gaven in de krant al aan dat je deze cijfers eigenlijk niet naast elkaar kon zetten, omdat zaken niet te vergelijken zijn.

Als we dat toch even doen, dan trekken we de cijfers nog even door naar gisteren, 7 april 2020.

De cijfers in Nederland zijn dan:
19.580 besmettingen, 2.101 overleden patiënten.

Volgens het staatje van hierboven zou je daar de cijfers van 23 maart van Italië tegenover moeten zetten:
63.927 besmettingen, 6.077 overleden patiënten.

Je ziet dat de aantallen nu volledig uit elkaar lopen, de aantallen in Italië zijn eigenlijk een factor 3x zoveel. Iets wat we nu eigenlijk allemaal ook wel weten, door alle lockdowns in dat land, de paus die alleen nog maar via de TV / online zijn zegen geeft.

Conclusie? Blij dat ik dat plaatje niet gedeeld heb, want het lijkt eerst wel overeen te komen, maar slaat nu in ieder geval nergens meer op.

Mocht je de grafieken willen bekijken, deze zijn hier te zien:

Nederland: https://covid-19.prijs-bewust.nl/

Italië: https://covid-19.prijs-bewust.nl/Italy

Als je een lege tabel / lege grafieken ziet, na ongeveer 10 seconden zullen de gegevens geladen worden.