R 中的核密度函数给出不相等的 x 和 y 分辨率

kernel density function in R gives unequal x and y resolution

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

我需要使用 kde2d 函数创建二维核密度估计,然后将其转换为栅格。但是,创建的光栅对 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 

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

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

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

dens.ras <- resample(dens.ras, climdat, method="bilinear") #以与climdat

相同的分辨率制作偏置文件

但是另外,我还需要剪掉 dens.ras。

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

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