0

I have a DTM onto which I need to 'stamp' a series of raised embankments.

The DTM is a raster grid (in m above sea level) and the embankments are polylines containing the crest height (also in m.a.s.l.) of each embankment.

I want to edit the DTM cells falling under the polylines to take the elevation values from the polylines, effectively stamping these onto the dtm.

What would be the most efficient method of doing this in QGIS?

Edit: In ArcGIS I would have done this in archydro tools (using the build walls function) or by using a Con and IsNull function in calculator.

0

Turn your lines into polygons with a width larger than the resolution of your DTM raster. Rasterize the polygons to the same resolution as your DTM. Finally using the raster calculator, add the two rasters together.

  • That doesn't work because the embankments are in MASL so can't simply be added to the DTM. I could calculate but elevation difference but I'd rather not have to. Also doing a raster calculation like that seems to default to the smallest extent, so removing all of the DEM data. – Ed Rollason Jun 13 '16 at 14:33
0

From this thread (How to modify single Pixel values in QGIS?) this is suggested and appears to do what I want:

  1. Create a new point shapefile with a point in each pixel - give it the 'new' elevation as an attribute
  2. Run Raster -> Conversion -> Rasterize
    • Select your point shapefile with appropriate elevation attribute as the vector input
    • Select the original DTM as the output (this will overwrite)
    • Ensure that you maintain the original extent and cellsize

It also appears to work with polyline data so no need to pre-process the lines into points.

The only issue is that there is no capability to fine-tune the stamping, for example ensuring that embankments are always above DTM level, but I can cope with that.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.