use*_*193 6 random r spatial points spatstat
我正在做一些工作,我需要生成a)随机空间点b)非随机空间点,在多边形上,即b)点概率取决于例如东西渐变,或距某些点源的距离或者是其他东西
对于a)我可以使用包中的spsample()命令在多边形上生成随机点sp,如下所示:
# Load a spatial polygon from maptools package
library(maptools)
nc <- readShapePoly(system.file("shapes/sids.shp", package="maptools")[1], proj4string=CRS("+proj=longlat +datum=NAD27"))
plot(nc)
library(sp)
pts <- spsample(nc, 100, type="random")
plot(nc)
points(pts, pch=19, col="red")
Run Code Online (Sandbox Code Playgroud)
这给出了我想要的a).但是,这可以修改为b)所以东部比西部更有可能吗?(虽然仍然可以指定我想要100分?)
我只知道如何使用spatstat软件包来执行此操作。通过该功能,rpoint可以使用坐标x,y的任何功能来定义不均匀的点密度。在这里,我定义了函数,该函数在该区域的西端具有值0,并以100向东倾斜,线性增长:
library(maptools)
library(spatstat)
nc <- readShapePoly(system.file("shapes/sids.shp", package="maptools")[1],
proj4string=CRS("+proj=longlat +datum=NAD27"))
nc <- as.owin(nc)
west0 <- nc$xrange[1]
f <- function(x, y, ...){ 100 * (x - west0) }
pts <- rpoint(1000, f, win = nc)
plot(pts)
Run Code Online (Sandbox Code Playgroud)