linearK - spatstat中经验和接受包络之间的大时间差
问题描述:
我有兴趣知道线性网络上0到2km之间的点之间的相关性。我使用以下语句作为经验数据,这是在2分钟内解决的。linearK - spatstat中经验和接受包络之间的大时间差
obs<-linearK(c, r=seq(0,2,by=0.20))
现在我想检查随机性的接受度,所以我使用相同的r范围的信封。
acceptance_enve<-envelope(c, linearK, nsim=19, fix.n = TRUE, funargs = list(r=seq(0,2,by=0.20)))
但是这个节目预计时间会少于3个小时。我只是想问一下这个大的时间差是否正常。我是否正确地在函数调用函数时调用了它的r作为序列的额外参数?
是否有一些缩短信封3小时执行时间的有效方法?
我有一个整个城市的道路网络,所以它是相当大的,我检查了没有断开的子图。
c
Point pattern on linear network
96 points
Linear network with 13954 vertices and 19421 lines
Enclosing window: rectangle = [559.653, 575.4999] x
[4174.833, 4189.85] Km
谢谢。
编辑点评
system.time({s <- runiflpp(npoints(c), as.linnet(c));
+ linearK(s, r=seq(0,2,by=0.20))})
user system elapsed
343.047 104.428 449.650
EDIT 2
之后,我删除一些外围网络段,似乎有整体网络上很少或根本没有效果做了一些非常小的变化。这也导致将一些较长的细分市场分成较小的细分市场。但现在不同点模式在同一个网络上,我有更长的预计时间:
> month1envelope=envelope(months[[1]], linearK ,nsim = 39, r=seq(0,2,0.2))
Generating 39 simulations of CSR ...
1, 2, [etd 12:03:43]
新的网络是
> months[[1]]
Point pattern on linear network
310 points
Linear network with 13642 vertices and 18392 lines
Enclosing window: rectangle = [560.0924, 575.4999] x [4175.113,
4189.85] Km
系统配置:MacOS的10.9,2.5Ghz的,16GB,R 3.3。 3,RStudio版本1.0.143
答
在这种情况下,您不需要使用funargs
。参数可以直接通过...
参数传递。所以我建议
acceptance_enve <- envelope(c, linearK, nsim=19,
fix.n = TRUE, r=seq(0,2,by=0.20))
请试试看看它是否加速执行。
+0
谢谢。这个没有funargs的声明是有效的,但是执行时间没有缩短。当我使用密集的lpp(在同一网络上有更多的点)时,我估计时间是12小时。请参阅编辑2。 – BKS
你说得对,这有点令人惊讶。需要多长时间运行'system.time({s
我在主要问题中添加了system.time详细信息。谢谢。希望它在诊断问题时增加一些信息。 – BKS