[R-sig-Geo] Antw: Re: Antw: Calc function on a stack slow?

Alexander Arpaci alexander.arpaci at boku.ac.at
Fri Sep 9 13:40:54 CEST 2011


The brick option will give you back a raster brick again 
if understand correct what you want to do..

r <- raster(ncol=10, nrow=10)
r[]=1:ncell(r)
s <- brick(r,r,r,r,r,r)

rs2 <- calc(s, fun=function(x){x * 10})
class(rs2)
cheers 

ales


MSc. Alexander Arpaci
Assistant researcher

Department of Forest - and Soil Sciences
Institute of Silviculture
Tel. +43-1-47654-4081
e-mail: alexander.arpaci at boku.ac.at
www.wabo.boku.ac.at 
>>> Els Ducheyne  09.09.11 13.12 Uhr >>>
Dear Alex
thanks for this, I will try the cluster functionalities
For the Brick option - I assumed that this will result only in a single RasterLayer instead of a new brick?

Best
Els
On 9 Sep 2011, at 12:58, Alexander Arpaci wrote:

> The package snow contains a function beginCluster () which helps to use if possible multicores for calculation of larger raster sets. Otherwise the use of brick could be helpful to speed things up..
> hth
> 
> alex
> 
> 
> MSc. Alexander Arpaci
> Assistant researcher
> 
> Department of Forest - and Soil Sciences
> Institute of Silviculture
> Tel. +43-1-47654-4081
> e-mail: alexander.arpaci at boku.ac.at
> www.wabo.boku.ac.at 
>>>> Els Ducheyne  09.09.11 12.46 Uhr >>>
> Dear r-sig-geo list
> I have a number of rasters with dim =  that I need to convert from Kelvin to Celsius. I though that stacking the layers and then perform a calculate would be the rrick. While this works, it is quite slow, so i wonder if there are faster ways in R to do this?
> 
> See below for code
> 
> Thanks for help
> 
> R.Version()
> $platform
> [1] "i386-apple-darwin9.8.0"
> 
> $arch
> [1] "i386"
> 
> $os
> [1] "darwin9.8.0"
> 
> $system
> [1] "i386, darwin9.8.0"
> 
> $status
> [1] "Patched"
> 
> $major
> [1] "2"
> 
> $minor
> [1] "11.1"
> 
> $year
> [1] "2010"
> 
> $month
> [1] "08"
> 
> $day
> [1] "30"
> 
> $`svn rev`
> [1] "52862"
> 
> $language
> [1] "R"
> 
> $version.string
> [1] "R version 2.11.1 Patched (2010-08-30 r52862)"
> 
> and raster package 1.7-29
> 
> require(raster)
> #get all the inputdata
> start <- Sys.time()
> inputlist <- list.files(pattern="lstday")
> datadisplay <- seq(1,length(inputlist),16)
> datadisplay <- c(datadisplay,length(inputlist))
> n <- length(datadisplay)-1
> for (i in 1:n){
> input <- inputlist[datadisplay[i]:datadisplay[i+1]-1]
> images <- stack(input)
> images.celsius <- calc(images,fun=function(x){x - 273.15})
> plot(images.celsius, zlim=c(-20,80),asp=1)
> hist(images.celsius,xlim=c(-20,80),n=100)
> }
> end <- Sys.time()
> print(end-start)
> 
> _______________________________________________
> 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