2018 Opioid Overdose Deaths in Pennsylvania

Built an interactive choropleth map of opioid overdose deaths in Pennsylvania in 2018, by county, using D3.js. The counties are shaded by the rate of overdose deaths, not the raw number.

Counties which experienced between one and nine deaths show no data, per PA Department of Health rules.

Feel free to explore on Glitch.


Estimated Accidental and Undetermined Drug Overdose Deaths CY 2017–18 County Health, from the Pennsylvania Department of Health.

2018 County Population Estimates, from the US Census Bureau and PA State Data Center

County GeoJSON Data, from Eric Celeste

OK, Cartographer

Map of the Mid-Atlantic region with colors and typography in the style of the “OK Computer” album artwork.

This could still use some work, but here’s an “OK Computer” album artwork-inspired Mapbox Studio style, I created during a cartography course. If nothing else, the project was a great reason to listen through the Radiohead album a few times while working on it!

London Heathrow Ads

Advertisement with four maps styled as watch faces, showing flights departing London Heathrow Airport at various times of day.

For a project in a graduate cartography course, I was tasked with creating three advertisements for London Heathrow Airport, the second busiest airport in the world for international passengers. As an exercise, we were to visualize flights departing at various times of the day (above), as well as flights by distance and flights to major tourist destinations (below). Another requirement was that we experiment with different projections as was fitting for the particular ad.

I took inspiration from vintage airline ads, and am proud of the “watch face” concept in the first ad above which had to be executed entirely in ArcGIS Pro…

Two advertisements, each with a map showing flights departing London Heathrow Airport. The first depicts the distances of the flights, while the second highlights major tourist destinations.

Segregated Milwaukee

Three maps of Milwaukee, showing the white and black populations, as well as the three major racial groups together.

A dot density map of Milwaukee, Wisconsin, showing white, black, and Latinx residents in the Bucks’ colors. A 2018 Brookings study showed Milwaukee as having the highest black-white segregation among large American cities.

In a March interview in The Guardian, Bucks’ guard Malcolm Brogdon spoke about his experience of living in such a segregated city. The NBA team has a very public recent history confronting racism.

In 2015, center John Henson had the police called on him while attempting to buy a watch at a suburban jewelry store. Bucks president Peter Feigin called the city “the most segregated and racist place” a year later, and the organization has been outspoken in support of its players and in working on issues of racial inequity.

In early 2018, rookie Sterling Brown was apprehended for a parking violation in a Walgreens lot. “Nearly a dozen officers responded and Brown was taken to the ground and tasered in the back.” The Bucks supported Brown in his filing of a federal civil rights lawsuit against the city and its police department.

High resolution image of map

Data: American Community Survey 2017 5-Year Estimate

The United States of Drought

Here are nineteen years’ worth of drought maps, animated across just over a minute. Darker red-orange marks more severe drought conditions, as you might have guessed. Look at how parts of Southern California have spent essentially the last decade in drought, with few periods of relief.

I manipulated the data on the map (ArcGIS Pro) with Python and arcpy, scripting the export of each frame as a png. Then I used GMIC to smooth an extra frame in-between (“tween”) the maps, which helps the animation not feel quite as jumpy. Lastly, I compiled all of those frames into a video with FFmpeg.

The base map is made with Natural Earth data.

Data: United State Drought Monitor

Income Inequality in the U.S.

Bivariate choropleth map showing levels of income and income inequality in the United States, by county.

Mapping county-level median household income levels compared to income inequality (using the Gini coefficient) with American Community Survey data. This was another bit of playing around with Mike Bostock’s D3, this time with his Observable notebook on making bivariate choropleth maps.

Data: American Community Survey 2017 5-Year Estimate

Pennsylvania Population Density

Pennsylvania Population Density Choropleth Map

Followed Mike Bostock’s four-part Command Line Cartography tutorial, using D3 to create a static SVG, and made this population density choropleth map of Pennsylvania.

Data: American Community Survey 2017 5-Year Estimate

Buttle Lake Hillshade

Strathcona Provincial Park’s Buttle Lake Hillshade

Andy Woodruff’s done some amazing stuff rendering hillshades entirely in the browser. Mess around with the various parameters and see the results in the embedded map, no Blender needed. Above is Buttle Lake and the Forbidden Plateau, in Vancouver Island’s Strathcona Provincial Park, with a little bit of a purple added to the shadows, yellow in the highlights, and a bit of a darker green in the lower elevations.

Golden Eagle Migration

Five years of golden eagle (Aquila chrysaetos) migration in one minute!

In early 2008, The The Center for Conservation Biology fitted three juvenile eagles who winter in the Mid-Atlantic with GPS trackers. I’m fascinated by the variability in how closely they follow previous years’ paths as they migrate to Maine, Quebec, and New Brunswick for the summers. The animation adds nuance to my comprehension of their movements compared to a single static map.

I manipulated the data and animated the map (ArcMap) with Python and arcpy for a project in Penn State’s GEOG 485 GIS Programming and Software Development course.

The base map is made with Natural Earth data. I overlayed the eagles locations as points, scripted the sequential exporting of each day as an image, then compiled those images into a video with FFmpeg.

Many thanks to CCB for their work and for access to the data from their Tracking Golden Eagles in Eastern North America project, where you can learn more about the birds and the impetus for studying them.

Magnolias, First Draft

Magnolias, First Draft

This is a rough first draft of a map showing where the US Forest Service says the various types of magnolia trees are in the US (green), along with all the streets with “Magnolia” in their name (pink), according to TIGER/Line roads data. This excludes all the “Magnolia Streets” in Puerto Rico, Hawaii, and Alaska(!), thousands of miles from the nearest (native) magnolia tree.

I’ve always loved literal road names! I live a mile or so from a White Church Rd, which is a country dirt road with a pretty little 1700’s church at the end of it…that is white. I love that! Of course things change over time. Sometimes the places change and the name no longer fits, even though it remains. Sometimes the name changes.

I saw some gorgeous tree distribution maps by Bill Rankin – they would count as inspiration, and his notes there also pointed me to the Forest Service data.

After finding my way back to Ben Fry’s All Streets map, and the musing he posted about wanting to compare street names to tree distributions since so many streets are named after trees, I was off to try to make something. He mentioned magnolias, so I started there.

I’ve thought for a while that I’d like to try to create some maps showing places (streets, towns, counties, etc.) that are named after species (plant or animal) that no longer reside there, due to habitat loss, extinction, climate change, etc. Maybe I’ll get there someday!

First priority for this map is dissolving the tree data a bit and working to make things more legible at normal sizes.