Как добавить несколько длинных длин при преобразовании в CSV в формате Gejson в R

У меня есть широта / долгота определенной области. Как вставить несколько лат / лонов, соответствующих одной области в файле CSV? Я просто использую случайные числа прямо сейчас в моем файле CSV. Я приложил скриншот, чтобы показать мой файл CSV. Я не хочу одну широту и долготу, но несколько, соответствующих одной области. Я должен нанести их на карту позже

Это код, который я использую для преобразования моего CSV-файла в файл Geojson

library(geojsonio)
library(rgdal)
file_to_geojson(input = "FINAL DATA ENTRY.csv",method ="web" ) 

Файл geojson при создании дает координаты как это. Если вы видите выделенную красным цветом область в моем выходном файле geojson, который я конвертировал из CSV-файла, я хочу, чтобы геометрия была многоугольной или многоугольной, и она должна включать 100 координат, а не одну. Как я могу предоставить эти 100+ координат в CSV-файл? Я буду более ясен, если кто-то не сможет меня понять. Дайте мне знать. Проигнорируйте мой плохой английский, пожалуйста.

Добавлен мой CSV-файл.

1 ответ

Решение

Попробуй это:

С помощью sf-пакет, который позволяет объединить точки группы (например, состояния) в MULTIPOINT или же POLYGON, В вашем файле некоторые штаты имеют только одну точку, поэтому я могу преобразовать ее в MULTIPOINT,

А затем сохраните sf-класс как geojson.


library(geojsonio)
library(sf)
library(tidyverse)

data<- data[,c("State", "lat", "lon")]

sf_data <- st_as_sf(data, coords = c("lon", "lat"))

sf_data  %>%
  group_by(State) %>%
  summarise(geometry = st_combine(geometry)) %>%
  st_cast("POLYGON") -> res_sfdata


geojson_write(res_sfdata, file = "yourpath/res_sfdata.geojson")

Вы должны будете удалить другие колонки как бы то ни было. Потому что у вас есть разная информация в каждой точке, которую вы хотите объединить.

РЕДАКТИРОВАТЬ: Если вы хотите сгруппировать по нескольким столбцам:


data<- data[,c("State", "PC_Name", "lat", "lon")]

sf_data <- st_as_sf(data, coords = c("lon", "lat"))

sf_data  %>%
  group_by(State, PC_Name) %>%
  summarise(geometry = st_combine(geometry)) %>%
  st_cast("POLYGON") %>%
  group_by(State) %>%
  summarise(geometry = st_combine(geometry)) 
  st_cast("MULTIPOLYGON") -> res_sfdata
Другие вопросы по тегам