从SpatialPolygonsDataFrame创建多边形列表

时间:2020-07-24 17:57:44

标签: r polygon spatial

我正在尝试从程序R中的SpatialPolygonsDataFrame创建多边形列表。我想在for循环中使用此多边形列表,以确定动物何时访问了多边形弹道。使用R中getRecursionsInPolygon()包中的recurse函数。我需要将其作为多边形列表,因为getRecursionsInPolygon()函数一次只能在一个多边形上工作。

这是我的head中的SpatialPolygonsDataFrame

structure(list(Id = 1:6, Size__sq_m = c(6886L, 5578L, 16750L, 
14274L, 15194L, 4882L), FP_Type = c("Summer", "Summer", "Summer", 
"Winter", "Both", "Summer"), Lat = c(32.6390865966, 32.6360069165, 
32.6391750444, 32.6372529261, 32.6359054154, 32.6377978275), 
    Long = c(-90.199481333, -90.2011287155, -90.1957678438, -90.1982750261, 
    -90.1938361696, -90.1903029072), Count = c(1, 1, 1, 1, 1, 
    1), Size_Acres = c(1.70147478152, 1.37829500148, 4.1390108439, 
    3.52708393966, 3.75446924007, 1.20629786829)), row.names = 0:5, class = "data.frame")

projection(fp)
[1] "+proj=longlat +datum=WGS84 +no_defs"

我正在尝试通过以下方式列出清单:

#Making list of polygons
polyl <- list(fp@polygons)

但是,当我将其放入for循环中时:

for (i in length(polyl)){
  res <- getRecursionsInPolygon(animal, polyl[[i]])
  res <- as.data.frame(res$revisitStats)
  if(i==1)
  {
    stats <- res
  }
  else
  {
    stats <- rbind(stats,res)
  }
}

我得到了错误:

getRecursionsInPolygon.data.frame(xyt,多边形,阈值,时间单位,: Inherits(polygon,“ SpatialPolygons”)不是TRUE。

我不确定如何使列表真正成为for循环中要使用的多边形。欢迎其他可能的解决方案。

谢谢

0 个答案:

没有答案