[GRASS-user] Raster Hole/NODATA filling programs

Frank Warmerdam warmerdam at pobox.com
Wed May 14 15:25:40 EDT 2008


I have a client interested in an alternative implementation of:


This is a program for filling nodata areas in a raster by interpolating
in from the edges.  The GRDINT program itself is primarily targetted at
interpolating from rasterized contour data, but it is also useful in a wide
variety of other contexts - to fill missing data holes in raster data.

I've looked at r.fillnulls and r.surf.idw and they both seems to attack
aspects of this problem.  In the case of r.surf.idw it talks about
interpolating from the "n nearest points" but this seems entirely unsuitable
for filling in large nodata areas since it will tend to have a substantial
discontinuity near the middle of the filled region as the n-nearest points
flip from top to bottom or left to right.

The r.fillnulls *appears* to scan the entire boundary of a nodata area to
build a point list of boundary values used for spline based interpolation.
I'm concerned this would not work well for situations like contour data with
large nodata areas or for situations where relatively sparse data has
been applied to a raster and we need to interpolate from that (so essentially
most of the image might be one connected nodata area!).

Are there other GRASS algorithms that I should be looking at for this task?

Am I misconstruing the weaknesses of r.fillnulls and r.surf.idw?  Perhaps
it is somewhat foolhardy for me to want a one-size-fits-all nodata filler?

If I implemented an algorithm like GRDINT (possibly lacking the morphological
aspects, but based on 8-direction searches) would it be a useful addition to

Best regards,
I set the clouds in motion - turn up   | Frank Warmerdam, warmerdam at pobox.com
light and sound - activate the windows | http://pobox.com/~warmerdam
and watch the world go round - Rush    | President OSGeo, http://osgeo.org

More information about the grass-user mailing list