2012-08-13 54 views
4

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

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

摘要:在R.

的IGRAPH网络输入shape文件谢谢你从智利南部。

+3

我想我们可以在这里改进措辞,但这是一个合理的问题,有点工作。看起来像一个超级用户说不是 – mdsumner 2012-08-14 00:34:21

+0

欢迎来到堆栈溢出!欢迎来到StackOverflow。也许如果你做了一个[可重现的例子](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)来演示你的问题/问题,人们会发现它更容易回答。 – Andrie 2012-08-14 05:04:01

+0

同意重新打开。我的猜测是“我有一个连接段的LINE shapefile,我想将它变成一个图形网络,以便我可以将它加载到一个igraph包对象中,并对其执行最短路径路由等。”答案然后涉及到从线条构建拓扑结构,并不是微不足道的... – Spacedman 2012-08-14 07:07:44

回答

1

这里是一个尝试 -

library(rgdal) 
library(igraph) 

dsn <- system.file("vectors", package = "rgdal")[1] 
sl <- readOGR(dsn=dsn, layer="kiritimati_primary_roads") 
lines2xcoord <- function(lns) sapply([email protected], function(l) [email protected][,1]) 
lines2ycoord <- function(lns) sapply([email protected], function(l) [email protected][,2]) 

x <- unlist(sapply([email protected], lines2xcoord)) 
y <- unlist(sapply([email protected], 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中要连接的行不正确。另外,在这个例子中,它不存储纬度/经度,而是存储投影坐标。