Hier ist ein erweitertes Beispiel aus der sp- Vignette , das zeigt, wie ein 'SpatialLinesDataFrame' aus einem normalen 'data.frame'-Objekt erstellt wird. Ich verwende einige Beispieldaten, die aus den Längen der einzelnen 'SpatialLines' über gLength
von rgeos erstellt wurden . Beachten Sie, dass der rownames
des erstellten Datensatzes, an den weitergegeben wird SpatialLinesDataFrame
, mit den zuvor definierten Zeilen-IDs identisch sein muss (in diesem speziellen Fall "a" und "b").
library(sp)
## from the sp vignette:
l1 <- cbind(c(1, 2, 3), c(3, 2, 2))
l2 <- cbind(c(1, 2, 3), c(1, 1.5, 1))
Sl1 <- Line(l1)
Sl2 <- Line(l2)
S1 <- Lines(list(Sl1), ID = "a")
S2 <- Lines(list(Sl2), ID = "b")
Sl <- SpatialLines(list(S1, S2))
## sample data: line lengths
library(rgeos)
df <- data.frame(len = sapply(1:length(Sl), function(i) gLength(Sl[i, ])))
rownames(df) <- sapply(1:length(Sl), function(i) Sl@lines[[i]]@ID)
## SpatialLines to SpatialLinesDataFrame
Sldf <- SpatialLinesDataFrame(Sl, data = df)
plot(Sldf, col = c("red", "blue"))
text(labels = paste0("length = ", round(Sldf@data$len, 2)),
x = gCentroid(Sldf, byid = TRUE)$x,
y = gCentroid(Sldf, byid = TRUE)$y)
?Lines
? Linien benötigen zwei Parameter als EingabeLines(slinelist, ID)