Jak przekonwertować obiekt sf z powrotem na SpatialPolygonsDataFrame?
Korzystam z wersji R 3.4.0 i sf w wersji 0.4.1. Dokumentacja sf wspomina o as_Spatial
funkcji, ale nie jest dostępna w mojej instalacji (z jakiegoś powodu).
Jak przekonwertować obiekt sf z powrotem na SpatialPolygonsDataFrame?
Korzystam z wersji R 3.4.0 i sf w wersji 0.4.1. Dokumentacja sf wspomina o as_Spatial
funkcji, ale nie jest dostępna w mojej instalacji (z jakiegoś powodu).
Odpowiedzi:
użyłem
as(nc, 'Spatial')
jako część 2 wskazanej przez Edzera Pebesma winiety (Przewiń na dół strony).
tmp <-as(nc, 'Spatial')
a tmpid <- sapply(slot(tmp, "polygons"), function(x) slot(x, "ID"))
potemrow.names(tmp) <- tmpid
Musiałem użyć sf:::as_Spatial()
jako obejścia.
library(sf)
nc <- st_read(system.file("shape/nc.shp", package="sf"))
# sf -> sp
nc_sp <- as_Spatial(nc$geom) # Error: could not find function "as_Spatial"
nc_sp <- sf:::as_Spatial(nc$geom) # This works
library(sp)
plot(nc_sp)
as(sf, "Spatial")
przez @mdsumner, potwierdzam, że produkuje SpatialPolygonsDataFrame, co jest lepsze dla twoich wymagań. Wygląda na as_Spatial()
to, że zajmuje tylko sfc (tj. Geometrię).