2017-07-21 4 views

Répondre

2

Si elle est l'objet spatial enregistré en tant que fichier binaire spécifique de R de type « Interface sérialisation pour des objets uniques » (voir ?readRDS) probablement créé à un moment donné par saveRDS(), lisez votre fichier avec

library(rgdal) 
library(sp) 

x <- readRDS("path/to/the/rds_file.rds") 

et puis écrire avec:

rgdal::writeOGR(x, "path/to/destination", "filename", driver = "ESRI Shapefile") 

Assurez-vous pas à mettre « shp » à la fin de votre nom de fichier de sortie.

Vérifiez également et non pour placer un / à la fin du dossier de destination. Sinon, vous pourriez faire face l'erreur

Creation of output file failed

Lorsque l'erreur

Error: inherits(obj, "Spatial") is not TRUE

vous pourriez avoir oublié le x comme premier argument dans la fonction writeOGR.

+0

Je réussis à lire le fichier rds mais quand j'exécute le code de sortie, il y a le Error: inherits (obj, "Spatial") n'est pas VRAI. Pourquoi? –

+0

vous avez probablement oublié de mettre l'objet (dans mon exemple 'x') dans la fonction' writeOGR'. Voir aussi mon édition pour les bibliothèques nécessaires. – loki

+0

J'ai installé deux paquets et j'ai mis le x dans mes codes: '> library (rgdal)> bibliothèque (sp)> a = readRDS (' D: /data/chinamap/chinamap.rds ')> rgdal :: writeOGR (un , "D:/data/chinamap /", "Chine", pilote = "ESRI Shapefile") ', mais l'erreur que j'ai dite apparaît toujours. Je suis très confus. –