[GRASS5] Re: [GRASSLIST:8746] Re: r.fillnulls and res < 1
Markus Neteler
neteler at itc.it
Tue Oct 25 02:09:56 EDT 2005
On Tue, Oct 25, 2005 at 02:11:33PM +1300, Hamish wrote:
> Robert:
> > > I am having trouble with r.fillnulls and a raster having a
> > > resolution of 0.48.
> > >
> > > Is it right that r.fillnulls only works for raster with a resolution
> > > 1?
>
> Markus:
> > thanks for finding the problem. I have fixed it in 6.1-CVS and
> > 6.0-CVS (for future 6.0.2).
> ..
> > Now resolution of 0.48 are accepted as well.
>
>
> Hey Markus,
>
> -RES="`expr $nsres_int + $ewres_int`" # avg*2
> +RES="`echo $nsres_int $ewres_int | awk '{printf "%f\n", ($1+$2) / 2.}'`"
>
>
> the buffer around the holes was twice the resolution on purpose.
Hi Hamish,
it seems that I was too hasty:
Looking at cvs2cl.pl/Changelog:
2005-03-02 03:22 hamish
* r.fillnulls: remove AWK for doing decimal multiplication -- broke
when decimal point was a ",". The buffer distance is pretty
arbitrary anyway, so not a big deal if we lose sub-meter precision
(I hope).
Note:
The decimal point story should be fixed due to the LC_.. statements
earlier.
> With nominally two points around the edge you interpolate into the hole with
> a trained slope at the edges, otherwise you just get a flat plane.
>
> Perhaps that should even be three times the mean resolution to give
> three points in all directions to define both the incoming slope &
> curvature. It shouldn't affect processing time any and hopefully would
> give a more realistic guess of what is in the hole. Maybe even a bigger
> buffer?
This sounds good to me.
> With just a single row of cells around the hole you often get gaps
> around the edges when distance > mean (.5 of the time? diagonals? worse
> when ewres!=nsres).
>
>
> also,
> nsres_int="`g.region -gm | grep 'nsres=' | sed s/nsres=//`"
> ewres_int="`g.region -gm | grep 'ewres=' | sed s/ewres=//`"
>
> could probably be reduced to:
> eval `g.region -gm`
Maybe you could fix it?
Markus
More information about the grass-dev
mailing list