希望有人能帮忙。我有一个大的数据集,其中包括100个随机数据为10只动物。到目前为止,我已经通过堆叠每个运行来创建一个EstUD,以获得一个使用过的发行版的总和。我现在想用内核重叠器比较每一种动物的家范围。不幸的是,我得到了错误,在vi * vj :较长的对象长度不是较短对象长度的倍数。我认为这是因为网格并不完全相同。有没有一种方法来转换网格,使它们都是相同的,那么我可以估计重叠吗?代码的第一部分我已经跑了十次了,每只动物一次。我相信这也可以在一个循环中完成,但不确定如何实现。
#Part1: generate 10 estUD's 1 per animal
bat.master <- read.csv("C:/Users/a6915409/Dropbox/Wallington GIS/bat.master")
xybat <- subset(bat.master, bat.master$id == "H1608b",select=x:loopno )
#change to spatial points
xy <- xybat[1:2]#first two rows save as coords
df <- xybat[-1:-3]#remove unneded columns for ud
SPDF <- SpatialPointsDataFrame(coords=xy, data=df)#combine df and xy
udHR <- kernelUD(SPDF, h = "href", same4all = TRUE, kern = "bivnorm")
## I would proceed using the raster packages
library(raster)
ud <- stack(lapply(udHR, raster))
## take the sum
plot(udm <- sum(ud))
H1608b <- udHR[[1]]
H1608b@grid <- as(udm, "GridTopology")
# Part 2:
#combine all Ud's into one dataset
liud <- list(Y2889a, Y2889a, Y2850a, Y2850b, H1670a, H1670b, H1659a, H1659b,H1608a, H1608b)
class(liud) <- "estUDm"
image(liud)#plot all est ud's
Over<-kerneloverlaphr(liud, method="UDOI", percent= 90)错误:在vi * vj中:较长的对象长度不是较短对象长度的倍数
发布于 2016-02-10 20:42:53
您需要使用参数kernelUD来估计same4all=T。您将消除与重叠计算有关的问题。
https://stackoverflow.com/questions/27356789
复制相似问题