ogrlistlayers - rgdal tutorial
Error al abrir el archivo SHP en R usando maptools readShapePoly (7)
Soy nuevo en R y estaba siguiendo el siguiente tutorial sobre el paquete ggplot2 que se encuentra here . Sin embargo, la función readShapePoly () produce un error cada vez que intento cargar el shapefile básico. He utilizado el siguiente código:
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")
lo que me pone:
Error in getinfo.shape(filen) : Error opening SHP file
He intentado omitir la extensión de archivo. También he intentado descargar otros archivos .shp que también producen el mismo error. También he intentado llamar a readShapePoly utilizando la ruta completa del archivo, que tampoco funciona. Estoy usando R studio (mac OSX), pero obtengo el mismo error al usar la ventana R estándar. He intentado las sugerencias sobre la amenaza cerrada anterior "Error al abrir el archivo SHP en Rstudio", pero no sirvió de nada.
Editar: el error fue con un archivo .dbf faltante. Gracias a @Spacedman por la corrección.
En caso de que esto ayude a alguien:
Tuve el mismo problema pero ninguna de las soluciones funcionó. Lo peor, lo mismo estaba sucediendo con un script que estoy 100% seguro de que estaba trabajando anteriormente.
Resulta que también podría ser que el shapefile se dañe. Aparentemente, esto puede suceder mientras se manipula el archivo (o eso dicen mis amigos geógrafos), por lo que la próxima vez que intente abrirlo no funcionará sin una razón aparente. Descargarlo nuevamente funcionó bien, pero me hace pensar en tener una copia de los más preciosos por si acaso.
Hay una solución más, pero no mucho automática, que me ayudó:
file<- readShapePoly(file.choose())
Luego simplemente encuentre su archivo * .shp y ejecútelo.
Incluya tres de esos archivos (extensiones: dbf, shp, shx) en la misma carpeta.
Me las arreglé para solucionar este problema con un shapefile que estaba tratando de leer escribiendo:
file<- readShapeSpatial("filename.shp")
En lugar de escribir la ruta completa del archivo.
Antes de eso, probé todas las sugerencias, incluso asegurándome de que los archivos .dbf
y .shx
también estuvieran presentes. No sé por qué este debería ser el caso.
Olvídate de ggplot
y gpcclib
. Se adhieren a maptools
y rgdal
que realmente proporcionan herramientas para leer un shapefile.
No solo digas que has intentado "esto y aquello", describe los detalles. Por ejemplo, ¿`file.exists (" london_sport.shp ") devuelve TRUE?
Además, ¿qué te hace pensar que readShapePoly()
es la función correcta? Solo sabe cómo leer shapefiles de polígonos, intente readShapePoints()
y readShapeLines()
también.
Si puede, intente readOGR
que puede leer un shapefile a pesar de muchas advertencias (incluido el tipo de geometría).
library(rgdal)
readOGR("~/Documents/R Projects/Intro to ggplot2", "london_sport")
Si puede informar sobre todas esas cosas, es probable que alguien pueda ayudar.
Tuve un problema similar, y fue porque había varios otros archivos junto con el archivo de forma ''* .shp'' en el paquete zip que descargué. Luego solo moví el archivo de forma a otra carpeta y no funcionó. Al incluir todos los archivos juntos, estaba bien y podía readShapeSpatial()
función readShapeSpatial()
bien.
Yo tuve el mismo problema. Descubrí que básicamente necesitas tres de esos archivos: .shp, .shx y .dbf