Hello! I have an interest in visualization and wanted to create something new and useful to help with the pandemic in my own community. With the ever-changing circumstances that we are living through, we often wonder how exactly the pandemic is doing in our area, and if it is getting any better. There were currently lots of bar graphs with trends and visual maps of cases by region out there, but from all the data out there, it was not always easy to interpret how exactly we were doing, and what the progress of my state (Maryland) looks like. Therefore my goal for this project was to make it easier to tell how our particular county is doing and how much improvement we are seeing by giving as much context as possible to the data.

What it does

This tool maps out the growth rate in cases of a particular week by county. It helps give a ton of context to the number of cases so that users can understand how it fits into the bigger picture. Instead of just knowing that cases have increased by 400, or a specific percent, they also know what the situation looked like in previous weeks to have a comparison point, and they receive a hint regarding potential trends that may be developing. Since the growth rate tends to fluctuate, the trends information is not always relevant, but it is very useful when the recent weeks have shown a consistent pattern, such as the growth rate decreasing for 9 weeks in a row. The timeline helps track the progression of growth in the virus in Maryland, and I think it would be a really interesting tool in about a year when we can see when cases surged and slowed and connect this to real-life events.

How I built it

I found a great data source for cases by county from here. Since this data did not have map geometry, it was not yet suitable for mapping. I combined this data with a dataset for Maryland county coordinates, so that all the data was matched to a location. I also added new properties such as the percent calculation, acceleration (how much the percent changed by), and a way to detect trends and track how long they last for. All of this data manipulation was done with Python prior to building the actual map. I used mapbox to add and display my data fields to a map of Maryland. This required a ton of uploading to make the sure the data worked (and if the data was accurate). I then styled the map to change the color of counties based on certain conditions. This map was displayed on a web browser using Javascript, and the information-box and legend were all styled with CSS and programmed with Javascript.

Challenges I ran into

Generating data that was compatible with mapping was the hardest part because I only had a dataset of raw cases by county. It took a lot of time to figure out how to integrate this data into a map, especially because it didn't even have geographical coordinates. I ended up using Python to create a program that could add the geographical coordinates to my case counts, as well as calculate the needed percents, accelerations, and trends for each data piece. All of this was compiled into a geojson data format using the PyGeoj library so that it could be mapped.

Accomplishments that I'm proud of

I'm happy that I was able to make the dataset mentioned above work with mapbox since I am still fairly new to Javascript and mapping, and I'm happy that my tool is easy to use and understand.

What I learned

I learned about how Javascript works because I had never used Javascript in a project before. My experience with Python definitely helped a lot and I was able to learn it without too many problems. I also learned how mapping data actually works and how to format my data in geojson so that it can be mapped. It was a fun experience and satisfied my curiosity to learn about mapping.

What's next for Maryland Coronavirus Monitor

Here are some weaknesses in my tool that should be addressed:
-The slider must be slid slowly, otherwise the map takes a bit of time to catch up (while rapidly changing colors)
-The dataset needs to be updated weekly by me because I use a Python program to format the data and calculate its properties before mapping. Hopefully I can integrate this to automatically happen within the Javascript once I am more familiar with the language.
-The map calculates all the properties based on case-count without taking into account testing. This makes the data a little bit unreliable since testing affects the case-count. If I have access to any such dataset, I would love to be able to account for testing by county by mapping the percent positives. However due to limited data, I chose to go with growth rate for now.

Here are some future considerations to build upon the project:
-In the future, it would also be cool to add some more advanced techniques to analyze trends in the data and report it in a user-friendly manner, since I used a basic way of doing this in order to save some time.
-Also, I hope to add a way to indicate shut-downs, university updates, reopening phases, school system updates and more based on county so that it can be an even more useful tool to use as the pandemic progresses (especially with the possibility of a second wave).
-Even further down the road would be a way to add predictions, assuming the dataset has expanded enough to provide for somewhat accurate predictions.

Share this project: