यहाँ sp vignette से एक विस्तारित उदाहरण दिया गया है, जो दर्शाता है कि एक साधारण 'data.frame' ऑब्जेक्ट से 'SpatialLinesDataFrame' कैसे बनाया जाता है। मैं 'नमूना' की लंबाई से बनाए गए कुछ सैंपल डेटा का उपयोग rgeos के माध्यम gLength
से करता हूं । ध्यान दें कि rownames
बनाया गया डेटासेट SpatialLinesDataFrame
पहले से परिभाषित लाइन आईडी (इस विशेष मामले में "ए" और "ए") के समान होना चाहिए।
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
? इनपुट के रूप में लाइनों को दो मापदंडों की आवश्यकता होती हैLines(slinelist, ID)