[R-sig-Geo] focalFilter problem raster package

Nick Hamm nick at hamm.org
Sun Apr 3 14:24:43 CEST 2011

Dear all

I am experiencing a strange problem when using the focalFilter
function in the raster package.

Whilst checking some code, I tried it on a toy dataset (p267) and a
simple function.  I have a set of filters in a list (w.ij).  These can
be found at http://dl.dropbox.com/u/15122401/Rproblem/toyexample.zip
or http://dl.dropbox.com/u/15122401/Rproblem/toyexample.Rdata

p267 is a 16x16 matrix.  The filters are all 15x15 binary filters.

I take the filter and move it around the matrix (4 centre points
(8,8), (8,9), (9,8), (9,9)). At each of these points I multiply the
filter by the underlying values in p267.  I then sum the new matrix,
as follows

sum(w.ij[[2]] * p267[-16,-16])
sum(w.ij[[2]] * p267[-16,-1])
sum(w.ij[[2]] * p267[-1,-16])
sum(w.ij[[2]] * p267[-1,-1])

I can repeat this for the other filters in the w.ij list.

I then try to do this using raster (eventualy I want to apply such
functions to a raster image not a small matrix), so I try:

p267.r <- raster(p267)

for(i in 1:5){
	tmp	<- focalFilter(p267.r, filter=w.ij[[i]], fun=sum)
	print(tmp at data@values[which(tmp at data@values != "NA")])

As you can see, the values obtained from the focalFilter function do
not match my test.  I cannot see why this should be.  Can anybody


> sessionInfo()
R version 2.12.2 (2011-02-25)
Platform: i386-pc-mingw32/i386 (32-bit)

[1] LC_COLLATE=English_United Kingdom.1252  LC_CTYPE=English_United
[3] LC_MONETARY=English_United Kingdom.1252 LC_NUMERIC=C
[5] LC_TIME=English_United Kingdom.1252

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

other attached packages:
[1] raster_1.8-3 sp_0.9-79

loaded via a namespace (and not attached):
[1] grid_2.12.2     lattice_0.19-17 tools_2.12.2

More information about the R-sig-Geo mailing list