Scripting: Coronavirus: Zahlen im Entwicklungsverlauf

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Benutzeravatar
heisenberg
Beiträge: 1687
Registriert: 04.06.2015 01:17:27

Scripting: Coronavirus: Zahlen im Entwicklungsverlauf

Beitrag von heisenberg » 12.02.2020 15:08:41

Hallo zusammen,

weil es mich interessiert hat, wie die Zahlen zur aktuellen Coronavirusepidemie sich entwickeln, habe ich mal ein kleines Script erstellt und mein Check_MK bzw. PNP4Nagios Graphen dazu malen lassen.

Hier das Script:

Code: Alles auswählen

#!/bin/bash

# pup is a program from https://github.com/ericchiang/pup
pup=/omd/sites/stomp/local/go/bin/pup

# Auslesen der Daten aus der Webseite
read n n n n infected dead recovered < <(wget -O- -q https://www.worldometers.info/coronavirus/ \
   | $pup 'div[id="maincounter-wrap"]' | $pup 'h1,span text{}' | xargs echo)

# Check-MK Datenaufbereitung
echo "<<<local>>>"
echo "0 corona_virus_numbers infected=${infected//,/}|dead=${dead//,/}|recovered=${recovered//,/} \
    Corona Virus current numbers: $infected infected, $dead dead, $recovered recovered"
Und hier die Bildchen...
Corona-Virus Zahlen im Zeitverlauf

Pup ist wirklich brauchbar dabei, HTML zu parsen!

Stichwörter: HTML Parsen Parser, Daten extrahieren Extraktion, Check_MK, PNP4Nagios
Zuletzt geändert von heisenberg am 12.02.2020 15:53:50, insgesamt 7-mal geändert.
Wenn ich ein Problem gelöst habe, bekomme ich zur Belohnung ein neues, größeres Problem.

Benutzeravatar
Meillo
Moderator
Beiträge: 5951
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Scripting: Coronavirus Zahlen Entwicklungsverlauf

Beitrag von Meillo » 12.02.2020 15:11:37

:THX:
Use ed(1) once in a while!

MSfree
Beiträge: 6045
Registriert: 25.09.2007 19:59:30

Re: Scripting: Coronavirus: Zahlen im Entwicklungsverlauf

Beitrag von MSfree » 12.02.2020 15:43:59

Bitte auf dem selben Graph noch die Statistik für die aktuelle deutsche Grippewelle auftragen und ins Verhältnis 82Mio Deutsche vs. 1.43Mrd Chinesen setzen.

Benutzeravatar
heisenberg
Beiträge: 1687
Registriert: 04.06.2015 01:17:27

Re: Scripting: Coronavirus: Zahlen im Entwicklungsverlauf

Beitrag von heisenberg » 12.02.2020 16:07:25

MSfree hat geschrieben: ↑ zum Beitrag ↑
12.02.2020 15:43:59
Bitte auf dem selben Graph noch die Statistik für die aktuelle deutsche Grippewelle auftragen und ins Verhältnis 82Mio Deutsche vs. 1.43Mrd Chinesen setzen.
Du möchtest darauf hinweisen, dass für Dich die deutsche Grippewelle in Deutschland wesentlich kritischer ist, als das Coronavirus?

Das sind für mich zwei paar Schuhe. Das eine(Grippe/Influenza) ist eine offene Ausbreitung, für die es Impfstoffe gibt und sich über ein grossen Gebiet erstreckt ohne besondere Maßnahmen außer Warnhinweisen. Das Ganze mit ca. 20K Infizierten in Deutschland und 40? Toten in ein paar Monaten.

Das andere ist maximale Quarantänestufe, bei dem es keine sichere Heilmethode gibt. Das Ganze aktuell im Wesentlichen auf das Stadtgebiet einer Megastadt(Wuhan, 11 Mio) begrenzt. Dabei gab es in den letzten 2 Tagen ca. 5000 neu Infizierte und 200 Todesfälle. Bei dem vermuteten Chaos einer Megastadt im Quarantänezustand, in einem Land, in dem die Regierung ein Interesse an niedrigen Zahlen hat, dürfen diese Zahlen durchaus bezweifelt werden. (Wir werden alle störben! :D )

