首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R代码adehabitatHR -网格太小,不适合kernelUD /getverticeshr/adehabitatHR家程估计

R代码adehabitatHR -网格太小,不适合kernelUD /getverticeshr/adehabitatHR家程估计
EN

Stack Overflow用户
提问于 2018-09-16 17:48:00
回答 1查看 631关注 0票数 1

抱歉,我的新问题。我还在学习如何在R中进行空间分析,我意识到这个问题已经被问到了(here)。

目标:我无法使用参数中的模拟数据运行这段代码,特别是对于经度(X)值(请参见行: 24)。我想用模拟的数据(下面)绘制家庭的范围。

Error:“getverticeshr.estUD中的错误(x[i],百分比,ida =name(X)i,unin ):网格太小,无法估计归属范围。您应该用更大的范围参数重新运行kernelUD。”

代码语言:javascript
复制
# 1. Packages
library(adehabitatHR)         # Package for spatal analysis

# 2. Empty Dataframe
points <- data.frame(ID = double())
XY_cor <- data.frame(X = double(),
                 Y = double())
# 3. Assigning values (this will be our spatial coordinates)
set.seed(17)
for(i in c(1:100)){
  if(i >= 50){points[i, 1] <- 1}
  else {points[i, 1] <- 2}

  XY_cor[i, 1] <- runif(1, -78.86887, -78.86440) ## error is here!
  XY_cor[i, 2] <- runif(1, 0.958533, 0.960777)} 

# 4. Transform to SpatialDataframe
coordinates(points) <- XY_cor[, c("X", "Y")]
class(points)

# 5. Domain
x <- seq(-80.0, -77.0, by=1.) # resolution is the pixel size you desire 
y <- seq(-200, 200, by=1.)
xy <- expand.grid(x=x,y=y)
coordinates(xy) <- ~x+y
gridded(xy) <- TRUE
class(xy)

# 6. Kernel Density
kud_points <- kernelUD(points, h = "href", grid = xy)
image(kud_points)

# 7. Get the Volum
 vud_points <- getvolumeUD(kud_points)

# 8. Get contour
levels <- c(50, 75, 95)
list <- vector(mode="list", length = 2)

list[[1]] <- as.image.SpatialGridDataFrame(vud_points[[1]])
list[[2]] <- as.image.SpatialGridDataFrame(vud_points[[2]])

# 9. Plot
par(mfrow = c(2, 1))
image(vud_points[[1]])
contour(list[[1]], add=TRUE, levels=levels)
image(vud_points[[2]])
contour(list[[2]], add=TRUE, levels=levels)


# 10. Get vertices 
vkde_points <- getverticeshr(kud_points, percent = 50,
                         unin = 'm', unout='m2')
plot(vkde_points)
EN

回答 1

Stack Overflow用户

发布于 2018-12-06 15:57:05

我能够用下面的代码来解决这个问题。希望这能帮助别人在同样的问题上!我不得不手动改变我的包围盒的分辨率。

5.领域

代码语言:javascript
复制
x <- seq(737326.0, 737639.6, by=5)        
y <-seq(106071.4, 106259.9, by=5)
xy <- expand.grid(x=x,y=y)
coordinates(xy) <- ~x+y    
gridded(xy) <- TRUE
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52356851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档