Berikut adalah contoh lanjutan dari sketsa sp yang menunjukkan cara membuat 'SpatialLinesDataFrame' dari objek 'data.frame' biasa. Saya menggunakan beberapa data sampel yang dibuat dari panjang 'SpatialLines' tunggal melalui gLength
dari rgeos . Perhatikan bahwa rownames
set data yang dibuat yang diteruskan SpatialLinesDataFrame
harus identik dengan ID garis yang didefinisikan sebelumnya (dalam kasus khusus ini "a" dan "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
? Baris membutuhkan dua parameter sebagai inputLines(slinelist, ID)