The COVID-19 Monitor Germany is an interactive dashboard to give a better overview about the pandemic situation in Germany. It provides a multitude of plots and daily calculated figures.
The data used come from official sources. On the one hand from the Robert-Koch-Institut (RKI), on the other hand from the Intensivregister. The Intensivregister provides data on the situation in intensive care units in Germany.
Since there are strong fluctuations in the reported numbers (fewer reports on weekends, fewer tests on weekends, etc.), smoothing in the form of 7-day moving averages is used to better show a trend. Also in the daily overview, the attention is shown on the trend analysis in the form of 7-day moving averages, rather than on the daily reported figures. They are nevertheless displayed for the sake of completeness.
Plotly Dash was used to generate the interactive plots.
The plots are divided into the three groups "daily overview", "corona cases" and "intensive care". The three groups can be selected via the tabs with the same names.
- reported cases of last day
- reported deaths of last day
- R0 of last day
- figures of last 7 days
- new reported deaths by reporting date (start of illness, alternativeliy reporting date)
- delay in reporting between public health departments and the RKI
- cases reported by RKI
- total reported cases by reference date (start of illness, alternativeliy reporting date)
- deaths reported by RKI
- total reported deaths by reference date (start of illness, alternativeliy reporting date)
- R0 and daily proportional change
- 7 day incidence
- Number of PCR tests
- Clinical aspects
- distribution of inhabitants and deaths
- distribution of reported cases and deaths in relation to inhabitants
- number of reporting areas
- new admissions of COVID-19 patients to intensive care unit since day before
- change from previous day of intensive care beds occupied by COVID-19 patients
- Proportion of COVID-19 patients receiving intensive care and ventilation
- intensive care beds occupied with and without COVID-19 patients
- intensive care beds proportional figures
You can zoom in and out of the plot by clicking the corresponding buttons on the right upper corner of a plot. You can also select an area to zoom in by selecting the beginning of the area by clicking on the left mouse button and holding it.
You can unselect the plot by clicking the corresponding name in the plot legend. Clicking the name again displays the plot again.
By double-clicking on the specific plot name in the legend, this plot can be selected individually. By double-clicking on the name again, all plots are displayed again.
One dependency is pdftotext
. Because of this you have to make sure that you have poppler
installed. For Mac
you can run
brew install pkg-config poppler
on your terminal. For other OS see here.
First install the virtual environment within the dashboard folder. open your terminal and navigate to the project's directory.
pipenv install
This will install all the required Python packages from the Pipfile and create a virtual pipenv environment.
On your terminal in the dashboard directory run
pipenv run python app.py
This starts a local server. The terminal displays the IP-Address
to access the app in your browser. Locally and by
default it should be
http://127.0.0.1:8050/
If you want to use gunicorn
, e.g. for production, run in your terminal not the first command, but
pipenv run gunicorn app:server -b localhost:8000
. Now you can find the app under
http://127.0.0.1:8000/
This project has a script called update_data.py
, which performes the updates for all used data sources. In the
main folder also exists a shell-script called update_data.sh
. Inside this script you have to change to path to
your project folder. Then you can create a cron job to run the script every 10 minutes, for example. To get this script
running every 10 minutes on a mac, go to Terminal and use the command
crontab -e
.
Inside the opened file you have to define the time frame of the update and the path to the script. You can pipe the output into a log file. You can do it with
*/10 * * * * /path/to/your/project/folder/update_data.sh >> /path/to/your/project/folder/update_data.log 2>&1
.
Daniel Haake: Dashboard Application, Data Collection, Data Preparation, Data Analysis & Visualization
Christian Kirifidis: Dashboard Application & Visualization
The software is available under licence conditions of GNU GPLv3.