为每个多边形特征生成与每个多边形特征区域成比例的随机点

问题描述 投票:0回答:1

我想知道使用sp::spsample为每个多边形要素生成随机点的最简单方法是什么,以使每个要素中的点数与相应的多边形面积成比例。我知道一个多边形如何做,但是我不确定每个要素应该怎么做。

样本数据

p <- shapefile(system.file("external/lux.shp", package="raster"))
r polygon spatial sample
1个回答
0
投票

执行此操作的一种方法如下:

library(raster)
library(sf)

set.seed(123)

# shape file from raster package
p <- shapefile(system.file("external/lux.shp", package="raster"))
plot(p)

# Using an old fashion for-loop
rpnt <- list()
for(i in 1:length(p)){
  pp <- p[p$ID_2==i,]
  rpnt[[i]] <- sp::spsample(pp, n=pp$AREA/20, "random") #modify it to what you want
  plot(rpnt[[i]], pch=i, col=(i), add=T)
}

out <- do.call(bind, rpnt)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.