Exposing Ebola outbreak data
You probably heard about the ongoing Ebola outbreak and may be wondering how bad it really is. I went looking for some hard data which proved to be difficult to obtain so I put on my hacker hat and went about fixing that by creating a node package and an HTTP API that can return the latest data and do basic outbreak projections.
Update: I've also created a repo with the data in multiple formats.
Update 2: Here's an animated chart of the viruses exponential outbreak potential in 2015.
Here's how I did it:
First I had to get the data from somewhere. I found HealthMap had sourced data from the World Health Organization's PDF reports and packaged it in the form of CSV so I used that. Since the data is only updated every 18 days I implemented local caching to avoid needlessly wasting any bandwidth.
Once I had the node package up on NPM it was trivial to build the RESTful API on top of it. I chose to use expressjs as the backend framework and had it up and running on my server in no time. Nginx sits in front of the node process to handles caching and rate-limiting in order to ease the load on my tiny server and upstart keeps everything running.
Projecting the outbreak:
What I was most interested in was the rate at which the outbreak is spreading. By looking at the data we can discern it's growth rate and apply that to predict the amount of cases in the future.
The results are frightening and will hopefully prove to be extremely pessimistic. Of course, the real-world has natural limits that do not fit into an exponential regression model. This is good because at the current rate of infection everyone on earth would have the virus by 2017.
What will end up happening is that an s-curve will emerge at some point, the question is when.