[GRASS-user] log(0)-error in r.mapcalculator

Markus Metz markus.metz.giswork at gmail.com
Thu Nov 8 10:34:16 PST 2012


On Thu, Nov 8, 2012 at 10:50 AM, Patrick S. <patrick_GIS at gmx.ch> wrote:
> Dear List,
>
> I keep getting a log(0) error in r.mapcalculator, even if I enlarge the
> data. This seems to be a bug as I controlled the same data with R and get
> (non-infinity) values. Does r.mapcalculator eventually truncate the results
> of formulas to some integer values?
>
> logit-expression:  log(((A/100)/(1-(A/100)))

In r.mapcalc, the numbers are treated as integers. Try instead log(((A
/ 100.0) / (1.0 - (A / 100.0)))
Changing e.g. 1 to 1.0 forces r.mapcalc to do floating point calculations.

HTH,

Markus M


>
> To avoid error of log(0) I enlarged the data by 0.00001, 1 and 5 but keep
> getting the error.
>
> I run it out of R with:
> param<-list(amap="r_slope_perc", formula="log(((A+0.00001)/100)/(1-(A/100)))
> ", outfile="r_slope_perc_logit")
> execGRASS("r.mapcalculator", parameters=param, flags=c("overwrite"))
>
> (r.mapcalculator amap="r_slope_perc",
> formula="log(((A+0.00001)/100)/(1-(A/100)))" outfile="r_slope_perc_logit"
> --overwrite)
>
>
> Any ideas why this happens?
>
> Patrick
> _______________________________________________
> grass-user mailing list
> grass-user at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/grass-user


More information about the grass-user mailing list