Bagaimana saya bisa mengkonversi poin lon-lat ke fitur sederhana (sfg), dan kemudian memasukkannya ke dalam kumpulan fitur sederhana (sfc)?
Ini adalah MWE yang tidak berfungsi tetapi yang paling dekat yang saya dapatkan.
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)
Saya mencoba mempelajari Fitur Sederhana (itulah sebabnya saya tidak ingin menggunakan library sp), dan nanti perlu menjalankan st_buffer di sfc.
Mungkin lebih baik untuk membuat sfc secara langsung, tanpa sfg per poin?
Saya menggunakan data.tabel untuk alasan kecepatan (10.000-an ribu titik yang juga dianalisis tanpa aspek geografis).
Saya pikir saya memerlukan sfc-sfg-points, dan bukan MULTIPOINT-sfg.
Jawaban:
Sudahkah Anda mencoba st_as_sf () yang mengubah objek (sp, dataframe, ...) menjadi objek sf ?
[Perbarui] Seperti dikomentari oleh cengel, penting untuk mengikuti perkembangan cepat paket ini.
sumber
Error in st_sf(x, ..., agr = agr) : no simple features geometry column present