Подключение пространственных точек к SpatialLinesDataFrame в R - PullRequest
0 голосов
/ 13 июня 2019

У меня есть SpatialPointsDataFrame (RoadPoints), состоящий из почти 8000 точек вдоль одного шоссе с информацией о дороге и рейтингом, основанным на безопасности. Я пытаюсь соединить эти точки, чтобы сформировать отрезки длиной 90-100 м, сохраняя данные и рейтинг безопасности.

Сводка SpatialPointsDataFrame приведена ниже:

    Object of class SpatialPointsDataFrame
Coordinates:
        min       max
X 149.67783 151.19493
Y -37.38887 -33.88437
Is projected: FALSE 
proj4string : [+proj=longlat +ellps=GRS80 +no_defs]
Number of points: 8000
Data attributes:
    OBJECTID     
 120482 :   1    
 120483 :   1    
 120484 :   1    
 120485 :   1    
 120486 :   1    
 121066 :   1    
 (Other):8000    

   Latitude     
 Min.   :-37.39  
 1st Qu.:-36.22  
 Median :-35.02  
 Mean   :-35.29  
 3rd Qu.:-34.43  
 Max.   :-33.87  



   Longitude   
 1st Qu.:150.1 
 Median :150.6 
 Mean   :150.5 
 3rd Qu.:150.9 
 Max.   :151.2 

Я пробовал следующее:

x <- lapply(split(RoadPoints, RoadPoints$OBJECTID), function(x) Lines(list(Line(coordinates(x))), x$OBJECTID[1L]))


lines <- SpatialLines(x)

data <- data.frame(RoadPoints$OBJECTID, RoadPoints$Longitude, RoadPoints$Latitude,
                   RoadPoints$Vehicle_SR)
colnames(data) <- c("OBJECTID", "Longitude", "Latitude", "Vehicle_SR")
rownames(data) <- data$RoadPoints.OBJECTID
rownames(data)

RoadPoints_Connected <- SpatialLinesDataFrame(lines, data)

и когда я пытаюсь использовать tmap для отображения результата, я получаю такой результат:

Error in CPL_geos_is_empty(st_geometry(x)) : 
  Evaluation error: IllegalArgumentException: point array must contain 0 or >1 elements.

На самом деле я не знаю другого способа соединить эти точки. Любые предложения, пожалуйста?

...