[GRASS-dev] [GRASS GIS] #2969: r.series: wrong usage of weights
GRASS GIS
trac at osgeo.org
Wed Mar 23 07:27:20 PDT 2016
#2969: r.series: wrong usage of weights
-------------------------------+-------------------------
Reporter: mmetz | Owner: grass-dev@…
Type: defect | Status: new
Priority: normal | Milestone: 7.0.4
Component: Raster | Version: 7.0.3
Keywords: r.series, weights | CPU: Unspecified
Platform: All |
-------------------------------+-------------------------
A weighted average is calculated with
{{{
avg = sum(w[i] * x[i]) / sum(w[i])
}}}
r.series calculates weighted averages with
{{{
avg = sum(w[i] * x[i]) / count
}}}
r.series should instead behave like r.neighbors and use the corresponding
weighing functions from libstats if available.
Test commands:
{{{
# set the region
g.region -p n=10 s=0 w=0 e=10 res=1
# create identical input maps
r.mapcalc "input1 = 1"
r.mapcalc "input2 = 1"
r.mapcalc "input3 = 1"
r.mapcalc "input4 = 1"
r.mapcalc "input5 = 1"
# average
r.series in=input1,input2,input3,input4,input5 method=average out=avg
# weighted average
r.series in=input1,input2,input3,input4,input5 method=average out=avg_w
weights=0.1,0.2,0.3,0.2,0.1
}}}
Without weights the result is 1, with weights the result is 0.18 instead
of 1. Weights have been added to r.series in r49946. I am going to change
r.series in trunk and relbr70.
--
Ticket URL: <https://trac.osgeo.org/grass/ticket/2969>
GRASS GIS <https://grass.osgeo.org>
More information about the grass-dev
mailing list