我正在尝试在R中打开shapefile,但是我收到以下错误消息:
Error in getinfo.shape(filen) : Error opening SHP file
我已检查过其他响应,并且通过确保.dbf和.shx文件位于同一文件夹中,似乎已解决了大多数问题。我把它们都放在同一个文件夹中(以及其他一些扩展)但我仍然收到错误消息。我在Mac上工作。 这是我的代码:
getinfo.shape("/Users/Suz/Desktop/DWH satellite maps/20100517_Composite.shp")
我在没有.shp
扩展名的情况下尝试了它,并使用其他命令,例如readShapePoints
等。到目前为止,没有任何工作。请帮助,我是R的新手并制作地图,经过广泛的谷歌搜索和论坛阅读后,我仍然被卡住了。
答案 0 :(得分:1)
我遇到了同样的问题。通常带有SHP文件的其他文件。如果它们丢失了,则无法加载文件。
所以搜索是否有任何其他文件分机。与" 20100517_Composite"在源头你得到了你的文件。
还没有发表评论,但如果这是问题,我希望人们节省时间。
答案 1 :(得分:0)
您可以尝试getinfo.shape(file.choose())
通过弹出窗口选择文件。如果这样可行则可能是输入字符串的问题。
注意:我在linux上,但我认为file.choose()
适用于mac。
答案 2 :(得分:0)
在遇到同样的问题之后,我做了一些挖掘,找到了一个很好的线程[这里]。1 事实证明,在检查list.files()命令后发现我的文件不在那里,并且 即使我在原始代码中包含了文件路径,它仍然会产生问题中显示的错误。然后我将所有文件移动到工作目录中,然后下面的命令工作。
readShapeSpatial()
同样简单地改变wd也会有效。
setwd("directory_path")
我想我会把它放在@jbaums建议的地方,因为它可以节省我一些时间来解决这个问题。
答案 3 :(得分:0)
在删除.shp
扩展程序之前,我遇到了同样的问题。
所以而不是
readShapeSpatial("/Users/Suz/Desktop/DWH satellite maps/20100517_Composite.shp")
跟着
readShapeSpatial("/Users/Suz/Desktop/DWH satellite maps/20100517_Composite")
如果您拥有工作目录中的所有文件,它应该像魅力一样。
答案 4 :(得分:0)
在R中读取shapefile的简便方法是
(获得Spatial *)对象
library(raster)
x <- shapefile("/Users/Suz/Desktop/DWH satellite maps/20100517_Composite.shp")
或(获取sf对象)
library(sf)
st_read("/Users/Suz/Desktop/DWH satellite maps/20100517_Composite.shp")
(但是不使用已弃用的(不完整和过时的)函数readShapeSpatial
)
行动中:
library(raster)
library(sf)
f <- system.file("external/lux.shp", package="raster")
s1 <- shapefile(f)
s2 <- st_read(f)
如果这不起作用,您需要检查您的文件是否存在:
file.exists(f)
要获取目录中的shapefile列表,可以执行
path <- "c:/temp" # change with your directory name
ff <- list.files(path, pattern='\\.shp$', full.names=TRUE)
答案 5 :(得分:0)
这仍然是一个问题。我更直接地解决了使用shapefile
调用file.choose()
并手动选择文件的问题。希望这对任何人都有帮助。
library (rgdal)
a = readOGR (file.choose()) #then selecting the shape file manually
答案 6 :(得分:-1)
提出这个问题的人和这个问题的人:readOGR() cannot open file都在使用来自naturalearthdata.com的文件。我发布这个答案是因为有很多人使用该网站来获取基础层数据。至少我下载的两个层都有点古怪。当使用getinfo.shape在r中查询时,shapefile显示正常,但readOGR失败。以下步骤适用于我,但需要访问ESRI软件。
在ArcMap中打开文件。他们开了没有问题。
将shapefile导出到地理数据库图层。
返回r,从地理数据库导入图层。这里有说明:https://gis.stackexchange.com/questions/151613/how-to-read-feature-class-in-file-geodatabase-using-r
之后导入的空间数据在r。
中正常工作