Na gut - Das eine ist bei uns tatsächlich da. Das andere ist bei uns noch nicht wirklich angekommen.
Zuletzt geändert von heisenberg am 12.02.2020 16:49:36, insgesamt 3-mal geändert.
Wenn ich ein Problem gelöst habe, bekomme ich zur Belohnung ein neues, größeres Problem.

MSfree
Beiträge: 6045
Registriert: 25.09.2007 19:59:30

Re: Scripting: Coronavirus: Zahlen im Entwicklungsverlauf

Beitrag von MSfree » 12.02.2020 16:17:45

heisenberg hat geschrieben: ↑ zum Beitrag ↑
12.02.2020 16:07:25
Das sind für mich zwei paar Schuhe. Das eine(Grippe/Influenza) ist eine offene Ausbreitung, für die es Impfstoffe gibt und sich über ein grossen Gebiet erstreckt ohne besondere Maßnahmen außer Warnhinweisen. Das Ganze mit ca. 20K Infizierten in Deutschland und 40? Toten in ein paar Monaten.
Naja, je nach Quelle sind es bis zu 20000 Grippetote pro Jahr in D alleine. Und da wird nie Quarantäne angeordnet.

Benutzeravatar
heisenberg
Beiträge: 1687
Registriert: 04.06.2015 01:17:27

Re: Scripting: Coronavirus: Zahlen im Entwicklungsverlauf

Beitrag von heisenberg » 12.02.2020 16:18:40

Hast Du eine Webseite/Datenquelle für Influenza, die regelmässig aktualisiert wird? Falls ja, könnte ich das durchaus da noch mit reinnehmen.
Wenn ich ein Problem gelöst habe, bekomme ich zur Belohnung ein neues, größeres Problem.

MSfree
Beiträge: 6045
Registriert: 25.09.2007 19:59:30

Re: Scripting: Coronavirus: Zahlen im Entwicklungsverlauf

Beitrag von MSfree » 12.02.2020 16:22:58

heisenberg hat geschrieben: ↑ zum Beitrag ↑
12.02.2020 16:18:40
Hast Du eine Webseite/Datenquelle für Influenza, die regelmässig aktualisiert wird?
Leider nein.

Benutzeravatar
heisenberg
Beiträge: 1687
Registriert: 04.06.2015 01:17:27

Re: Scripting: Coronavirus: Zahlen im Entwicklungsverlauf

Beitrag von heisenberg » 12.02.2020 16:24:38

MSfree hat geschrieben: ↑ zum Beitrag ↑
12.02.2020 16:17:45
heisenberg hat geschrieben: ↑ zum Beitrag ↑
12.02.2020 16:07:25
Das sind für mich zwei paar Schuhe. Das eine(Grippe/Influenza) ist eine offene Ausbreitung, für die es Impfstoffe gibt und sich über ein grossen Gebiet erstreckt ohne besondere Maßnahmen außer Warnhinweisen. Das Ganze mit ca. 20K Infizierten in Deutschland und 40? Toten in ein paar Monaten.
Naja, je nach Quelle sind es bis zu 20000 Grippetote pro Jahr in D alleine. Und da wird nie Quarantäne angeordnet.
Wenn ich das folgende lese, dann merke ich, dass ich mich damit schon etwas näher beschäftigen muss, bevor ich diese Zahl genauer einschätzen kann:

Deutsches Ärzteblatt von 2015:
https://www.aerzteblatt.de/archiv/17086 ... odesfaelle

Zitat daraus vom Ende des Textes:
...Und wie erhält man dann aber, trotz dieser ... zumindest unzuverlässigen ... Totenscheine Einblick in die Realität der realen Todesursache? Ganz einfach, nämlich: „mittels statistischer Verfahren“ (!). Mit diesen „statistischen Verfahren“, werden „Gesamttodesfälle oder Statistiken zu Pneumonie bedingten Todesfällen herangezogen.“ Auf diese Weise erhält man dann die sogenannte „Exzess-Mortalität“ und die liegt eben bei 5 000 bis 20 000 Toten durch Grippe („Influenza“). Freundlicherweise verraten uns die Experten der AG Influenza, beziehungsweise des Robert Koch-Instituts aber auch, wie viele Menschen wirklich empirisch nachweisbar an Influenza gestorben sind. „Laborbestätigte Todesfälle“ durch Influenza in den Jahren 2010 bis 2013: 26 bis 198 pro Saison . . .
Wenn ich ein Problem gelöst habe, bekomme ich zur Belohnung ein neues, größeres Problem.

