Team Members: Saumya Sinha, Charlie Godfrey, Kelsey Maass, Connor Sawaske
![DNR Logo](logo.png)
Washington Wildfires
1973-2017
Data courtesy of Washington Department of Natural Resources GIS Open Data.Map courtesy of Google Maps Javascript API.
Design Rationale
At the end of last summer the West Coast (Washington included) weathered an onslaught of wildfires. In the aftermath, a pressing question is whether such fires have become more frequent and/or more severe. While this data set can be used to investigate such questions, it is flexible enough to address others - for instance, one can look into leading causes. While Smokey the Bear commercials tend to give the impression that unattended campfires are a major cause of forest fires, using the above visualization we see that in the data set at hand they account for only a few relatively small fires. The leading cause in this data? Lightning. Disclaimer: it's still really important to keep an eye on your fire until you put it out completely!
Our data source is the "Washington Large Fires 1973-2017" data set from the state DNR - each row corresponds to an individual wildfire. The most exciting column of the data consists of geoJSON files providing the fire perimeters. These are overlayed on a Google map - go ahead, drag and zoom to find an area of interest! While we also considered a simultaneous-filtering visualization along the lines of the baseball stats example in class (i.e. 3 different histograms, binning the fires by year, area and cause respectively), we saw geographic location and extent as a key variable of interest; after that a map was the natural choice.The primary numerical columns are date and area - these can be used for filtering using the sliders under the map. The interesting nominal columns are name and cause - you can filter by cause using checkboxes, and hover over an individual fire to access its name from a "details-on-demand" tooltip. Observe that the tooltip also contains the date, acreage and cause - this encoding is semi-redundant, but important since the interactive filters only pin down intervals for the date and area, and a subset of the causes. Not surprisingly, we arranged so that the selected fire glows red.
The cause of many of the fires has been binned as "other" for the purposes of checkbox filtering - this is for several reasons: in exploratory data analysis we found many fires with "unknown" cause, as well as some causes with very low incidence (e.g. "railroad"). There were also some incorrectly entered causes (for instance "miscelaneouS"). Aggregating these allowed us to limit the number of checkboxes. Note however that the causes are not aggregated in the tooltips.
Design & Development Process
We first met as a team to decide on a basic vision of the final product - Charlie pitched the idea of a wildfire map. The next step was tracking down data sources, grappling with various formats for geographical data and engaging in some exploratory data analysis. Ultimately we decided on the data used in the project because it came in geoJSON format (convenient for both d3 and Google applications) and it wasn't too large. We made it even smaller by compressing the geoJSON data from the DNR using mapshaper.org.
We should mention that the DNR site does feature an ArcGIS interactive map (and a quick Google will yield several other wildfire maps - they were all the rage last summer). So, this is not a novel graphic - however we do feel that our version was built with particular attention to design details.
At this point we reconvened to discuss implementation. The two major hurdles this project presented were displaying geographic data and enabling interactivity. After Charlie built a couple rough, static map prototypes (not fit to print!) we opted for the Google Maps Javascript API - this is used to generate an underlying map object and a data layer containing wildfire perimeters satisfying the current filtering criterion. We have Kelsey to thank for finding the API, learning its syntax and figuring out how to make it work with d3 to overlay data; along the way we benefited from several helpful examples. See "mapScript.js" in the githib repository.
For filtering and interactivity, we took the d3 tutorial offered in class as a starting point and tracked down a couple more examples (have we thanked Mike Bostock personally yet?) using tooltips. The filtering, sliders and checkboxes you see here are due to Connor and Saumya. See the later parts of "mapScript.js" and "sliderScript.js".
We all collaborated on github over the course of the project, and met on Monday, April 30th to push all the branches together. Charlie wrote this writeup. Each of us spent 20+ hours working on the project, for a total of roughly 100 people-hours (we are all math grad students, frantically climbing the Javascript learning curve).