I tried to interpolate the mean average annual temperature to produce a "realistic" surface. In QGIS I used Raster-Interpolation-Interpolation. Both methods TIN and IDW did not deliver a "realistic" surface (e.g. compared to a good map in an atlas).

IDW (factor 3):

IDW with factor 3

TIN (also showing the interpolation points):

TIN linear showing also my interpolation points

Any hints how to get a "better, more realistic" interpolation?

  • 2
    Especially for the mountainous area I'd expect that you have to consider elevation to get something remotely realistic. – underdark Aug 4 '12 at 17:13
  • @underdark: can you point me to a web-page, forum, tutorial, literature how this can be done? thanks!! – Kurt Aug 4 '12 at 17:26
  • This seems a reasonable source: ncgia.ucsb.edu/conf/SANTA_FE_CD-ROM/sf_papers/collins_fred/…. But climate data is not my specialty. – underdark Aug 4 '12 at 19:43
  • 1
    Are you looking to make a map where the temperatures are grouped into classes Kurt? Say, something like this, perambulations.files.wordpress.com/2012/02/usda-zone-map1.jpg. N. – nhopton Aug 5 '12 at 8:42
  • @nhopton: my primary intention was to make a continuous surface, which is at least "remotely realistic". There are only a few hundered data-points and interpolation in the moutain areas is beyond my scope. so perhaps I should consider trying to make a "grouped" temperature surface . But: Doesnt such a "grouped" surface need enough correectly interpolated data-points as a first step?? Do you have instructions / a tutorial for this? This would be very welcomed! thanks – Kurt Aug 10 '12 at 7:19

You may take the elevation-temperature relationship into account, especially in mountainous areas. Co-kriging or splines interpolation (e.g., 3D splines as supported by GRASS GIS) can be used for this. For larger areas further variables may play a role: distance from the sea, latitude, etc.

Update: a reasonable method may also be multiple regression, for GRASS 7 there is a new Addon: r.regression.multi


Interpolating climate data, you have two options (i see you need ready to use tutorials, I will give reference, but also some theoretical aspects you have here):

  1. simple interpolation using a kriging approach is the best option, cause you will have a statistical sounding relation. You can use this tutorial: In Romanian, but you can use Google Translate (use SAGA).

  2. covariate interolation, kriging or other method, supplementing temperature data with elevation or other data. You can use these tutorials: Mitasova spline with tension (use GRASS) or Tom Hengl book example (using R)


Are you atmospherically correcting the temperature data? That would account for surface elevation above sea-level and atmosphere. NCEP provides an abundance of atmospheric data for North America.

Also, a linear interpolation wouldn't be that good because temperature has diurnal variation throughout each day.


Kurt, you can group the temperature values in your raster to classes and export the results to a new raster using v.reclass from the Sextante toolbox.

I guess the minimum value of your interpolated raster might be (say) -5 and the maximum value (say) 30.

Using GRASS v.reclass from the Sextante toolbox would allow the values to be grouped into seven classes using this 'rules' text file (you could call it 'rules.txt'):

-5 thru 0 = 1
1 thru 5 = 2
6 thru 10 = 3
11 thru 15 = 4
16 thru 20 = 5
21 thru 25 = 6
26 thru 30 = 7

The output would be a new raster having a value of 1 for all of the values of between -5 and zero in the original raster, of 2 for all of the values between 1 and 5 in the original raster, and so on.

The procedure is very simple, all you need is the interpolated raster and the 'rules' text file. See also the Man page for v.reclass here: http://grass.fbk.eu/gdp/html_grass64/r.reclass.html

Once classified, the new raster could also be polygonised to produce a polygon shapefile, to put hard edges on the colour-rendered image. Or you could colour style the shapefile and forget about the raster.

Just a quick note. Interpolation is one of those things that makes what's left of my hair stand on end because it can produce very convincing-looking results from very thin data. What's more the results are usually impossible to check because you've used all of the data you have to do the interpolation, so it's in the nature of things that you can't carry out meaningful checks on the areas for which you don't have data.

In your case, the data for the area outside of the borders of Austria is thin and you might consider clipping the final map image to show just Austria. Or maybe leave the points in. For example, I might have a graph with a shotgun splatter of points through which I draw a straight line. The dishonesty starts when I then remove the points :)


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.