wanne
Moderator
Beiträge: 6568
Registriert: 24.05.2010 12:39:42

Re: Scripting: Coronavirus: Zahlen im Entwicklungsverlauf

Beitrag von wanne » 12.02.2020 17:54:08

So ganz grundsätzlich:
Todesursachen festzustellen ist so ein Ding. Finger absägen ist eher nicht tödlich. Aber wenn du vorher beim Flugzeugabsturz eh schon ohne ende Blut verloren hast und das ganze irgend wo auf einer einsamen Insel ohne ärztliche Versorgung passiert... Hat dich jetzt der Flugzeugabsturz umgebaucht? Eher nicht. Den hast du ja überlebt. Wars der abgesägte Finger? Eher auch nicht. Am Ende sind fast alle Tode nicht rein monokausal eine Krankheit die einen 110 jährigen umbringt macht das noch lange nicht mit jemand mitte 30.
Extrembeispiel HIV. Das Virus kann prinzipbedingt niemanden ursächlich umbringen. Es schwächt das Immunsystem unbehandelt nur ausreichend stark als dass dich das nächste harmlose Bakterium umbringt. Wir sagen dann der ist an AIDS gestorben. Nicht an Erkältung. Nicht weil es die direktere Ursache ist, sondern weil HIV offensichtlich der entscheidendere Faktor war.
Erkältung überleben viel mehr als AIDS. Das sorgt aber dafür dass die gefährlicheren Sachen total Überrepresentiert sind. An Rauchen, Übergewicht oder Alkohol stirbt laut todesursache dann keiner obwohl es die Hauptbeeinflusser dafür sind, wie lange man lebt.

Wenn man von Todesfällen pro Krankheit spricht vergleicht man deswegen üblicherweise "Übersterblichkeit". Das ist wie viel häufiger Menschen in einer Gruppe von Erkrankten gestorben sind wie in einer vergleichbaren mit nicht erkrankten. (Vergleichbarkeit ist sehr wichtig und schwierig. Sonst kommt plötzlich raus, dass anseilen beim klettern tödlich sein kann, weil Free Solo nur fitte Leute machen.)

Da ist Grippe in Sachen Übersterblichkeit deutlich krasser unterwegs als Corona. Das hat aber wenig mit der ungefährlichkeit des Coronaviruses zu tun sondern liegt an der Grippe. Leute sterben an Grippe und zwar massenhaft. Zwar üblicherweise keine 30 jährigen und eher selten im Sommer. Aber diese Krankheit verursacht tausende Tote mehr zehn mal so viele wie der Autoverkehr. Ja. Das sind meistens nicht primäre Todesursachen die Leute haben meist andere schwerere Krankheiten. Aber im Schnitt sind es ein paar 10000 im Jahr die nicht gestorben währen wenn sie nicht auch noch Grippe bekommen hätten. Auch wenn sie für Fitte eher ungefährlich ist. Praktisch keine andere Krankheit verursacht so viele Tote. Für extrem viele Menschen ist es die Krankheit die das Fass zum überlaufen bringt. Und nein. Wir haben weder zuverlässige impf noch Behandlungsmöglichkeiten. Ich glaube niemand vermutet ernsthaft, dass Corona irgend wie in die Größenordnung der Grippe vorstößt. Wir wollen aber garantiert keine 2. Grippe.
Kurz: HIV "verursacht" (im sinne von Übersterblichkeit) zig mal weniger tote. Kein anderer Virus kein anderes Bakterium hat so viele deutsche auf dem Gewissen wie die Influenzaviren.

Der zweite Punkt ist, dass die Krankheit neu ist. Wir wissen nicht wie schnell die sich verbreitet. Sollte die nochmal mehr anstecken wie die Grippe bist du schnell bei größeren Todeszahlen. Und neue Krankheiten mutieren auch ganz gerne noch hin zu schwereren Krankheitsverläufen. – Auch deshalb will man das nicht.

