[GRASS5] Re: [bug #3023] (grass) r.fillnulls doesn't work

Glynn Clements glynn at gclements.plus.com
Fri Mar 4 04:38:15 EST 2005


Hamish wrote:

> > >> r.fillnulls fails in such a way:
> > >>
> > >> GRASS 6.0.cvs:~ > r.fillnulls input=N51E016_nowy
> > >> output=N51E016_nowy.fld Using tmp file r_fillnulls_4707
> > >> Locating and isolating NULL areas...
> > >>  100%
> > >> r.buffer: 00000000 - illegal distance specification
> > >
> ..
> > > what do you get if you type this at a command prompt:
> > >
> > > echo "0.3 0.3" | awk '{printf "%.8f\n", ($1 + $2)}'
> > > 00000000 or 0.60000000 ?
> > 
> > Neither:
> > 
> > GRASS 6.0.cvs:~ > echo "0.3 0.3" | awk '{printf "%.8f\n", ($1 + $2)}'
> > 0,00000000
> > 
> > "," instead of "." - would that be the issue? I Poland, in opposite to
> > the  normal world, we use the coma as the decimal point deliminator.
> > Does  r.fillnulls rely on local system settings?
> 
> 
> Yes, that's the problem.
> 
> I think awk might have troubles too. does this give "0,6":
> echo "0,3 0,3" | awk '{printf "%.8f\n", ($1 + $2)}'
> ?
> 
> We can't assume "bc" or "dc" are installed, but come to think of it we
> are using an arbitrary buffer distance here anyway so it doesn't really
> matter if we are +/- 1m. I've just applied a fix in CVS removing the
> above "awk" step. please test.

Hmm. In that case, scripts which use awk should probably have:

	LC_NUMERIC=C
	export LC_NUMERIC

Or just:

	LC_NUMERIC=C awk ...

-- 
Glynn Clements <glynn at gclements.plus.com>




More information about the grass-dev mailing list