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
创建一个点模式并访问这些属性(标记)来做非均匀的点强度。
谢谢
Adrian Baddeley最近发送了一些'linnet'代码给Roger Bivand,他将这个代码放在R-forge的'maptools'开发版本中:http://r-forge.r-project.org/R/?group_id = 943也许你可以使用它来以更简单快捷的方式导入linnet。我不确定如何保留属性并将它们放入'linfun'或'linim'中。我需要研究一下。 –
谢谢。我会通读您的参考。那么你能否告诉我如何使用spatstat在网络上产生非均匀的强度?我想从shapefile中引入至少2个属性。或者只是在列被丢弃之前可能有一个属性? – BKS
感谢您的参考。我发现从SpatialLines对象创建linnet的新功能,但正如你所说,我失去了属性:( – BKS