SpatialLinesDataFrame
R のニューラル ネットワークで道路タイプのシェープファイル (ESRI) を変換する必要があります。
シェイプのノードまたは頂点を削除する方法がわかりません。ノード間の各エッジの長さを決定します。これらのパラメータを使用して、パケット (ネットワーク) を使用してネットワークを作成できます。
概要: R で igraph ネットワークのシェープファイルを入力します。
チリ南部からありがとう。
SpatialLinesDataFrame
R のニューラル ネットワークで道路タイプのシェープファイル (ESRI) を変換する必要があります。
シェイプのノードまたは頂点を削除する方法がわかりません。ノード間の各エッジの長さを決定します。これらのパラメータを使用して、パケット (ネットワーク) を使用してネットワークを作成できます。
概要: R で igraph ネットワークのシェープファイルを入力します。
チリ南部からありがとう。
これが試してみます-
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です。ただし、シェープファイル内の行が接続されていると誤って想定しています。また、この例ではlat / lonは保存されませんが、投影された座標は保存されます。
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 オブジェクトに変換されるオブジェクトです。