Ich möchte mehrere Linien aus bestimmten Punkten als erstellen sf objects
.
Wenn ich eine Reihe von Punkten als habe
library(sf)
pts <- st_multipoint(matrix(c(10, 10, 15, 20, 30, 30), nrow = 3, byrow = TRUE), dim = "XY")
und ich benutze st_cast
, um Linien von ihnen zu erstellen
lines <- st_cast(pts, "MULTILINESTRING")
Ich werde immer eine sf object
mit mehreren Segmenten bekommen, aber was ich bekommen möchte, sind mehrere Zeilen (zwei in diesem Beispiel).
Antworten:
Ich denke, dass das
sf
Paket zuerst wissen muss, wie Sie die Linien aus Ihren Punkten erstellen möchten. Ich meine, welches PaarPOINT
macht jedenLINESTRING
. In meinem Beispiel wurde das innerhalb derlapply
Funktion definiert . Folgen Sie dem reproduzierbaren und kommentierten Code unten, hoffentlich hilft das:quelle
sf object
( Gefällt mirmatrix(c(10, 10, 30, 30, 15, 20), nrow = 3, byrow = TRUE)
) gibt, wird eine Linie erstellt, die in diesem Fall den unteren linken mit dem oberen rechten Punkt verbindet. user30184 hat dies in seinem obigen Kommentar erwähnt. Gibt es eine Möglichkeit, die Punkte nach minimalem Abstand oder ähnlichem zu sortieren? Vielen Dank!Ich habe eine Lösung gefunden! Für alle anderen, die ebenfalls nach einer Antwort suchen, wie ich sie gelöst habe:
Trotzdem nochmals vielen Dank für Ihre Hilfe!
quelle