The problem of creating bioclimatic variables using demo packages

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

>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 already mentioned, there are more arguments in biovars, besides those that are, but I don’t know what it is. could you help me?

Another problem is that I got an error while 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 record them in the frequency 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

Three input variables are the same size, for example:

> 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 ... 

Can anyone explain why? Thanks in advance ~

+3
2

. 0.5-19, R-Forge 24 CRAN . RH

+4

, . biovars , , , Stack/Bricks. , 12 , , 19.

19 . .

tmin.V <- c(10,12,14,16,18,20,22,21,19,17,15,12)
tmax.V <- tmin.V + 5
prec.V <- c(0,2,10,30,80,160,80,20,40,60,20,0)
biovars(prec.V, tmin.V, tmax.V)

2x12 2x19, .

tmin.M <- rbind(tmin.V, tmin.V+1)
tmax.M <- rbind(tmax.V, tmax.V+1)
prec.M <- rbind(prec.V, prec.V+1)
biovars(prec.M, tmin.M, tmax.M)

19 . , . biovars *.bil worldclim.org 12- . , (, ), , .. , biovars, worldclim *.bil, .

dup12 <- function(clim.M) {
  raslist = list()
  for(i in 1:12) raslist = c(raslist, raster(clim.M))
  do.call(stack, raslist)
}
tmin.S <- dup12(tmin.M)
tmax.S <- dup12(tmax.M)
prec.S <- dup12(prec.M)
biovars(prec.S, tmin.S, tmax.S)

Error in v[tr$row[i]:(tr$row[i] + tr$nrows[i] - 1), ] <- p : 
  number of items to replace is not a multiple of replacement length
+2

Source: https://habr.com/ru/post/1794680/


All Articles