fix data url and adapt to new data format, including type conversion, location name changes etc

This commit is contained in:
fordprefect
2020-12-15 12:11:59 +01:00
parent 5e9a7db2b5
commit 1f85b91236
5 changed files with 58 additions and 9 deletions

View File

@@ -17,6 +17,7 @@ corr = {"Chile": 10000,
"Peru": 10000, "Peru": 10000,
"Bolivia": 3000, "Bolivia": 3000,
"Yemen": 220, "Yemen": 220,
"Turkey": 100000,
} }
def plot(data, countries, pop): def plot(data, countries, pop):

View File

@@ -32,7 +32,7 @@ def get_data():
tries = 10 tries = 10
delay = 10 delay = 10
dataurl = "https://covid.ourworldindata.org/data/ecdc/full_data.csv" dataurl = "https://covid.ourworldindata.org/data/owid-covid-data.csv"
date = datetime.date.today() date = datetime.date.today()
datafile = f"{date}-full-data.csv" datafile = f"{date}-full-data.csv"
@@ -62,13 +62,56 @@ def get_data():
date,location,new_cases,new_deaths,total_cases,total_deaths = row date,location,new_cases,new_deaths,total_cases,total_deaths = row
elif len(row) == 10: elif len(row) == 10:
date,location,new_cases,new_deaths,total_cases,total_deaths,weekly_cases,weekly_deaths,biweekly_cases,biweekly_deaths = row date,location,new_cases,new_deaths,total_cases,total_deaths,weekly_cases,weekly_deaths,biweekly_cases,biweekly_deaths = row
elif len(row) == 50:
iso_code,continent,location,date,total_cases,new_cases,new_cases_smoothed,total_deaths,new_deaths,new_deaths_smoothed,total_cases_per_million,new_cases_per_million,new_cases_smoothed_per_million,total_deaths_per_million,new_deaths_per_million,new_deaths_smoothed_per_million,reproduction_rate,icu_patients,icu_patients_per_million,hosp_patients,hosp_patients_per_million,weekly_icu_admissions,weekly_icu_admissions_per_million,weekly_hosp_admissions,weekly_hosp_admissions_per_million,new_tests,total_tests,total_tests_per_thousand,new_tests_per_thousand,new_tests_smoothed,new_tests_smoothed_per_thousand,positive_rate,tests_per_case,tests_units,stringency_index,population,population_density,median_age,aged_65_older,aged_70_older,gdp_per_capita,extreme_poverty,cardiovasc_death_rate,diabetes_prevalence,female_smokers,male_smokers,handwashing_facilities,hospital_beds_per_thousand,life_expectancy,human_development_index = row
else: else:
print(f"WARNING! Table format changed, new header:\n{row})") print(f"WARNING! Table format changed, new header:\n{row})")
exit(1) exit(1)
# break loop if header
if location=="location": if location=="location":
# table header # table header
continue continue
# cast to num type
if isinstance(total_cases, str):
if total_cases in ('', ' ', '0.0'):
total_cases = 0
try:
total_cases = int(total_cases)
except:
try:
total_cases = float(total_cases)
except:
print("tc failed")
if isinstance(new_cases, str):
if new_cases in ('', ' ', '0.0'):
new_cases = 0
try:
new_cases = int(new_cases)
except:
try:
new_cases = float(new_cases)
except:
print("nc failed")
if isinstance(new_deaths, str):
if new_deaths in ('', ' ', '0.0'):
new_deaths = 0
try:
new_deaths = int(new_deaths)
except:
try:
new_deaths = float(new_deaths)
except:
print("nd failed")
if isinstance(total_deaths, str):
if total_deaths in ('', ' ', '0.0'):
total_deaths = 0
try:
total_deaths = int(total_deaths)
except:
try:
total_deaths = float(total_deaths)
except:
print("td failed")
if location not in data: if location not in data:
data[location] = [] data[location] = []
year, month, day = date.split("-") year, month, day = date.split("-")

View File

