[R-sig-Geo] How to calculate decadal average and percent change in raster stacks?

Vijay Lulla vijaylulla at gmail.com
Tue Dec 1 10:22:12 CET 2015


Maybe something like below?

R> avg_rainfall <- do.call(stack,lapply(1:9,function(x)
overlay(stack(s,bands=10*x+(0:9)),fun=mean)))
R> ss <- subset(avg_rainfall,1:9) #?raster::subset
R> st <- subset(avg_rainfall, 2:10)
R> pct_change <- 100 * (st-ss)/ss

HTH,
Vijay.

On Tue, Dec 1, 2015 at 3:14 AM, Thiago V. dos Santos
<thi_veloso at yahoo.com.br> wrote:
> Dear all,
>
> I am working with yearly climate projections of rainfall that cover the period from 2010 to 2099:
>
> library(raster)
>
> # Create the date sequence
> idx <- seq(as.Date("2010/1/1"), as.Date("2099/12/31"), by = "year")
>
> # Create raster stack and apply the date
> r <- raster(ncol=360, nrow=180)
> s <- stack(lapply(1:length(idx), function(x) setValues(r, runif(ncell(r)))))
> s <- setZ(s, idx)
> s
>
> Given this raster stack, how can I calculate the average values per decade and percent change for each decade?
>
> I define decades here as 2010-2019, 2020-2029, 2030-2039 and so on until 2090-2099.
>
> I guess the real issue here is how to "split" a raster stack in decades. Any ideas?
> Thanks,
>  -- Thiago V. dos Santos
>
> PhD student
> Land and Atmospheric Science
> University of Minnesota
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo



More information about the R-sig-Geo mailing list