Thanks Robert, that's exactly the hack I needed.

Etienne

On Sun, Mar 13, 2011 at 7:48 PM, Robert Hijmans <r.hijmans@gmail.com> wrote:

> Etienne,
>
> What you are doing makes sense to me. To avoid border problems, perhaps you
> can first 'expand' the input raster by adding sufficient rows and columns
> at
> each side such that there are no relevant cells within the filter when it
> reaches the border.
>
> By the way, here:
>
> > r2 <- focal(r, nb=2, fun=vf)
> nb should be ngb, and typically ngb would not be an even number.
>
> Robert
>
> > I'd like to vary the size of my window on a moving window filter. The
> size
> > of the radius is set by a function of the center pixel (the current pixel
> > processed). I picked the raster package, but as focal() is using a fix
> > radius for the analysis, I thought I could use a large radius and apply a
> > function according to the value of the center pixel inside the raster.
> > Now,
> > when reaching the borders of the raster, it's hard to tell where's the
> > center pixel or what's the value of the current pixel processed.
> >
> > I did a little code to illustrate the problem of finding the center :
> >
> > library(raster)
> > r <- raster(matrix(1:25, nrow=5))
> >
> > vf <- function(x, ...){
> >   x[length(x)/2+.5] # that' how I (wrongly) find the center pixel
> > }
> >
> > r2 <- focal(r, nb=2, fun=vf)
> > # result :
> > as.matrix(r2-r)
> >
> >
> > #     [,1] [,2] [,3] [,4] [,5]
> > #[1,]    1    0    0    0   -4
> > #[2,]    1    0    0    0   -4
> > #[3,]    1    0    0    0   -4
> > #[4,]    1    0    0    0   -4
> > #[5,]    0   -1   -1   -1   -5
> >
> >
> > Do you know any way I could implement my function or if such a
> > functionality
> > is already implemented in another package ?
> >
> > Thanks,
> > Etienne
>
> --
> View this message in context:
> http://r-sig-geo.2731867.n2.nabble.com/Variable-window-on-a-raster-tp6155312p6167442.html
> Sent from the R-sig-geo mailing list archive at Nabble.com.
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>

	[[alternative HTML version deleted]]

