Machine Progressions

Background

In animation production, 'rotoscoping' is a technique used to trace individual frames of filmed action onto animation cells so these sequences can be used to create cartoon animation and composite film sequences without anyone learning to draw realistic movement.

In wildfire management, a 'progression' is a rendering of a time-ordered set of fire perimeters onto a map.

Sometimes a progression map product is not available for some interesting fire, and in those cases it is convenient to have software generate a kind of 'rotoscoped progression' by stacking layers of perimeter data chronologically onto a map.

Machine progressions are generated on the server through a convoluted and arcane process we will describe here.

Data

All fire perimeter data is from GeoMAC, because we need a set of date- or timestamped perimeters for each fire. These were downloaded as esri shapefiles, converted to geojson, and loaded into a postgis database through a django fixture.

Products

Some Examples

Maple 36 perimeters from Aug. 11, 2016 to Sept. 21, 2016

Pinnacle Mountain 21 perimeters from Nov. 11, 2016 to Dec. 2, 2016

Wolverine 65 perimeters from June 30, 2015 to Sept. 16, 2015

Paradise 36 perimeters from June 17, 2015 to Sept. 26, 2015

Johnson Bar 36 perimeters from Aug. 7, 2014 to Oct. 8, 2014

Bald Sisters 36 perimeters from Aug. 3, 2014 to Sept. 24, 2014

Zaca 46 perimeters from July 6, 2007 to Sept. 3, 2007

Tripod 29 perimeters from July 26, 2006 to Sept. 19, 2006

Aspen 25 perimeters from June 20, 2003 to July 12, 2003

21st Century Fire Seasons

More examples of these machine progressions are available by fire year:

Beware of older fire data, as things do fall apart. The upside is we can observe data availability improving through the years and into the present.

Method

Once the fire perimeters are in the database, we write a django view to produce three files:

  • topojson file containing all perimeter data
  • javascript file to build the map
  • html page to hold the map

Most of the work is done by piping the same queryset into .json, .js, and .html templates.

The topojson conversion in this view is a memory hog, has crashed the server more than once, and this needs to be addressed. Still, topojson animation data is between 2 and 8 times smaller than uncompressed geojson, so it's worth it.

The javascript is entirely other people's work: leaflet.js for the map, leaflet,timedimension.js for the animation, chroma.js for the garish color scales.

Problems/Improvements

Graphics: dynamic color, alpha, draw order, persistence/removal, timed labels, general timeseries issues

Data: more compression (geobuf), blank dates (esp 2003 and 2006), projection problems, duplicate names (complex/cplx, wfu), daily geomac re-up, other data sources, kml out