[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