Como converter pontos long-lat em recursos simples (sfg) e depois colocá-los em uma coleção de recursos simples (sfc)?
Aqui está um MWE que não funciona, mas é o mais próximo que eu cheguei.
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)
Estou tentando aprender Recursos Simples (é por isso que não quero usar a biblioteca sp) e, posteriormente, preciso executar o st_buffer no sfc.
Talvez seja melhor criar o sfc diretamente, sem um sfg por ponto?
Uso data.table por motivos de velocidade (10.000 milhões de pontos que também são analisados sem aspectos geográficos).
Acho que preciso de um sfc de sfg-points, e não de um MULTIPOINT-sfg.
Respostas:
Você já tentou st_as_sf () que converte objeto (sp, dataframe, ...) em um objeto sf ?
[Atualização] Como comentado por cengel, seria importante acompanhar o rápido desenvolvimento deste pacote.
fonte
Error in st_sf(x, ..., agr = agr) : no simple features geometry column present