I am not sure how to achieve the following consistently:

I have a regular distributed point dataset (surface elevations). From this I derived several DEM using QGIS IDW Interpolation method. Now I get different results based on the value of the distance coefficient I enter. I examined values between 1.0 and 3.5, where lower values smooth the surface more and larger values increase surface roughness and so terrain features show up more clearly.

In the next step I compared single values from my DEM rasters with the value at the same position in the original point dataset (which I assume to be the "correct" real world values, I want to be represented in the DEM too). I found larger deviations in the rasters with a lower distance coefficient, due to the surface smoothing.

Now I want to ensure, which distance coefficient fits best for my calculation, thus trying to calculate mean deviation between one raster and the point dataset over the entire area. I though I could just calculate raster - point dataset, then calculating mean value on the resulting dataset, but this wont work with the raster calculator.

I am unfortunately also not too much of an expert in QGIS.

Is there some function achieving the above or a workaround?

Googling, I could not find anything that would do that for me.

  • I thnk that IDW is not the best interpolation method for creating a DEM from point elevations. How dense is your regular point dataset? and what final resolution do you want? With that information, you probably will want to choose a spline or kriging method, probably using GRASS, saga, or similar.
    – Micha
    Mar 28, 2015 at 16:06
  • Yes, you are right, I was searching for that but Interpolation menu just allows me to choose between TIN or IDW, so I chose the latter. My point distribution is 20m, the same resolution I want to have in the output raster. Thanks for that info, I'll try to use one of the mentioned facilities.
    – ulrich
    Mar 28, 2015 at 17:16

1 Answer 1


Based on the added information in your comment, I would suggest to use the GRASS module r.in.xyz. There are some issues lately with the QGIS GRASS plugin, so I'd work directly in GRASS, standalone. First, when you start GRASS, you're required to setup the GRASS database, and LOCATION. The LOCATION is defined by the coordinate projection parameters. Make sure it's the same as the coordinate system of your input data points.

Once you've done that, use the -s parameter of the r.in/xyz module to scan for the full extents of your input point data file. Use these extents to set the region (grass module g.region). In addition, set the resolution to 20 m, again using the same g.region module.

Now you can just run r.in.xyz, and a GRASS raster will created with the value of each pixel equal to the value of the point it contains. So you have your DEM. And then you can export out to a GTiff, or other raster format for other uses with r.out.gdal.

  • Thanks for the detailed answer. I will try to run it in GRASS and see if it works as desired.
    – ulrich
    Mar 28, 2015 at 22:58
  • Tried that with good results! Took me a while to configure GRASS but then calculation is done pretty quick. Additionally, I had to grow the REGION half a cell in all directions manually, as stated in the r.in.xyz docs, to achieve cell-center pixels. All in all, there are no deviations from the original point cloud now, so I guess that answers the question!
    – ulrich
    Mar 29, 2015 at 18:34

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.