我可以用 sf 包从经纬度做一个空间点吗

Can I make a Spatial Point from lat long with sf package

我有一些经纬度数据。为了设置 CRS,我使用了 sf 包,但我需要“SpatialPoints”数据进行分析。如何制作“SpatialPoint”?

library(sp)
long <- c(133.2982, 132.6715,133.2375,133.3048,133.2594,133.2165)
lat <- c(35.5716,35.3551,35.5504,35.5707,35.5680,35.5708)
lonlat <-data.frame(cbind(long,lat))

lonlat_sf = st_as_sf(lonlat, coords=c("long", "lat"), crs="EPSG:4326")

is(lonlat_sf, "SpatialPoints")

FALSE

不需要使用 sf 作为 crs,而是可以使用 sp::CRS。从 SpatialPoints documentation 创建对象 class SpatialPoints 你可以使用

spts <- SpatialPoints(lonlat, proj4string = CRS("EPSG:4326"))

is(spts, "SpatialPoints")

#------
[1] TRUE