# calculate slope of lines between nodes?

I need to calculate the mean slope of roads between nodes with QGIS. I have a DEM and a vector (PostGIS) with the roads, nodes are additionally displayed as point shape and also contain an elevation field derived from DEM: I am looking for the mean slope between those nodes which are connected with a line.

As there are many roads to calculate (see the picture below), I need a workflow which processes all calculations at once.Either output as raster (with slope values on the roads and NoData for others) or shapefiles containing the the slope are useful for my purpose.

How can I do this? I have a ArcGIS solution in mind (3D Analyst / interpolate shape), but I'd prefer a QGIS / open source solution!

I tried the Profile Tool Plugin, which only processes one line at once. Further, I was thinking of using a slope raster and failed because of the direction of the slope (contour line streets).

I was looking for other approaches, but it didn't work or I didn't understand them, e.g.:

Given DEM (raster) and Linea (SHP) calculate the slope on each segment of line

1) Explode Linea--->Segment 2) Field calculator define two float field Z_end_point raster_value('Lake_100m',1,make_point(x(end_point(\$geometry)),y(end_point(\$geometry))))

Z_start_point raster_value('Lake_100m',1,make_point(x(start_point(\$geometry)),y(start_point(\$geometry))))

then slope= Z_end_point-Z_start_point/lenght(\$geometry)*100

• The last expression is incorrect. The right expression should be slope = (Z_end_point-Z_start_point)/lenght(\$geometry)*100 Apr 23 at 17:48

You can do it with a python script. Basically, for each line, you iterate the nodes. for each pair of nodes, you sample the elevation from the raster, and then you calculate the slope.

My plugin "Walking time", uses a very similar approach. maybe you can read its code and adapt:

https://github.com/SrNetoChan/WalkingTime/blob/master/walkingtime.py#L160

• yeah I tried your pretty cool plugin! But unfortunately I don't use QGIS enough to understand python. Feb 7 '18 at 12:17