[GRASS-dev] Re: [GRASS GIS] #1088: r.fillnulls: support other interpolation methods

GRASS GIS trac at osgeo.org
Mon Feb 13 09:36:39 EST 2012


#1088: r.fillnulls: support other interpolation methods
-------------------------+--------------------------------------------------
 Reporter:  kyngchaos    |       Owner:  grass-dev@…              
     Type:  enhancement  |      Status:  new                      
 Priority:  normal       |   Milestone:  6.4.3                    
Component:  Raster       |     Version:  svn-develbranch6         
 Keywords:  r.fillnulls  |    Platform:  All                      
      Cpu:  All          |  
-------------------------+--------------------------------------------------

Comment(by mmetz):

 Replying to [comment:12 hamish]:
 >  * applied in devbr6 by MarkusN in r50114, with sie,sin = 3*res and the
 default lambda_i=1.
 >  * applied to trunk by luca in r50128 with sie,sin = 1*res and the
 default lambda_i=1.
 >
 > see above comments for MarkusM's recommendation for using si=2*res and
 lambda=0.005.

 The sie/sin settings are the result of guestimation and experimenting. I
 found that for evenly placed points, e.g. a vectorized raster without
 gaps, 1 * res gives nice results. With r.fillnulls, the points are not
 evenly spaced and sie/sin needs to be larger than 1*res in order to avoid
 artifacts. For very large gaps, support points are needed anyway by both
 RST and bspline. For moderately large gaps, 2*res or 3*res seems to work
 fine with bspline.

 The idea of adding bspline to r.fillnulls is to have a different
 interpolation method which should give different results, just like in
 r.resamp.interp. RST tends to provide more detail at the cost of
 overshoots, whereas bspline with method=bilinear does not produce
 overshoots and produces a smoother surface. Bspline with method=bicubic
 can produce results very similar to RST, but AFAIU the idea of bspline
 interpolation is to avoid overshoots and to produce a smoother surface.
 Therefore r.fillnulls could just as well have the method options
 rst,bspline with bspline using bilinear by default. The results would then
 be intentionally different.

 I have modified r.fillnulls in trunk to use r.resamp.bspline which is
 designed for raster interpolation instead v.surf.bspline. That avoids the
 vectorization step and essentially reduces the processing to
 r.resamp.bspline -n followed by r.patch.

 Markus M

 PS: I fixed r.buffer in trunk, it could now be used (again) by r.fillnulls
 instead of r.grow.

-- 
Ticket URL: <https://trac.osgeo.org/grass/ticket/1088#comment:14>
GRASS GIS <http://grass.osgeo.org>



More information about the grass-dev mailing list