2012-08-13 52 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中要連接的行不正確。另外,在這個例子中,它不存儲緯度/經度,而是存儲投影座標。