Und als wichtigster Punkt: Krippe eindämmen versuchen wir seit Jahrhunderten erfolglos. Wenig Chancen auf Erfolg. Aber an Corona sind nur wenige Menschen erkrankt. Jetzt kann man noch versuchen das im Keim zu ersticken. – Gerade die Chinesen sind bei dem Thema weit sensibler als Europäer, die Krankheiten eher als unabwendbar ansehen.
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
heisenberg
Beiträge: 1687
Registriert: 04.06.2015 01:17:27

Re: Scripting: Coronavirus: Zahlen im Entwicklungsverlauf

Beitrag von heisenberg » 13.02.2020 09:36:37

Hi Wanne,

danke für Deine Ansicht. Die kann ich gut nachvollziehen!

Wo ich Zweifel habe, ist bei der Zahl 10.000. ("...Aber im Schnitt sind es ein paar 10000..") Da habe ich keine Kenntnisse, ob das wirklich den Tatsachen entspricht und wie diese Zahl denn zu Stande kommt.

Im Übrigen hatte ich nochmal kurz recherchiert und dabei scheint es für mich tatsächlich so zu sein - entgegen meiner bisherigen Annahme - dass für die Grippe kein Heilverfahren verfügbar ist - im Sinne von: wir geben Dir ein Medikament und dann geht es weg. Es scheint eher so zu sein, dass es ein paar Mittel(Neuraminidasehemmer) gibt, die die Verbreitung der Viren im Körper eindämmen soll. Die Heilung findet durch den Körper selbst statt. Zusätzlich werden Sekundärerkrankungen behandelt, damit der Körper von zusätzlichen Belastungen befreit wird.

Bug in der Grafikerzeugung

