web-dev-qa-db-fra.com

Erreur lors de l'ouverture du fichier SHP dans R à l'aide de maptools readShapePoly

Je suis nouveau sur R et suivais le tutoriel suivant sur le paquet ggplot2 trouvé ici . Cependant, la fonction readShapePoly () renvoie une erreur chaque fois que j'essaie de charger le fichier de formes de base. J'ai utilisé le code suivant:

library("ggplot2")
library("gpclib")
library("maptools")
setwd("~/Documents/R Projects/Intro to ggplot2") 
#Intro to ggplot 2 contains the .shp file and associated data
sport <- readShapePoly("london_sport.shp")

ce qui me fait:

Error in getinfo.shape(filen) : Error opening SHP file

J'ai essayé d'omettre l'extension du fichier. J'ai également essayé de télécharger d'autres fichiers .shp qui génèrent également la même erreur. J'ai également essayé d'appeler readShapePoly en utilisant le chemin d'accès complet, ce qui ne fonctionne pas non plus. J'utilise R studio (mac OSX), mais j'obtiens la même erreur en utilisant la fenêtre standard de R. J'ai essayé les suggestions sur la précédente menace fermée "Erreur lors de l'ouverture du fichier SHP dans Rstudio", mais en vain.

Edit: l'erreur concernait un fichier .dbf manquant. Merci à @Spacedman pour le correctif.

17
Steve Senior

J'avais un problème similaire, car il y avait plusieurs autres fichiers avec le fichier de forme '* .shp' dans le package Zip que j'ai téléchargé. Ensuite, j'ai seulement déplacé le fichier de forme dans un autre dossier et cela n'a pas fonctionné. Lorsque tous les fichiers étaient inclus ensemble, tout allait bien et je pouvais readShapeSpatial() fonctionner correctement.

16
Aaron Lelevier

Oubliez ggplot et gpcclib. Tenez-vous en à maptools et rgdal qui fournissent en réalité des outils pour lire un fichier de formes. 

Ne dites pas simplement que vous avez essayé "ceci et cela", décrivez les détails. Par exemple, `file.exists (" london_sport.shp ") renvoie-t-il TRUE? 

Aussi, qu'est-ce qui vous fait penser que readShapePoly() est la bonne fonction? Il sait seulement lire les fichiers de formes de polygones, essayez aussi readShapePoints() et readShapeLines()

Si vous le pouvez, essayez readOGR qui peut lire un fichier de formes malgré de nombreuses mises en garde (y compris le type de géométrie). 

library(rgdal)
readOGR("~/Documents/R Projects/Intro to ggplot2", "london_sport")

Si vous pouvez signaler toutes ces choses, il est probable que quelqu'un puisse vous aider. 

6
mdsumner

Incluez trois de ces fichiers (extensions: dbf, shp, shx) dans le même dossier.

2
Andre Pereira

Il y a une autre solution automatique, mais pas beaucoup, qui m'a aidé:

file<- readShapePoly(file.choose())

Ensuite, trouvez votre fichier * .shp et lancez-le.

1
Dejan P.

Si cela aide quelqu'un:

J'ai eu le même problème mais aucune des solutions n'a fonctionné. Pire, la même chose se passait avec un script qui, à 100%, fonctionnait auparavant. 

Il se peut que le fichier de formes soit également endommagé. Apparemment, cela peut se produire lorsque le fichier est en cours de manipulation (ou alors, disons mes amis géographes), donc la prochaine fois que vous essayez de l'ouvrir, cela ne fonctionnera pas sans raison apparente. Le télécharger à nouveau a bien fonctionné, mais me laisse penser à avoir une copie des plus précieux au cas où. 

1
A.Mstt

J'ai eu le même problème. J'ai découvert que vous avez besoin de trois de ces fichiers: .shp, .shx et .dbf.

0
MSD

J'ai juste réussi à résoudre ce problème avec un fichier de formes que j'essayais de lire en tapant:

file<- readShapeSpatial("filename.shp")

au lieu de taper le chemin complet du fichier.

Avant cela, j’avais essayé toutes les suggestions, notamment en veillant à ce que les fichiers .dbf et .shx soient également présents. Je ne sais pas pourquoi cela devrait être le cas. 

0
Sree