我需要的道路类型的shape文件(ESRI)转换SpatialLinesDataFrame
在R.神经网络
我不知道如何删除节点或形状的顶点。 确定节点之间的每个边的长度。 有了这些参数,我可以创建一个使用数据包(网络)网络。
摘要:在河中的igraph网络输入shape文件
感谢您从智利南部。
我需要的道路类型的shape文件(ESRI)转换SpatialLinesDataFrame
在R.神经网络
我不知道如何删除节点或形状的顶点。 确定节点之间的每个边的长度。 有了这些参数,我可以创建一个使用数据包(网络)网络。
摘要:在河中的igraph网络输入shape文件
感谢您从智利南部。
这是一个尝试 -
library(rgdal)
library(igraph)
dsn <- system.file("vectors", package = "rgdal")[1]
sl <- readOGR(dsn=dsn, layer="kiritimati_primary_roads")
lines2xcoord <- function(lns) sapply(lns@Lines, function(l) l@coords[,1])
lines2ycoord <- function(lns) sapply(lns@Lines, function(l) l@coords[,2])
x <- unlist(sapply(sl@lines, lines2xcoord))
y <- unlist(sapply(sl@lines, lines2ycoord))
g <- graph.empty(n=length(x), directed=FALSE)
V(g)$lat <- x
V(g)$lng <- y
e <- c(t(matrix(c(head(V(g),-1),tail(V(g),-1)), ncol=2)))
add.edges(g,e)
现在g
与线的的igraph。 它假定不正确地在shapefile中的线被连接,虽然。 此外,它不会存储在这个例子中经/纬度,但投影坐标。
该shp2graph包可以转换SpatialLinesDataFrame
物体进入的igraph对象。 看一看在nel2igraph
功能。 下面是从帮助文件中取出的一个例子:
data(ORN)
rtNEL<-readshpnw(rn, ELComputed=TRUE)
#Add the edge length as the weight for graph
igr<-nel2igraph(rtNEL[[2]],rtNEL[[3]],weight=rtNEL[[4]])
plot(igr, vertex.label=NA, vertex.size=2,vertex.size2=2)
#plot(rn)
rn
是SpatialLinesDataFrame
对象首先被转换成一个列表对象,然后被转换成的igraph对象。