0

我希望你能帮助我解决我已经有一段时间的问题。我需要为 MaxEnt 制作一个偏差文件,为此我使用了本教程:https ://scottrinnan.wordpress.com/2015/08/31/how-to-construct-a-bias-file-with-r- for-use-in-maxent-modeling/并将其更改为我自己的情况。然而,我现在卡住了......

我需要使用 kde2d 函数来创建 2d 内核密度估计,然后将其转换为栅格。但是,创建的栅格具有不同的 x 和 y 分辨率。这是一个问题,因为我必须在 MaxEnt 中使用它,它不会接受不相等的 x 和 y 分辨率。

这就是我所做的:

biasraster <- raster("file.tif") #load raster with all the occurrences  
presences <-which(values(biasraster)==1)  
pres.locs<- coordinates(biasraster)[presences,]  
dens <-kde2d(pres.locs[,1],pres.locs[,2],n=c(nrow(biasraster),ncol(biasraster))) #2d kernel density function on the biasraster  
dens.ras<-raster(dens) #create raster from kde2d function 

对于 x 和 y,biasraster 的原始分辨率均为 0.00833333,但 dens.ras 的分辨率已更改为 0.0104052、0.00833333 (x,y)(因此 y 分辨率是正确的)。

从问题中可能可以看出,在编码(r)方面,我是一个完全的菜鸟。我一直试图弄清楚大约一个星期要做什么,但我找不到任何似乎有效的答案,所以我希望这里有人可以帮助我。

4

1 回答 1

0

我有同样的问题。我只能使用以下方法解决它:

dens.ras <- resample(dens.ras, climdat, method="bilinear") #以与climdat相同的分辨率制作偏差文件

但另外,我还需要削减 dens.ras。

densmod<-crop(dens.ras,extent(climdat))

通过这些额外的步骤,我的偏差文件运行良好。

于 2017-04-11T17:27:28.357 回答