2017-01-02 66 views
0

使用spatstat的shape文件vignette,我可以创建一个psp对象列表,这样shapefile的每个特征都是这个psp列表中的一个元素,其属性是标记。具体而言,我在小品中使用3.2.4节如下如何将psp对象列表转换为linnet

> x<- readShapeSpatial("includes/roadshapefile.shp") 
> out <- lapply([email protected], function(z) { lapply([email protected], as.psp) }) 
> dat <- [email protected] 
> for(i in seq(nrow(dat))) 
+ out[[i]] <- lapply(out[[i]], "marks<-", value=dat[i, , drop=FALSE]) 
> roadlist <- do.call("c", out) 

现在我想从PSP的对象这个列表创建一个全网linnet。是否有一个直接的函数,或者是否需要遍历每个psp对象以使每个psp对象成为一个linnet,然后以某种方式将它组合到一个完整的网络中? as.linnet不会将此psp列表作为有效输入,因为它的类是普通列表。

我觉得我错过了一小步。请有人引导我。

一旦我有了一个linnet,我想使用linfun创建一个点模式并访问这些属性(标记)来做非均匀的点强度。

谢谢

+0

Adrian Baddeley最近发送了一些'linnet'代码给Roger Bivand,他将这个代码放在R-forge的'maptools'开发版本中:http://r-forge.r-project.org/R/?group_id = 943也许你可以使用它来以更简单快捷的方式导入linnet。我不确定如何保留属性并将它们放入'linfun'或'linim'中。我需要研究一下。 –

+0

谢谢。我会通读您的参考。那么你能否告诉我如何使用spatstat在网络上产生非均匀的强度?我想从shapefile中引入至少2个属性。或者只是在列被丢弃之前可能有一个属性? – BKS

+0

感谢您的参考。我发现从SpatialLines对象创建linnet的新功能,但正如你所说,我失去了属性:( – BKS

回答

0

这似乎解决了,在最新版本1.37我能够保留属性。谢谢。

相关问题