R: Как создать многострочный sf из таблицы координат - PullRequest
0 голосов
/ 01 октября 2018

Рассмотрим следующий тиббл:

my_tible <- tibble("ID" = c("A","A","A","B","B", "C","C") , X=  c(647851,647875,647875,647766,647766,647826,647822) , 
               Y=c(6859335,6859318,6859319,6859028,6859030,6859314,6859316) )

Я хотел бы создать объект sf multilinestring на основе этого тиббла:

my_tible %>% 
   group_by(ID) %>% 
   summarise("geometry" = c(X,Y) %>% 
          as.numeric() %>% 
          matrix(ncol = 2, byrow = F) %>% 
          list() %>% 
          st_multilinestring()) %>% 
   st_sf() %>% 
   st_set_crs("+init=epsg:2154") %>% 
   st_transform(crs="+proj=longlat +datum=WGS84")

Я получил следующее сообщение после st_sf ():«Ошибка в st_sf (.): Столбец геометрии простых объектов отсутствует.»

Я хотел бы понять, что я делаю неправильно.

Решение:

my_tible %>% 
  st_as_sf( coords = c("X", "Y")) %>% 
  group_by(ID) %>% 
  summarize() %>%
  st_cast("MULTILINESTRING") %>% 
  st_set_crs("+init=epsg:2154") %>% 
  st_transform(crs="+proj=longlat +datum=WGS84")

1 Ответ

0 голосов
/ 03 октября 2018

решение:

my_tible %>% 
  st_as_sf( coords = c("X", "Y")) %>% 
  group_by(ID) %>% 
  summarize() %>%
  st_cast("MULTILINESTRING") %>% 
  st_set_crs("+init=epsg:2154") %>% 
  st_transform(crs="+proj=longlat +datum=WGS84")
...