Was die Grafik betrifft, da war noch ein Bug drin, so dass die sich nicht aktualisiert hatte. Desweiteren gab es wohl eine Umstellung des Diagnose- verfahrens, weswegen die Zahl der Infizierten von gestern auf heute sprunghaft um ca. 10.000 Fälle angestiegen ist, welche nachgereicht wurden. Also so, wie ich das verstanden habe keine dramatische Ausbreitungssteigerung, sondern nur eine geänderte Sicht auf die Lage.(Siehe https://www.worldometers.info/coronavirus/ bei der Meldung zum 12. Februar).

Anmerkung zum Thema pup / riesige Go-Binaries

Als ich die Grösse zwischen jq(kleiner JSON-Parser) und pup(Der hier verwendete HTML-Parser) verglichen habe, war das so wie das logisch stimmig ist. Das winzige jq-Binary war zusammengerechnet mit den Grössen der verwendeten Bibliotheken etwa genauso gross wie das statisch gelinkte pup. Was bei pup halt noch dazu kam, war die Compilerumgebung, die man danach natürlich wieder löschen kann.
Wenn ich ein Problem gelöst habe, bekomme ich zur Belohnung ein neues, größeres Problem.

Benutzeravatar
heisenberg
Beiträge: 1687
Registriert: 04.06.2015 01:17:27

Re: Scripting: Coronavirus: Zahlen im Entwicklungsverlauf

Beitrag von heisenberg » 13.02.2020 13:44:32

Hier ansonsten noch das Script, dass mir die Graphen aus dem Check_MK zieht:

Code: Alles auswählen

#!/bin/bash

user=checkmk_user
pass=sehrgeheim
host=checkmk.fqdn-host.name
outpath=/var/www/virtualhost/wwwroot
port=12345
uri_template="http://$user:$pass@$host:$port/instancename/pnp4nagios/index.php"
uri_template="$uri_template/image?host=wuhan&srv=corona_virus_numbers&baseurl="
uri_template="$uri_template%%2Finstancename%%2Fcheck_mk%%2F&view=2&source=0&start=%s&end=%s"

one_week_before="$(date -d "now - 7 days" +%s)"
one_month_before="$(date -d "now - 1 month" +%s)"
now="$(date +%s)"
start_of_counting=1581328500

get_checkmk_image() {

        local uri_template="$1"
        local output_file="$2"
        local start_time="$3"
        local end_time="$4"

        wget -nv -O"$output_file" "$(printf "$uri_template" "$start_time" "$end_time")"

}


{
        get_checkmk_image "$uri_template" "$outpath/corona_virus_wuhan_china_weekly_chart.png"  "$one_week_before"   "$now"
        get_checkmk_image "$uri_template" "$outpath/corona_virus_wuhan_china_monthly_chart.png" "$one_month_before"  "$now"
        get_checkmk_image "$uri_template" "$outpath/corona_virus_wuhan_china_alltime_chart.png" "$start_of_counting" "$now"

} >/dev/null 2>&1
Zuletzt geändert von heisenberg am 14.02.2020 12:31:08, insgesamt 4-mal geändert.
Wenn ich ein Problem gelöst habe, bekomme ich zur Belohnung ein neues, größeres Problem.

wanne
Moderator
Beiträge: 6568
Registriert: 24.05.2010 12:39:42

Re: Scripting: Coronavirus: Zahlen im Entwicklungsverlauf

Beitrag von wanne » 13.02.2020 14:48:22

heisenberg hat geschrieben: ↑ zum Beitrag ↑
13.02.2020 09:36:37
Wo ich Zweifel habe, ist bei der Zahl 10.000. ("...Aber im Schnitt sind es ein paar 10000..") Da habe ich keine Kenntnisse, ob das wirklich den Tatsachen entspricht und wie diese Zahl denn zu Stande kommt.
Zahlen kommen von Robert Koch Institut hat da eine Menge zu Influenza publiziert und sogar eine schöne Übersichtsseite:
https://www.rki.de/DE/Content/InfAZ/I/I ... _Node.html
Vielleicht findest du da auch was maschienen Lesbares.
Da die Anzahl der Erkrankten riesig ist und die Diagnose meist gar nicht stattfindet schätzen die meisten zuerst wie viele Leute erkrankt sind und vergleichen dann wie viele weniger gestorben sind wenn gerade weniger erkrankt sind. Da kommt man üblicherweise auf so 30k mehr tote in einer Saison wo gerade mehr Leute an Grippe erkannt sind. Dummer weise sterben auch Leute an Grippe wenn gerade weniger Leute an Grippe erkrankt sind. Auf der anderen Seite tritt Influenza halt immer zu Zeiten auf, wo die Menschen schon durch andere Faktoren geschwächt sind. Man muss also auch raus finden wie viel die ausmachen. Am Ende ist das alles nicht einfach rauszurechenen. Das RKI hat deswegen zwei unterschiedliche Schätzmodelle.
In Jahren mit starken Grippewellen sterben je nach Schätzweise üblicherweise 20k-30k mehr wenn sie Grippe haben.
Die Rechnen immer von Sommer zu Sommer um eine Übersicht zum Winter zu geben.
Beispiele (Je für beide Schätzmodelle): 
Saison 2011/12: 2500 / 7400
Saison 2012/13: 20600 / 28900
Andere Schätzungen liegen zumindest in der gleichen Größenordnung. Es ist also durchaus legitim von Zehntausenden zu reden.
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
ralli
Beiträge: 2727
Registriert: 02.03.2008 08:03:02

Re: Scripting: Coronavirus: Zahlen im Entwicklungsverlauf

Beitrag von ralli » 13.02.2020 16:29:59

Hallo,

danke heisenberg, das hat mir sehr gefallen. Allerdings beobachte ich die mediale Begleitung und Berichterstattung über den Coronavirus mehr als die Infektionsrate (die mich natürlich auch interessiert). Meineserachtens ist die Qualität der deutschen Mainstreammedien eher auf Quote aus. Um Quote zu erreichen, muß halt Aufmerksamkeit generiert werden. Mir erscheint die Berichterstattung ziemlich oberflächlich und genügt meinen Ansprüchen nicht. Das Robert Koch Institut ist ja schon mal eine gute Anlaufstelle. Ich habe mich schon oft gefragt, wie die veröffentlichen Zahlen über eine Grippesaison erfaßt werden. Repräsentativ sind sie auf keinen Fall, wie ich jetzt sehe und damit auch nicht seriös. Da kann ich ja gleich meine Glaskugel bemühen. Wirkliche Fakten wird man vielleicht bekommen, aber nicht umsonst, sondern für cash.In der Mortalitätsrate (wird das so genannt?) sind sehr viele schwache ältere Menschen mit ernsthaften Vorerkrankungen enthalten, die eh auch bei einer starken Erkältung gestorben wären. Erinnert mich irgendwie stark an diesen Schweinegrippevirus, wo die "Experten" hier auch paranoid wurden und am liebsten die ganze Bevölkerung geimpft hätten. Wäre ja auch ein einträgliches Geschäft gewesen. Auch sollten man die chinesischen Infizierten zu der Gesammtbevölkerung von ca. 1.4 Milliarden ins Verhältnis setzen, dann ist die Anzahl der Erkrankten immer noch sehr gering. Ich persönlich halte eine Pandemie für völlig ausgeschlossen, trotzdem ist natürlich Vorsicht geboten. Wie viele sind eigentlich heute an Kriege (Syrien ect.) gestoben. Wie viele in Deutschland an Alkoholismus, wieviele Raucher sterben jährlich? Wie viele an Krebs? Alleine die letzen drei genannten Gruppen dürften ein Vielfaches sein im Verhältnis zum Coronavirus.

Alkoholismus: 74 000

Raucher: 120 000

Krebs: 230 000

Influenza: zwischen 8000 und 20000 (lt. Glaskugel)

Grüße ralli
System: Debian Buster - Openbox mit Alsa - CPU: Intel Core i7-870 - RAM: 16 GB - GPU: AMD (2 GB) - SSD 128 GB - HD: 1 TB

reox
Beiträge: 1869
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Re: Scripting: Coronavirus: Zahlen im Entwicklungsverlauf

Beitrag von reox » 14.02.2020 10:40:03

ralli hat geschrieben: ↑ zum Beitrag ↑
13.02.2020 16:29:59
Mortalitätsrate (wird das so genannt?) sind sehr viele schwache ältere Menschen mit ernsthaften Vorerkrankungen enthalten, die eh auch bei einer starken Erkältung gestorben wären.
kommt drauf an was du aussagen willst. Die (Krankheitsspezifische) Mortalität ist die Wahrscheinlichkeit innerhalb eines Beobachtungszeitraums an einer Krankheit zu erkranken UND daran zu versterben.
Dann gibt es noch die Mortalität als solche - das ist die Sterbeziffer.
Was dich aber zB beim Coronavirus eher interessiert ist die Letalität: Die Wahrscheinlichkeit zu versterben unter der Bedingung, dass du bereits erkrankt bist. Leider haben sich viele Zeitungen nicht gerade bemüht den Unterschied festzustellen und schreiben 2% Mortalität - was extrem viel wäre!
Es gibt auch noch die Inzidenz, das ist die Wahrscheinlichkeit an einer Krankheit zu erkranken. Durch den Satz von Bayes erkennt man, dass alle 3 Wahrscheinlichkeiten verknüpft sind: Mortalität = Inzidenz * Letalität
oder P(verstorben und erkrankt) = P(erkrankt) * P(verstorben|erkrankt)
Ich hoff ich habs jetzt richtig aus dem Gedächnis hingeschrieben :D Wer mehr wissen will den empfehle ich das Buch "Basiswissen Medizinische Statistik" von der Christel Weiss.
Zuletzt geändert von reox am 14.02.2020 11:20:38, insgesamt 1-mal geändert.

Benutzeravatar
ralli
Beiträge: 2727
Registriert: 02.03.2008 08:03:02

Re: Scripting: Coronavirus: Zahlen im Entwicklungsverlauf

Beitrag von ralli » 14.02.2020 10:56:33

Danke reox für die Aufklärung,

sehr informativ, tatsächlich kannte ich diese Unterschiede nicht, sehe aber das sie wichtig sind, um den wirklichen Sachverhalt einigermaße einschätzen zu können. Mir war nur der Begriff Mortalität als Sterbeziffer bekannt.

Gruß ralli
System: Debian Buster - Openbox mit Alsa - CPU: Intel Core i7-870 - RAM: 16 GB - GPU: AMD (2 GB) - SSD 128 GB - HD: 1 TB

Antworten