Tuesday, January 15, 2013

Slope Shading Revisited

The CalTopo slope shading layer, originally done as an experiment of sorts, is overdue for a makeover. From a usability perspective, there are not enough colors - a wide variety of terrain gets lumped together into a few categories.  From a technical perspective, tiles are rendered on the fly using Mapnik and prebuilt polygons.  Not only is coverage limited to certain areas, but rendering speed is slow and I can only display select zoom levels.

The slope shading was originally built with backcountry skiing in mind, but it's also seen a lot of interest for summertime route planning, and I'd like to find a single color scheme that can accomodate both users.  After a lot of fiddling, I have two prototypes that I'm seeking comment on.

Both use a similar color scheme, but one has a smooth gradient (v1) while the other has fixed steps (v2).

Version 1, Avalanche Gulch
Version 2, Avalanche Gulch
In version 1, the colors are (slope angle in degrees): 15 = green, 27 = yellow, 40 = red, 60 = blue.  All intermediate slopes are an average of the two nearest fixed colors.  In version 2, slopes less than 20 degrees are not shaded.  20-26 = green, 27-29 = yellow, 30-31 = light orange, 32-34 = dark orange, 35-45 = red, 46-50 = purple, 50+ = blue.  Here's another take:

Version 1, Shastarama
Version 2, Shastarama
Version 1 makes it easier to spot subtle changes in terrain, and makes for a nicer looking picture.  However, it's hard to tell a slope's exact angle - and for avalanche safety, there can potentially be big differences that result from small changes in slope angle.  For planning safe travel routes in avy terrain, I think v2 is 10 times more useful than v1.

Right now I'm leaning towards producing both of these versions as map layers, so the question isn't really which one you prefer.  Rather, it's how can I improve them?  Should v2 have more colors, especially in the 0-27 or 35-45 ranges?  Should I pick different colors?  Highlight different slope ranges?