R中的一维点过程(spatstat)

时间:2018-12-18 16:13:22

标签: r design-patterns point spatstat

我问过another question,该公司因过于广泛而被关闭。现在,我将尝试指定。

同样,我想在R中模拟一维点过程。到目前为止,我只从事二维模拟,并且需要一些帮助。

我的目标是模拟图片中的

picture

但是,我只需要带有随机点的实线。

我使用spatstat,并且已经发现我可以使用以下方法在1-dim线上生成随机点:

rpoisppOnLines(lambda, L, lmax = NULL, ..., nsim=1, drop=TRUE)

现在,我想生成实线,最好使用匹配的标签。

有人有主意吗?

2 个答案:

答案 0 :(得分:1)

这是一些从点流程中获取样本的粗略代码。

library(spatstat)
lambda = 5
L = psp(0, 0, 3, 0, owin(c(0, 3), c(-1, 1)))
pp = rpoisppOnLines(lambda, L, lmax = NULL, nsim=1, drop=TRUE)
plot(pp$x, pp$y, pch = 4, lwd = 2, cex = 2)
abline(0, 0)

您可以使用ggplot2

答案 1 :(得分:1)

您可以使用简单的线性网络来表示一维线 您要模拟的细分。这也使拟合模型成为可能 (lppm),非参数估算强度(density.lpp),估算 K函数(linearK)和其他一些东西:

library(spatstat)
x_start <- 0
x_end <- 3
endpoints <- ppp(x=c(x_start, x_end), y=c(0,0), window = owin(c(x_start, x_end), c(-.1,.1)))
L <- linnet(endpoints, edges = matrix(c(1,2),ncol = 2))
X <- rpoislpp(lambda = 5, L = L)

但是,此工具是为复杂网络上的点设计的,并非针对 只是实线,所以绘图方法并不能真正适应 设置,并且可能无法完全满足您的要求(空白太多):

plot(X, pch = 4, lwd = 2, main = "")
axis(1)

您可以使用coords提取点图案的坐标,然后 从那里的另一个答案中使用绘图方法:

co <- coords(X)
co$x
#> [1] 1.3306861 2.5550691 1.7776248 2.9486675 1.8571362 2.5020587 1.4843001
#> [8] 0.4371669 0.8478670

reprex package(v0.2.1)于2018-12-18创建