Search code examples
rrasterscenarios

Problem creating bioclimatic variables using dismo packages


I would like to get all the bioclimatic variables of future scenarios for species distribution modelling. So I run the "biovars" function in "dismo" packages using the three variables from worldclim database, and I got a RasterBrick of 12 layers:

prec<-stack(paste(getwd(),"/prec_2080/wc_2_5m_HADCM3_B2a_2080_prec_",1:12,".bil",sep=""))
tmin<-stack(paste(getwd(),"/tmin_2080/wc_2_5m_HADCM3_B2a_2080_tmin_",1:12,".bil",sep=""))
tmax<-stack(paste(getwd(),"/tmax_2080/wc_2_5m_HADCM3_B2a_2080_tmax_",1:12,".bil",sep=""))
x<-biovars(prec=prec,tmin=tmin,tmax=tmax)
 x
class       : RasterBrick 
dimensions  : 3600, 8640, 12  (nrow, ncol, nlayers)
resolution  : 0.04166667, 0.04166667  (x, y)
extent      : -180, 180, -60, 90  (xmin, xmax, ymin, ymax)
projection  : NA 
values      : C:/DOCUME~1/Marco/LOCALS~1/TMP/R_raster_tmp/raster_tmp_8984740455.grd 
min values  :     42 -65458  -1017      0     71      0 -65439     22     23     56 ... 
max values  :  65456    213      1  34159  65534  65513  65534  65507  65503  65518 ... 

However, I thought there should be 19 bioclim variables. As you mentioned that there are more arguments in biovars except the there, but I do not know what they are. Could you help me out?

Another problem of this is that I got error writing these variables:

writeRaster(x,paste(getwd(),"/wc_2_5m_HADCM3_B2a_2080_1.grd",sep=""))

Error in dim(res) <- c(ncols, raster@data@nlayers * nrows) : dims [product 933120] do not match the length of object [889920]

and, when I tried to write them band by band, I got the following error:

for (i in 10:12) {
writeRaster(x[[i]],paste(getwd(),"/wc_2_5m_HADCM3_B2a_2080_",i,".grd",sep=""),overwrite=TRUE)
}

Error in result[, i] <- readBin(raster@file@con, what = dtype, n = ncols, : replacement has length zero

The three input variables have the same dimensions, e.g.:

prec
class       : RasterStack 
dimensions  : 3600, 8640, 12  (nrow, ncol, nlayers)
resolution  : 0.04166667, 0.04166667  (x, y)
extent      : -180, 180, -60, 90  (xmin, xmax, ymin, ymax)
projection  : NA 
min values  : 0 0 0 0 0 0 0 0 0 0 ... 
max values  : 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 ... 

Could anybody explain why? Thanks in advance~


Solution

  • This is indeed a bug. It has been fixed in version 0.5-19 which should be available from R-Forge in 24 hrs and from CRAN very soon. RH