Skip to content

getting mean values for each raster in a stack

4 messages · Antonio Silva, Edzer Pebesma

#
Dear R users

I have a raster stack and a polygon.

I want the mean value inside this polygon for each raster in the stack.

I'm doing the following:

vals <- extract(stack,polygon)
colMeans(r.vals[[1]]) # only for mean values
# or
for (i in 1:nlayers(stack)) {print(mean(vals[[1]][,i]))} # mean or other
parameter

I also tried to use lapply, but I got only the overall mean with
lapply(vals, FUN=mean)

I wonder if there is a way to get the mean (and other parameters) for each
layer using lapply function.

Thanks in advance.

Antonio Olinto
#
Hi,

After many trials and some reading I got what I need

apply(vals[[1]],2,mean)

Anyway I would welcome comments to improve this solution.

Best regards

Antonio Olinto


2016-05-16 15:32 GMT-03:00 Antonio Silva <aolinto.lst at gmail.com>:

  
    
#
Did you try:

extract(stack, polygon, mean)

?
On 16/05/16 22:50, Antonio Silva wrote:

  
    
#
Dear Pebesma

No I din't, thanks. Probably I have not read enough.

extract                 package:raster
fun: function to summarize the values (e.g. ?mean?). The function
          should take a single numeric vector as argument and return a
          single value (e.g. mean, min or max), and accept a ?na.rm?
          argument ... ??

Thanks again.

A.O.


2016-05-16 18:01 GMT-03:00 Edzer Pebesma <edzer.pebesma at uni-muenster.de>: