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.


4 Answers 4


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, 2011 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, 2011 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" Dec 21, 2011 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, 2011 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, 2011 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, 2011 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. Dec 23, 2011 at 14:07
  • Yes, for a small tutorial see grass.osgeo.org/wiki/QGIS_GRASS_Cookbook
    – markusN
    Dec 28, 2011 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
    +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. Oct 30, 2020 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

  • Hei marcos, do you have any ides which interpolation is the best for contours(moving average, nearest neighbour or any other from those four?)
    – Usha
    Dec 9, 2022 at 11:29
  • @Usha, I don't know, because I didn't study the way each one works. When I need some interpolation, I do trial and error. But I'm sure some methods are better for some uses than others. Feb 23 at 15:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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