So I'm making a bike commuting map for our area, and one of the features to show (common on a lot of bike maps) is some type of road grade marker.
We're planning to show three categories: 'kinda steep, pretty steep, and crazy steep' - we're not planning to use those names - but you get the drift. (Actually, four categories - anything less than the first category just doesn't get a marker.) The markers are one, two, or three arrows - here's a clip:
The problem: since we live in the foothills - not much flat stuff around here - the task of getting all the grade markers right is pretty daunting and tedious. So - it would be nice to automate it.
So I've got the DEM for the area from the NED, and got a nice slope raster from it (thanks to folks that helped figure that out). Overlaying that on the bike map (the roads are a vector layer of course), you can see a way to conceptually automate this task. Basically, making a vector layer that is the boolean AND of the roads layer and the slope layer of certain values (whether by categorizing the slope layer, or by making separate slope layers per grade range ahead of time) should get it done. I'd want the output to be a vector layer. But, I'm not quite clear on how to do all that. Suggestions on workflow?
I realize this concept doesn't account for direction (which way is uphill) so I'll plan on doing that by hand (flipping the vector selections as needed, or, doing so with an attribute that is used by the style to decide which way to draw the arrows)
UPDATE: this will be done in QGIS 2. A thought: make a vector layer (of shapes) out of raster categories, i.e. a vector shape of areas with slope between 5 and 10 degrees (this would cover one of the categories of steepness), then do a boolean AND of that layer with the roads layer; so now you have a bunch of disjoint lines; that's exactly what is needed; just style these lines with the double-arrow (or as appropriate for that category), and flip direction of each segment as needed (which is easy to do from memory or from a map if needed).