@@ -19,7 +19,10 @@ def plot(data, countries, pop):
window_size = 7 window_size = 7
tchar = moving_average(np.array(new_cases),window_size)/moving_average(np.array(total_cases),window_size) tchar = moving_average(np.array(new_cases),window_size)/moving_average(np.array(total_cases),window_size)
thalf = np.log(2)/tchar thalf = np.log(2)/tchar
day_of_100_cases = np.argwhere(np.array(total_cases) > 99)[0][0] try:
day_of_100_cases = np.argwhere(np.array(total_cases) > 99)[0][0]
except:
return
new_time_axis = time[int(window_size/2):-int(window_size/2)] new_time_axis = time[int(window_size/2):-int(window_size/2)]
pp.plot(new_time_axis[50:], thalf[50:], label=f"{loc}", marker=".") pp.plot(new_time_axis[50:], thalf[50:], label=f"{loc}", marker=".")

View File

@@ -25,6 +25,7 @@ Das wird aber ganz massiv durch die Testrate, Meldekette, politische Einflussnah
die einzelnen Länder <b>sehr unterschiedlich</b> sein! die einzelnen Länder <b>sehr unterschiedlich</b> sein!
<br><br> <br><br>
Die Daten stammen von <a href=https://ourworldindata.org/coronavirus-source-data>hier</a> und werden dort aus den WHO- und ECDC-Reports generiert. Die Daten stammen von <a href=https://ourworldindata.org/coronavirus-source-data>hier</a> und werden dort aus den WHO- und ECDC-Reports generiert.
Von den extrem reichhaltigen Daten dort verarbeite ich nur die Zahl der Neufälle.
<br><br> <br><br>
Aktuelle Daten aus Deutschland mit vielen Hintergründen finden sich im <a href="https://www.rki.de/DE/Content/InfAZ/N/Neuartiges_Coronavirus/Situationsberichte/Gesamt.html">Lagebericht des RKI</a>. Aktuelle Daten aus Deutschland mit vielen Hintergründen finden sich im <a href="https://www.rki.de/DE/Content/InfAZ/N/Neuartiges_Coronavirus/Situationsberichte/Gesamt.html">Lagebericht des RKI</a>.
@@ -61,7 +62,7 @@ Aktuelle Daten aus Deutschland mit vielen Hintergründen finden sich im <a href=
<details open><summary>Germany</summary><img src=ac_all_Germany.png /></details> <details open><summary>Germany</summary><img src=ac_all_Germany.png /></details>
<details open><summary>Austria</summary><img src=ac_all_Austria.png /></details> <details open><summary>Austria</summary><img src=ac_all_Austria.png /></details>
<details open><summary>Belgium</summary><img src=ac_all_Belgium.png /></details> <details open><summary>Belgium</summary><img src=ac_all_Belgium.png /></details>
<details open><summary>Czech Republic</summary><img src=ac_all_Czech%20Republic.png /></details> <details open><summary>Czech Republic</summary><img src=ac_all_Czechia.png /></details>
<details open><summary>Denmark</summary><img src=ac_all_Denmark.png /></details> <details open><summary>Denmark</summary><img src=ac_all_Denmark.png /></details>
<details open><summary>France</summary><img src=ac_all_France.png /></details> <details open><summary>France</summary><img src=ac_all_France.png /></details>
<details open><summary>Italy</summary><img src=ac_all_Italy.png /></details> <details open><summary>Italy</summary><img src=ac_all_Italy.png /></details>
@@ -154,7 +155,7 @@ Aktuelle Daten aus Deutschland mit vielen Hintergründen finden sich im <a href=
<details open><summary>Cuba</summary><img src=ac_all_Cuba.png /></details> <details open><summary>Cuba</summary><img src=ac_all_Cuba.png /></details>
<details open><summary>Curacao</summary><img src=ac_all_Curacao.png /></details> <details open><summary>Curacao</summary><img src=ac_all_Curacao.png /></details>
<details open><summary>Cyprus</summary><img src=ac_all_Cyprus.png /></details> <details open><summary>Cyprus</summary><img src=ac_all_Cyprus.png /></details>
<details open><summary>Czech Republic</summary><img src=ac_all_Czech%20Republic.png /></details> <details open><summary>Czech Republic</summary><img src=ac_all_Czechia.png /></details>
<details open><summary>Democratic Republic of Congo</summary><img src=ac_all_Democratic%20Republic%20of%20Congo.png /></details> <details open><summary>Democratic Republic of Congo</summary><img src=ac_all_Democratic%20Republic%20of%20Congo.png /></details>
<details open><summary>Denmark</summary><img src=ac_all_Denmark.png /></details> <details open><summary>Denmark</summary><img src=ac_all_Denmark.png /></details>
<details open><summary>Djibouti</summary><img src=ac_all_Djibouti.png /></details> <details open><summary>Djibouti</summary><img src=ac_all_Djibouti.png /></details>
@@ -219,7 +220,7 @@ Aktuelle Daten aus Deutschland mit vielen Hintergründen finden sich im <a href=
<details open><summary>Liechtenstein</summary><img src=ac_all_Liechtenstein.png /></details> <details open><summary>Liechtenstein</summary><img src=ac_all_Liechtenstein.png /></details>
<details open><summary>Lithuania</summary><img src=ac_all_Lithuania.png /></details> <details open><summary>Lithuania</summary><img src=ac_all_Lithuania.png /></details>
<details open><summary>Luxembourg</summary><img src=ac_all_Luxembourg.png /></details> <details open><summary>Luxembourg</summary><img src=ac_all_Luxembourg.png /></details>
<details open><summary>Macedonia</summary><img src=ac_all_Macedonia.png /></details> <details open><summary>North Macedonia</summary><img src=ac_all_North%20Macedonia.png /></details>
<details open><summary>Madagascar</summary><img src=ac_all_Madagascar.png /></details> <details open><summary>Madagascar</summary><img src=ac_all_Madagascar.png /></details>
<details open><summary>Malawi</summary><img src=ac_all_Malawi.png /></details> <details open><summary>Malawi</summary><img src=ac_all_Malawi.png /></details>
<details open><summary>Malaysia</summary><img src=ac_all_Malaysia.png /></details> <details open><summary>Malaysia</summary><img src=ac_all_Malaysia.png /></details>
@@ -284,7 +285,7 @@ Aktuelle Daten aus Deutschland mit vielen Hintergründen finden sich im <a href=
<details open><summary>Sri Lanka</summary><img src=ac_all_Sri%20Lanka.png /></details> <details open><summary>Sri Lanka</summary><img src=ac_all_Sri%20Lanka.png /></details>
<details open><summary>Sudan</summary><img src=ac_all_Sudan.png /></details> <details open><summary>Sudan</summary><img src=ac_all_Sudan.png /></details>
<details open><summary>Suriname</summary><img src=ac_all_Suriname.png /></details> <details open><summary>Suriname</summary><img src=ac_all_Suriname.png /></details>
<details open><summary>Swaziland</summary><img src=ac_all_Swaziland.png /></details> <details open><summary>Swaziland</summary><img src=ac_all_Eswatini.png /></details>
<details open><summary>Sweden</summary><img src=ac_all_Sweden.png /></details> <details open><summary>Sweden</summary><img src=ac_all_Sweden.png /></details>
<details open><summary>Switzerland</summary><img src=ac_all_Switzerland.png /></details> <details open><summary>Switzerland</summary><img src=ac_all_Switzerland.png /></details>
<details open><summary>Syria</summary><img src=ac_all_Syria.png /></details> <details open><summary>Syria</summary><img src=ac_all_Syria.png /></details>

