Search code examples
rspatialr-sf

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


I have some lat long data. To set CRS, I used sf package, but I need "SpatialPoints" data for analyses. How can I make a "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

Solution

  • No need to use sf for the crs, instead you can use sp::CRS. From the SpatialPoints documentation to create an object with class SpatialPoints you can use

    spts <- SpatialPoints(lonlat, proj4string = CRS("EPSG:4326"))
    
    is(spts, "SpatialPoints")
    
    #------
    [1] TRUE