[GRASS-user] r.neighbors treating NULL values

Glynn Clements glynn at gclements.plus.com
Wed Oct 8 01:41:29 PDT 2014

Orr, Andrew B. wrote:

> I'm trying to find a tool that will do the same thing as the
> r.neighbors with a "sum cells" function, except that the tool has to
> write a NULL value if a NULL is encountered within the cell "size"
> that's specified.
> For example, if I have a raster:
> 3 2 3
> 4    2
> 1 2 3
> where the center cell is a null, I would like the tool output to write
> a NULL for the output when it passes over this part of the raster.
> As the tool is now, it seems that it treats it as a zero or simply
> ignores it when "sum"ing the contents.
> Any ideas on how I could do this, or what tool I would use?

Use r.neighbors method=count to count the number of non-null cells in
the neighbourhood.

	size=3 # or whatever
	area=$((size * size))
	r.neighbors in=map out=map.sum method=sum size=$size
	r.neighbors in=map out=map.count method=count size=$size
	r.mapcalc "result = if(map.count == $area, map.sum, null())"

Glynn Clements <glynn at gclements.plus.com>

More information about the grass-user mailing list