I need to interpolate a raster from point data (air pollution stations data). What I want to achieve is to distinguish the station's scope (or range or scale). For example some station's data are valid for area with radius of aprox. 1 km around the station and for some other one it is 10 km radius. I have this in separate attribute. I am looking for a way how to make this affect the interpolation results. I am able to work in ArcGIS or GRASS on this task. I am familiar with IDW, Kriging and some other interpolation methods but I couldn't solve this so far.


The pseudocode for this is simple if you are happy with triangulation (nearest neighbour as well?), it requires iteration through cells though, it might take a long time to run.

Create any raster for your output extent and convert it to points.

  1. For each point compute TIN using list of stations, convert TIN to triangles
  2. See if all 3 stations of point’s parent triangles are within relevant distances
  3. If FALSE remove station(s) from list that are too far and go to 1)
  4. Otherwise calculate point Z from 3D triangle and proceed with next point

GRASS may have methods based on the radial basis functions, possibly under a different name like "spline"? Anyway, compactly supported RBF, Gaussian RBF, even thin plate spline RBF have a radius parameter, which you could hopefully adjust according to the radius of influence.

Alternatively you could assign same data values to some points in the neighbourhood of each 10km range stations so that the average data sites sparsity is 1km throughout. Then use your favourite method of scattered data interpolation where all location are considered equally.

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.