r语言 - 将 khrud 对象从内核UD导出到栅格



在R中,如何将khrud对象从软件包中的函数kernelUD导出到光栅文件(geoTiff(?

我尝试使用此处的代码遵循此线程(R:如何从estUDm对象创建栅格图层(:

writeRaster(raster(as(udbis1,"SpatialPixelsDataFrame")), "udbis1.tif")

其中 udbis1 是一个 khrud 对象,但我得到"as(udbis1, "SpatialPixelsDataFrame"( 中的错误:没有方法或默认值来强制"khrud"到"空间像素数据帧"。 我认为问题可能是旧线程是在 adehabitat 包的更新将数据格式从 estUD 更改为 khrud 之前。或?

AdehabitatHR解决方案适用于所需格式的数据或使用多种动物时。虽然当想要使用不同组织或仅针对一个来源的数据创建 KDE 时,这可能会令人沮丧。出于某种原因,@johaness的答案不适用于我的情况,因此这里有一个替代解决方案,可以避免进入 adehabitatHR 内部的头痛。

library(adehabitatHR)
library(raster)
# Recreating an example for only one animal
# with a basic xy dataset like one would get from tracking
loc<-puechabonsp$relocs
loc<-as.data.frame(loc)
loc<-loc[loc$Name=="Brock",]
coordinates(loc)<-~X+Y
ud<-kernelUD(loc)
# Extract the UD values and coordinates into a data frame
udval<-data.frame("value" = ud$ud, "lon" = ud@coords[,1], "lat" = ud@coords[,2])
coordinates(udval)<-~lon+lat
# coerce to SpatialPixelsDataFrame
gridded(udval) <- TRUE
# coerce to raster
udr <- raster(udval)
plot(udr)

您没有提供可重现的示例。以下内容对我有用:

library(adehabitatHR)
library(raster)
data(puechabonsp)
loc <- puechabonsp$relocs
ud <- kernelUD(loc[, 1])
r <- raster(as(ud[[1]], "SpatialPixelsDataFrame"))
writeRaster(r, filename = file.path(tempdir(), "ud1.tif"))

最新更新