Summer Olympics 2020¶

  • Homepage of project: https://oscovida.github.io
  • Plots are explained at http://oscovida.github.io/plots.html
  • Execute this Jupyter Notebook using myBinder
In [1]:
import datetime
import time

start = datetime.datetime.now()
print(f"Notebook executed on: {start.strftime('%d/%m/%Y %H:%M:%S%Z')} {time.tzname[time.daylight]}")
Notebook executed on: 07/03/2023 09:39:01 CEST
In [2]:
%config InlineBackend.figure_formats = ['svg']
from oscovida import *
In [3]:
overview("Summer Olympics 2020", weeks=5);
2023-03-07T09:39:04.758400 image/svg+xml Matplotlib v3.7.1, https://matplotlib.org/ 30 Jan 06 Feb 13 Feb 20 Feb 27 Feb 06 Mar −0.050 −0.050 −0.025 −0.025 0.000 0.000 0.025 0.025 0.050 0.050 7-day incidence rate 0.0 Summer Olympics 2020, last 5 weeks, last data point from 2023-03-06 30 Jan 06 Feb 13 Feb 20 Feb 27 Feb 06 Mar −0.050 −0.050 −0.025 −0.025 0.000 0.000 0.025 0.025 0.050 0.050 daily change Summer Olympics 2020 new cases (rolling 7d mean) Summer Olympics 2020 new cases 30 Jan 06 Feb 13 Feb 20 Feb 27 Feb 06 Mar −0.050 −0.050 −0.025 −0.025 0.000 0.000 0.025 0.025 0.050 0.050 daily change Summer Olympics 2020 new deaths (rolling 7d mean) Summer Olympics 2020 new deaths 30 Jan 06 Feb 13 Feb 20 Feb 27 Feb 06 Mar 0.8 0.8 0.9 0.9 1.0 1.0 1.1 1.1 1.2 1.2 R & growth factor (based on cases) Summer Olympics 2020 cases daily growth factor Summer Olympics 2020 cases daily growth factor (rolling mean) Summer Olympics 2020 estimated R (using cases) 30 Jan 06 Feb 13 Feb 20 Feb 27 Feb 06 Mar 0.8 0.8 0.9 0.9 1.0 1.0 1.1 1.1 1.2 1.2 R & growth factor (based on deaths) Summer Olympics 2020 deaths daily growth factor Summer Olympics 2020 deaths daily growth factor (rolling mean) Summer Olympics 2020 estimated R (using deaths) 30 Jan 06 Feb 13 Feb 20 Feb 27 Feb 06 Mar 0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0
In [4]:
overview("Summer Olympics 2020");
2023-03-07T09:39:13.876023 image/svg+xml Matplotlib v3.7.1, https://matplotlib.org/ Jan 20 May 20 Sep 20 Jan 21 May 21 Sep 21 Jan 22 May 22 Sep 22 Jan 23 May 23 0 0 100 100 200 200 7-day incidence rate 0.0 Summer Olympics 2020, last data point from 2023-03-06 Jan 20 May 20 Sep 20 Jan 21 May 21 Sep 21 Jan 22 May 22 Sep 22 Jan 23 May 23 0 0 25 25 50 50 75 75 100 100 daily change Summer Olympics 2020 new cases (rolling 7d mean) Summer Olympics 2020 new cases Jan 20 May 20 Sep 20 Jan 21 May 21 Sep 21 Jan 22 May 22 Sep 22 Jan 23 May 23 −0.050 −0.050 −0.025 −0.025 0.000 0.000 0.025 0.025 0.050 0.050 daily change Summer Olympics 2020 new deaths (rolling 7d mean) Summer Olympics 2020 new deaths Jan 20 May 20 Sep 20 Jan 21 May 21 Sep 21 Jan 22 May 22 Sep 22 Jan 23 May 23 0.8 0.8 0.9 0.9 1.0 1.0 1.1 1.1 1.2 1.2 R & growth factor (based on cases) Summer Olympics 2020 cases daily growth factor Summer Olympics 2020 cases daily growth factor (rolling mean) Summer Olympics 2020 estimated R (using cases) Jan 20 May 20 Sep 20 Jan 21 May 21 Sep 21 Jan 22 May 22 Sep 22 Jan 23 May 23 0.8 0.8 0.9 0.9 1.0 1.0 1.1 1.1 1.2 1.2 R & growth factor (based on deaths) Summer Olympics 2020 deaths daily growth factor Summer Olympics 2020 deaths daily growth factor (rolling mean) Summer Olympics 2020 estimated R (using deaths) Jan 20 May 20 Sep 20 Jan 21 May 21 Sep 21 Jan 22 May 22 Sep 22 Jan 23 May 23 0 200 400 cases doubling time [days] Summer Olympics 2020 doubling time cases (rolling mean) 0.000 0.338 0.676
In [5]:
compare_plot("Summer Olympics 2020", normalise=True);
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[5], line 1
----> 1 compare_plot("Summer Olympics 2020", normalise=True);

File /tank/oscovida/work/oscovida.github.io/oscovida.github.io/.venv/lib/python3.9/site-packages/oscovida/oscovida.py:1976, in compare_plot(country, region, subregion, savefig, normalise, dates, align)
   1974 if normalise:
   1975     _population = population(country=country, region=region, subregion=subregion)
-> 1976     c *= 100000 / _population
   1977     d *= 100000 / _population
   1979 if not subregion and not region:    # i.e. not a region of Germany

TypeError: unsupported operand type(s) for /: 'int' and 'NoneType'
In [6]:
# load the data
cases, deaths = get_country_data("Summer Olympics 2020")

# get population of the region for future normalisation:
inhabitants = population("Summer Olympics 2020")
print(f'Population of "Summer Olympics 2020": {inhabitants} people')

# compose into one table
table = compose_dataframe_summary(cases, deaths)

# show tables with up to 1000 rows
pd.set_option("display.max_rows", 1000)

# display the table
table
Population of "Summer Olympics 2020": None people
Out[6]:
total cases daily new cases total deaths daily new deaths
2023-03-06 865 0 0 0
2023-03-05 865 0 0 0
2023-03-04 865 0 0 0
2023-03-03 865 0 0 0
2023-03-02 865 0 0 0
... ... ... ... ...
2020-01-27 0 0 0 0
2020-01-26 0 0 0 0
2020-01-25 0 0 0 0
2020-01-24 0 0 0 0
2020-01-23 0 0 0 0

1139 rows × 4 columns

Explore the data in your web browser¶

  • If you want to execute this notebook, click here to use myBinder
  • and wait (~1 to 2 minutes)
  • Then press SHIFT+RETURN to advance code cell to code cell
  • See http://jupyter.org for more details on how to use Jupyter Notebook

Acknowledgements:¶

  • Johns Hopkins University provides data for countries
  • Robert Koch Institute provides data for within Germany
  • Atlo Team for gathering and providing data from Hungary (https://atlo.team/koronamonitor/)
  • Open source and scientific computing community for the data tools
  • Github for hosting repository and html files
  • Project Jupyter for the Notebook and binder service
  • The H2020 project Photon and Neutron Open Science Cloud (PaNOSC)

In [7]:
print(f"Download of data from Johns Hopkins university: cases at {fetch_cases_last_execution()} and "
      f"deaths at {fetch_deaths_last_execution()}.")
Download of data from Johns Hopkins university: cases at 07/03/2023 09:31:22 and deaths at 07/03/2023 09:31:21.
In [8]:
# to force a fresh download of data, run "clear_cache()"
In [9]:
print(f"Notebook execution took: {datetime.datetime.now()-start}")
Notebook execution took: 0:00:15.870433