- Python 3.7.3
- scipy
- pandas
- numpy
- streamlit
- altair
see requirements.txt
for versions
In order to get this app running quickly I have not fully automated everything, therefore, it takes a bit of manual labor to update. Here are the current steps I take:
-
At 4:30 pm the State updates the daily Covid-19 case totals. I add these values to the
/data/mt_coronavirus_status.csv
file. This file is only used for the latest data because the NYT data seems to lag by 2 days. -
I then run the
runsir.py
file locally which runs the SIR model and saves the results in.csv
files. It also archives old model results locally so that we can look back at our predictions at a later date. -
I spend a bit of time tuning the model to make sure we get realistic solutions. Because it is still early and the signal is not strong (especially in Missoula) you can get some funky results.
-
Once I like the model, I run
runsir.py
one more time to save the preferred model results to the repository. -
Commit the changes.
-
Push to Heroku
Currently, I am using N=10000 for Montana and N=1000 for Missoula and Gallatin counties. Betas and gammas will be reported on the website in future versions.
The code was adapted (hijacked) from the great work of Lewauathe and their blog post. Thank you!
- Add uncertainty to the model
- Report and interpret peak timing, peak magnitude, beta, gamma, R_0 and HIT from the model results.
- Add previous model runs
- Add other (all) counties in Montana
- Improve model: Li et al. 2020