View File

@@ -47,6 +47,7 @@ pop = {'Afghanistan': {'key': 'Afghanistan', 'pop': 38928341, 'year': 2020},
'Cuba': {'key': 'Cuba', 'pop': 11326616, 'year': 2020}, 'Curacao': {'key': 'Curaçao', 'pop': 164100, 'year': 2020}, 'Cuba': {'key': 'Cuba', 'pop': 11326616, 'year': 2020}, 'Curacao': {'key': 'Curaçao', 'pop': 164100, 'year': 2020},
'Cyprus': {'key': 'Cyprus', 'pop': 875899, 'year': 2020}, 'Cyprus': {'key': 'Cyprus', 'pop': 875899, 'year': 2020},
'Czech Republic': {'key': 'Czechia', 'pop': 10708982, 'year': 2020}, 'Czech Republic': {'key': 'Czechia', 'pop': 10708982, 'year': 2020},
'Czechia': {'key': 'Czechia', 'pop': 10708982, 'year': 2020},
'Democratic Republic of Congo': {'key': 'Democratic_Republic_of_the_Congo', 'pop': 89561404, 'year': 2020}, 'Democratic Republic of Congo': {'key': 'Democratic_Republic_of_the_Congo', 'pop': 89561404, 'year': 2020},
'Denmark': {'key': 'Denmark', 'pop': 5792203, 'year': 2020}, 'Denmark': {'key': 'Denmark', 'pop': 5792203, 'year': 2020},
'Djibouti': {'key': 'Djibouti', 'pop': 988002, 'year': 2020}, 'Djibouti': {'key': 'Djibouti', 'pop': 988002, 'year': 2020},
@@ -58,7 +59,7 @@ pop = {'Afghanistan': {'key': 'Afghanistan', 'pop': 38928341, 'year': 2020},
'Equatorial Guinea': {'key': 'Equatorial_Guinea', 'pop': 1402985, 'year': 2020}, 'Equatorial Guinea': {'key': 'Equatorial_Guinea', 'pop': 1402985, 'year': 2020},
'Eritrea': {'key': 'Eritrea', 'pop': 3546427, 'year': 2020}, 'Eritrea': {'key': 'Eritrea', 'pop': 3546427, 'year': 2020},
'Estonia': {'key': 'Estonia', 'pop': 1326539, 'year': 2020}, 'Estonia': {'key': 'Estonia', 'pop': 1326539, 'year': 2020},
'Swaziland': {'key': 'Eswatini', 'pop': 1160164, 'year': 2020}, 'Eswatini': {'key': 'Eswatini', 'pop': 1160164, 'year': 2020},
'Ethiopia': {'key': 'Ethiopia', 'pop': 114963583, 'year': 2020}, 'Ethiopia': {'key': 'Ethiopia', 'pop': 114963583, 'year': 2020},
'Falkland Islands': {'key': 'Falkland_Islands_(Malvinas)', 'pop': 3483, 'year': 2020}, 'Falkland Islands': {'key': 'Falkland_Islands_(Malvinas)', 'pop': 3483, 'year': 2020},
'Faeroe Islands': {'key': 'Faroe_Islands', 'pop': 48865, 'year': 2020}, 'Faeroe Islands': {'key': 'Faroe_Islands', 'pop': 48865, 'year': 2020},
@@ -130,7 +131,7 @@ pop = {'Afghanistan': {'key': 'Afghanistan', 'pop': 38928341, 'year': 2020},
'Nicaragua': {'key': 'Nicaragua', 'pop': 6624554, 'year': 2020}, 'Nicaragua': {'key': 'Nicaragua', 'pop': 6624554, 'year': 2020},
'Niger': {'key': 'Niger', 'pop': 24206636, 'year': 2020}, 'Niger': {'key': 'Niger', 'pop': 24206636, 'year': 2020},
'Nigeria': {'key': 'Nigeria', 'pop': 206139587, 'year': 2020}, 'Nigeria': {'key': 'Nigeria', 'pop': 206139587, 'year': 2020},
'Macedonia': {'key': 'North_Macedonia', 'pop': 2083380, 'year': 2020}, 'North Macedonia': {'key': 'North_Macedonia', 'pop': 2083380, 'year': 2020},
'Northern Mariana Islands': {'key': 'Northern_Mariana_Islands', 'pop': 57557, 'year': 2020}, 'Northern Mariana Islands': {'key': 'Northern_Mariana_Islands', 'pop': 57557, 'year': 2020},
'Norway': {'key': 'Norway', 'pop': 5421242, 'year': 2020}, 'Oman': {'key': 'Oman', 'pop': 5106622, 'year': 2020}, 'Norway': {'key': 'Norway', 'pop': 5421242, 'year': 2020}, 'Oman': {'key': 'Oman', 'pop': 5106622, 'year': 2020},
'Pakistan': {'key': 'Pakistan', 'pop': 220892331, 'year': 2020}, 'Pakistan': {'key': 'Pakistan', 'pop': 220892331, 'year': 2020},