SHAPEFILE至R中的神经网络(shapefile to neural network in R

2019-09-21 04:18发布

我需要的道路类型的shape文件(ESRI)转换SpatialLinesDataFrame在R.神经网络

我不知道如何删除节点或形状的顶点。 确定节点之间的每个边的长度。 有了这些参数,我可以创建一个使用数据包(网络)网络。

摘要:在河中的igraph网络输入shape文件

感谢您从智利南部。

Answer 1:

这是一个尝试 -

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中的线被连接,虽然。 此外,它不会存储在这个例子中经/纬度,但投影坐标。



Answer 2:

该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)

rnSpatialLinesDataFrame对象首先被转换成一个列表对象,然后被转换成的igraph对象。



文章来源: shapefile to neural network in R