¿Cómo puedo convertir los puntos lon-lat en características simples (sfg) y luego ponerlos en una colección de características simples (sfc)?
Aquí hay un MWE que no funciona, pero es el más cercano al que he llegado.
library(data.table)
library(sf)
# The DT data.table is the data I have (but 10,000s of rows, each row is a point)
DT <- data.table(
place=c("Finland", "Canada", "Tanzania", "Bolivia", "France"),
longitude=c(27.472918, -90.476303, 34.679950, -65.691146, 4.533465),
latitude=c(63.293001, 54.239631, -2.855123, -13.795272, 48.603949),
crs="+proj=longlat +datum=WGS84")
DT[, rowid:=1:.N]
# The following two rows do not work
DT[, place.sfg:=st_point(x=c(longitude, latitude), dim="XY"), by=rowid]
places.sfc <- st_sfc(DT[, place.sfg], crs=DT[, crs])
# This should result in five points, which it doesn't
plot(places.sfc)
Estoy tratando de aprender Características simples (por eso no quiero usar la biblioteca sp), y luego necesito ejecutar st_buffer en el sfc.
¿Quizás sea mejor crear el sfc directamente, sin un sfg por punto?
Utilizo data.table por razones de velocidad (10.000 de miles de puntos que también se analizan sin aspectos geográficos).
Creo que necesito un sfc de puntos sfg, y no un sfg MULTIPOINT.
Respuestas:
¿Has probado st_as_sf () que convierte el objeto (sp, dataframe, ...) en un objeto sf ?
[Actualización] Como comentó cengel, sería importante mantenerse al día con el rápido desarrollo de este paquete.
fuente
Error in st_sf(x, ..., agr = agr) : no simple features geometry column present