R:readOGR()无法打开文件

时间:2017-05-15 10:11:44

标签: r rgdal

我从here下载了一个SHAPE文件。我加入了我的工作目录:

> list.files('/home/lucho/data/EnglandGIS/', pattern='\\.shp$')
[1] "england_gor_2011.shp"
> file.exists('/home/lucho/data/EnglandGIS/england_gor_2011.shp')
[1] TRUE

然而,我无法阅读它:

library("rgdal")
shape <- readOGR(dsn = path.expand("/home/lucho/data/EnglandGIS/england_gor_2011"), layer = "england_gor_2011")
Error in ogrInfo(dsn = dsn, layer = layer, encoding = encoding, use_iconv = use_iconv,  : 
  Cannot open file

only其他类似问题和接受的答案没有帮助。问题是什么?数据是否已损坏?我该怎么说? (如果您可以下载数据并亲自尝试,那可能是最好的方法)

我在Ubuntu 16.04中使用最新的R和最新的Rstudio。

3 个答案:

答案 0 :(得分:2)

要使用readOGR导入形状文件,您可以使用

readOGR(dsn = "/home/lucho/data/EnglandGIS/", layer = "england_gor_2011")

其中dsn是包含england_gor_2011.shp的文件夹(以及其他具有相同名称但扩展名不同的文件,例如england_gor_2011.dbf等),或者您可以指定形状的完整路径文件(包括扩展名):

readOGR("/home/lucho/data/EnglandGIS/england_gor_2011.shp")

据我记忆,第二种方法不适用于早期版本的rgdal

答案 1 :(得分:1)

不要忘记在readOGR命令中指定形状文件的扩展名:

library("rgdal")
shape <- readOGR(dsn = path.expand("england_gor_2011.shp"), 
                layer = "england_gor_2011")

#############
OGR data source with driver: ESRI Shapefile 
Source: "england_gor_2011.shp", layer: "england_gor_2011"
with 9 features
It has 3 fields

希望这可以帮到你。

答案 2 :(得分:1)

虽然这个问题似乎已经得到解答,但这里有一些关于如何读取shapefile的其他选项:

您还可以尝试shapefile包中的raster功能:

library(raster)
shp <- shapefile("/home/lucho/data/EnglandGIS/england_gor_2011.shp")

或来自新st_read包的函数sf(非常高效):

library(sf)
shp <- st_read(system.file("/home/lucho/data/EnglandGIS/england_gor_2011.shp", package="sf"))