如何将 psp 对象列表转换为 linnet
how to convert list of psp objects to linnet
使用 spatstat 的 shapefiles vignette,我能够创建一个 psp 对象列表,这样 shapefile 的每个特征都是这个 psp 列表中的一个元素,其属性作为标记。具体来说,我在小插图中使用了第 3.2.4 节,如下所示
> x<- readShapeSpatial("includes/roadshapefile.shp")
> out <- lapply(x@lines, function(z) { lapply(z@Lines, as.psp) })
> dat <- x@data
> 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 对象以使每个对象成为 linnet,然后以某种方式将它组合成一个完整的网络? as.linnet
不会将此 psp 列表作为有效输入,因为它的 class 是一个普通列表。
我觉得我少了一小步。有人可以指导我吗?
一旦我有了红雀,我想使用 linfun
创建一个点模式并访问这些属性(标记)来做一个非均匀强度的点。
谢谢
这似乎已解决,在最新版本 1.37 中我可以保留属性。谢谢。
有没有办法将这些 roadlist
组合回去并再次创建 x。如果我们想在每一行中添加一些东西。主要是我问这个原因。
使用 spatstat 的 shapefiles vignette,我能够创建一个 psp 对象列表,这样 shapefile 的每个特征都是这个 psp 列表中的一个元素,其属性作为标记。具体来说,我在小插图中使用了第 3.2.4 节,如下所示
> x<- readShapeSpatial("includes/roadshapefile.shp")
> out <- lapply(x@lines, function(z) { lapply(z@Lines, as.psp) })
> dat <- x@data
> 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 对象以使每个对象成为 linnet,然后以某种方式将它组合成一个完整的网络? as.linnet
不会将此 psp 列表作为有效输入,因为它的 class 是一个普通列表。
我觉得我少了一小步。有人可以指导我吗?
一旦我有了红雀,我想使用 linfun
创建一个点模式并访问这些属性(标记)来做一个非均匀强度的点。
谢谢
这似乎已解决,在最新版本 1.37 中我可以保留属性。谢谢。
有没有办法将这些 roadlist
组合回去并再次创建 x。如果我们想在每一行中添加一些东西。主要是我问这个原因。