Bahrain¶

  • 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:31:41 CEST
In [2]:
%config InlineBackend.figure_formats = ['svg']
from oscovida import *
In [3]:
overview("Bahrain", weeks=5);
2023-03-07T09:31:45.043564 image/svg+xml Matplotlib v3.7.1, https://matplotlib.org/ 30 Jan 06 Feb 13 Feb 20 Feb 27 Feb 06 Mar 0 0 100 100 200 200 300 300 7-day incidence rate (per 100K people) 124.9 Bahrain, last 5 weeks, last data point from 2023-03-06 30 Jan 06 Feb 13 Feb 20 Feb 27 Feb 06 Mar 0 50 100 150 200 daily change normalised per 100K 30 Jan 06 Feb 13 Feb 20 Feb 27 Feb 06 Mar 0.00 0.05 0.10 0.15 0.20 daily change normalised per 100K 30 Jan 06 Feb 13 Feb 20 Feb 27 Feb 06 Mar 0 0 2 2 4 4 R & growth factor (based on cases) Bahrain cases daily growth factor Bahrain cases daily growth factor (rolling mean) Bahrain estimated R (using cases) 30 Jan 06 Feb 13 Feb 20 Feb 27 Feb 06 Mar 0.0 0.0 2.5 2.5 5.0 5.0 7.5 7.5 10.0 10.0 R & growth factor (based on deaths) Bahrain deaths daily growth factor Bahrain deaths daily growth factor (rolling mean) Bahrain estimated R (using deaths) 30 Jan 06 Feb 13 Feb 20 Feb 27 Feb 06 Mar 0 5000 10000 cases doubling time [days] Bahrain doubling time cases (rolling mean) Bahrain doubling time deaths (rolling mean) 0 851 1702 2552 3403 daily change Bahrain new cases (rolling 7d mean) Bahrain new cases 0.000 0.851 1.702 2.552 3.403 daily change Bahrain new deaths (rolling 7d mean) Bahrain new deaths 0 839 1678 deaths doubling time [days]
In [4]:
overview("Bahrain");
2023-03-07T09:31:54.600646 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 1000 1000 2000 2000 3000 3000 7-day incidence rate (per 100K people) 124.9 Bahrain, 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 100 200 300 400 daily change normalised per 100K Jan 20 May 20 Sep 20 Jan 21 May 21 Sep 21 Jan 22 May 22 Sep 22 Jan 23 May 23 0.0 0.5 1.0 1.5 daily change normalised per 100K Jan 20 May 20 Sep 20 Jan 21 May 21 Sep 21 Jan 22 May 22 Sep 22 Jan 23 May 23 0 0 2 2 4 4 R & growth factor (based on cases) Bahrain cases daily growth factor Bahrain cases daily growth factor (rolling mean) Bahrain 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.0 0.0 2.5 2.5 5.0 5.0 7.5 7.5 10.0 10.0 R & growth factor (based on deaths) Bahrain deaths daily growth factor Bahrain deaths daily growth factor (rolling mean) Bahrain 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 5000 10000 cases doubling time [days] Bahrain doubling time cases (rolling mean) Bahrain doubling time deaths (rolling mean) 0 1702 3403 5105 6806 daily change Bahrain new cases (rolling 7d mean) Bahrain new cases 0.00 8.51 17.02 25.52 daily change Bahrain new deaths (rolling 7d mean) Bahrain new deaths 0 673 1346 deaths doubling time [days]
In [5]:
compare_plot("Bahrain", normalise=True);
2023-03-07T09:31:58.672784 image/svg+xml Matplotlib v3.7.1, https://matplotlib.org/ 2020-01 2020-05 2020-09 2021-01 2021-05 2021-09 2022-01 2022-05 2022-09 2023-01 2023-05 0.001 0.001 0.1 0.1 10 10 1000 1000 daily new cases per 100K people (rolling 7-day mean) Daily cases (top) and deaths (below) for Bahrain Bahrain Germany Australia Poland Korea, South Belarus Switzerland US 2020-01 2020-05 2020-09 2021-01 2021-05 2021-09 2022-01 2022-05 2022-09 2023-01 2023-05 0.0001 0.0001 0.001 0.001 0.01 0.01 0.1 0.1 1 1 daily new deaths per 100K people (rolling 7-day mean) Bahrain Germany Australia Poland Korea, South Belarus Switzerland US
In [6]:
# load the data
cases, deaths = get_country_data("Bahrain")

# get population of the region for future normalisation:
inhabitants = population("Bahrain")
print(f'Population of "Bahrain": {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 "Bahrain": 1701583 people
Out[6]:
total cases daily new cases total deaths daily new deaths
2023-03-06 709230 0 1552 0
2023-03-05 709230 462 1552 0
2023-03-04 708768 236 1552 0
2023-03-03 708532 471 1552 2
2023-03-02 708061 233 1550 1
... ... ... ... ...
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:17.627469