如果多边形重叠,是否有一种方法使用st_sample从单个多边形中随机采样5个点?我希望采样点继承来自其采样的多边形的属性。
# create an empty list to store results
empty_list <- list()
# loop through each unique polygon and sample 5 points from each
for(i in used_buff_1k$unique_id[i]) {
empty_list <- st_sample(used_buff_1k, size = rep(5, nrow(used_buff_1k)), type = "random")
}
这创建了一个50个点的列表(10个多边形中的5个),但它不继承属性,它只是生成了一个点列表。看起来这可能产生了我想要的,但由于它没有循环通过每个独特的多边形和样本单独,似乎没有办法让我链接到哪些随机点去与每个多边形。
1条答案
按热度按时间myzjeezk1#
如果
tidyverse
方法可以,我们可以在mutate()
中使用purrr::map()
为每个多边形生成一个包含5个样本点的列表。当得到的列表列是非嵌套的,我们将有一个sf对象的多边形和点,行为每个采样点和所有属性的原始多边形sf。我们现在可以将几何体切换为点列,并删除不需要的列。结果:
创建于2023-06-04使用reprex v2.0.2