Comment puis-je reconvertir un objet sf en un SpatialPolygonsDataFrame?
J'utilise R 3.4.0 et SF version 0.4.1. La documentation sf mentionne une as_Spatialfonction, mais elle n'est pas disponible dans mon installation (pour une raison quelconque).
Comment puis-je reconvertir un objet sf en un SpatialPolygonsDataFrame?
J'utilise R 3.4.0 et SF version 0.4.1. La documentation sf mentionne une as_Spatialfonction, mais elle n'est pas disponible dans mon installation (pour une raison quelconque).
Réponses:
j'ai utilisé
as(nc, 'Spatial')
comme indiqué dans la partie 2 de la vignette d'Edzer Pebesma (faites défiler vers le bas de la page).
tmp <-as(nc, 'Spatial'):, tmpid <- sapply(slot(tmp, "polygons"), function(x) slot(x, "ID"))puisrow.names(tmp) <- tmpid
J'ai dû utiliser sf:::as_Spatial()comme solution de contournement.
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")par @mdsumner, je confirme qu'il produit SpatialPolygonsDataFrame, ce qui est mieux pour vos besoins. Il semble ne as_Spatial()prendre que SFC (c'est-à-dire la géométrie).