While mean of calc(y, mean) would allow me to operate on the original
stack, and then subsequently aggregate the results, what I need to do is
operate on the entire set of values within the aggregation window (x * y *
nlayers) in one go, because I am deriving a multivariate distance metric
(below).

multidist <- function(x,...)
{
footprintsize<-225
numvars<-3
meandist <- mean(dist(matrix(x,footprintsize,numvars), method =
"euclidean"),na.rm=TRUE)
return(meandist)
}



On Sat, Jun 21, 2014 at 4:35 AM, Robert J. Hijmans <r.hijmans@gmail.com>
wrote:

> Carlos,
>
> How about:
>
> x <- mean(y)
>
> or
>
> x <- calc(y, mean)
>
> Robert
>
>
>
> On Fri, Jun 20, 2014 at 2:50 PM, Carlos Carroll
> <klamathconservation@gmail.com> wrote:
> > When I use "aggregate" (package raster) on a multi-layer stack, with a
> > function such as "mean", it returns a second multi-layer stack at the
> > aggregated resolution. The function is applied separately to values from
> > each layer in turn.
> > What I want to do is send the vector/matrix of values extracted across
> all
> > layers to the user-defined function, which returns a single value that
> > would then go to form the output, a single layer raster or stack.
> > I can do this for a focal function using package spatial.tools, e.g.:
> >
> > v<-rasterEngine(w,fun=mean,window_dims = c(15,15,3))  ## for a 3 band
> stack
> > with a window size of 15 by 15.
> >
> > But I just need the value at the aggregate resolution, so running a focal
> > function takes ~200 times longer than necessary in this case.
> > Is it possible to use raster::aggregate or another function to do a
> similar
> > multi-layer operation?
> >
> >         [[alternative HTML version deleted]]
> >
> > _______________________________________________
> > R-sig-Geo mailing list
> > R-sig-Geo@r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>

	[[alternative HTML version deleted]]

