I have a shapefile with contours and their heights.

Is it possible to make a DEM from contours in QGIS without using GRASS?

I found Creating DEM from contours using ArcGIS Desktop? but the answer is for ArcGIS Desktop.


Yes, there are several options available in QGIS:

  1. Inverse Distance Weighting (IDW) Interpolation plugin - see this for a tutorial (archived from the original).
  2. GDAL Raster plugin - to access, click Raster > Grid (Interpolation). GDAL's interpolation is more robust because you can use other interpolation algorithms (IDW, nearest neighbor, moving average, etc.). This tools only works for point data.
  3. GRASS GIS Plugin - there are several modules you can use (v.surf.* and r.surf.*). You need convert your shapefile into a GRASS database to use the GRASS modules in QGIS.
  • Are you sure, because when I execute your second suggested procedure, with GDAL Raster, it shows me this error message: "No point geometry found on layer modashp, skipping." – Vassilis Dec 21 '11 at 11:00
  • I updated the answer that it only works for point data. You can also look at GRASS GIS which has plugin in QGIS. – maning Dec 21 '11 at 11:27
  • 3
    The QGIS Interpolation plugin works olso with contour lines: add the attribute that holds the value to interpolate then in "type" select "structured lines" or "break lines" – Giovanni Manghi Dec 21 '11 at 12:30
  • 8
    IDW is inappropriate for contour line data. When forced to work with them, it will produce awful DEMs (they will look like terraces). Nearest neighbor and moving averages have similar problems. Interpolating rasters from contour lines requires specialized methods. – whuber Dec 21 '11 at 17:54
  • @whuber - any hints on these specialized methods? Seem to be getting OK results with inverse-distance-to-a-power in the Raster|Grid (Interpolation) tool, but definitely not perfect! – Simbamangu Dec 23 '11 at 6:58

GRASS has also many options


available one way or another also trough the QGIS/GRASS plugin.

  • Didn't the question specifically exclude GRASS? (You might want to rethink your comment to the reply by @jdeltoro.) Nevertheless, if a good solution is not available in QGIS, it is wise to cast one's net wider, so it's good to know of alternative solutions. – whuber Dec 23 '11 at 13:48
  • 2
    It depends what does mean "without using GRASS". This because many people do not know they can use GRASS tools inside QGIS like any other QGIS tool, without knowing at all what GRASS is or how it works. – Giovanni Manghi Dec 23 '11 at 14:07
  • Yes, for a small tutorial see grass.osgeo.org/wiki/QGIS_GRASS_Cookbook – markusN Dec 28 '11 at 0:50

I just posted this answer on another thread that was asking the same question. This is by far the easiest method that I have found.

I had the same question and looked everywhere! Finally a solution - you need to use "TIN interpolation". This video explains it perfectly: https://www.youtube.com/watch?v=PhJ77uHlTJA

It demonstrates other processes as well but the main thing is they used contour line data and created a DEM. Really good explanation as well.

Key tools used:

  • TIN interpolation (Processing Toolbox)
  • Slope (you can skip this one)(Processing Toolbox)
  • Hillshade (Raster tab)
  • +1. After trying several methods, TIN interpolation was by far the easiest and produced the cleanest result. IDW interpolation from points tended to create terracing in the DEM, and using v.to.rast and r.surf.contours can only handle small areas without crashing. – Jesse Reilly Oct 30 '20 at 5:01

The question is old, but as it is ranked high in Google search, so I think it is helpful to say QGIS has built-in interpolation tools:


However, the tutorial is also old.

For QGis 3.2, you can find it in the PROCESSING TOOLBOX, or in the RASTER > ANALYSIS > GRID menu:

enter image description here

enter image description here

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.