Come riconvertire un oggetto sf in SpatialPolygonsDataFrame?
Sto eseguendo R 3.4.0 e sf versione 0.4.1. La documentazione di sf menziona una as_Spatial
funzione, ma questa non è disponibile nella mia installazione (per qualche motivo).
Come riconvertire un oggetto sf in SpatialPolygonsDataFrame?
Sto eseguendo R 3.4.0 e sf versione 0.4.1. La documentazione di sf menziona una as_Spatial
funzione, ma questa non è disponibile nella mia installazione (per qualche motivo).
Risposte:
ero solito
as(nc, 'Spatial')
come indicato nella parte 2 della vignetta di Edzer Pebesma (scorrere fino alla fine della pagina).
tmp <-as(nc, 'Spatial')
allora tmpid <- sapply(slot(tmp, "polygons"), function(x) slot(x, "ID"))
poirow.names(tmp) <- tmpid
Ho dovuto usare sf:::as_Spatial()
come soluzione alternativa.
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")
da @mdsumner, confermo che produce SpatialPolygonsDataFrame, che è meglio per il vostro requisito. Sembra as_Spatial()
prendere solo sfc (cioè la geometria).