[R-sig-Geo] Faster way to get raster average?

Thiago V. dos Santos thi_veloso at yahoo.com.br
Wed May 6 03:48:32 CEST 2015


Hi all,
I am working with some terabytes of CMIP5 climate files. Each file is a netcdf with multiple layers (timesteps) representing monthly data. 
For each file, I need to extract the average value of the raster and put all values in a data frame. This is my current approach:---------------
library(raster)
# make up some datacmip <- brick(nc=150, nr=114, nl=1872)cmip <- setValues(cmip, matrix(rep(1:17100, 1872), nc=1872))
# get mean values (area average) as data framescmip.mean <- as.data.frame(cellStats(cmip, mean, na.rm=T))---------------
which works pretty fast in this example:
> system.time(as.data.frame(cellStats(cmip, mean, na.rm=T)))
   user  system elapsed 
  0.069   0.012   0.081 
However, the calculation with my actual data is substantially slower:
> system.time(as.data.frame(cellStats(cmip, mean, na.rm=T)))
   user  system elapsed 
  4.600   1.105   5.704 
Since I will have to deal with thousands of files, here comes my question: is there a faster way to get a the average value of a raster ? 
Many thanks,
--
Thiago V. dos Santos
PhD student
Land and Atmospheric Science
University of Minnesota
http://www.laas.umn.edu/CurrentStudents/MeettheStudents/ThiagodosSantos/index.htm
Phone: (612) 323 9898
	[[alternative HTML version deleted]]



More information about the R-sig-Geo mailing list