[GRASS-user] Do filters available in GRASS takes care of cell padding?
Glynn Clements
glynn at gclements.plus.com
Fri Dec 4 13:44:06 PST 2015
Uttam Kumar wrote:
> 4.) Which one of the above GRASS commands would be best suited to perform
> window operation (high pass filtering) along with cell padding?
One caveat to my previous reply:
Ignoring nulls often doesn't work so well for kernels with a zero sum
(e.g your high-pass filter). You can't use r.neighbors method=average
with weights which sum to zero (as that results in division by zero),
and method=sum introduces a bias if some weights are ignored (at the
edges, you'll have a single cell with a weight of 24 and fewer than 24
cells with a weight of -1, meaning that a constant map would produce a
positive value near the edges).
I would suggest using two passes, e.g.
r.neighbors size=5 method=average input=band5 output=band5_average
r.mapcalc 'band5_highpassfilter = band5 - band5_average'
g.remove raster=band5_average
This returns the value of the centre cell minus the average of the
surrounding non-null cells. The average value is still meaningful if
the filter window overlaps null cells or the edges.
--
Glynn Clements <glynn at gclements.plus.com>
More information about the grass-user
mailing list