【问题标题】:rgdal / readOGR - unable to read shapefile from .ziprgdal / readOGR - 无法从 .zip 读取 shapefile
【发布时间】:2012-08-18 09:51:35
【问题描述】:

我正在尝试加载一个 zip 级别的 shapefile 来进行一些绘图,每个: https://github.com/hadley/ggplot2/wiki/plotting-polygon-shapefiles http://www.nceas.ucsb.edu/scicomp/usecases/ReadWriteESRIShapeFiles 等等

我的代码:

library(rgdal)
library(RColorBrewer)
library(ggplot2)
zipmap = readOGR(dsn="file.zip/", layer="myZIPmap")

我收到此错误:

Error in ogrInfo(dsn = dsn, layer = layer, input_field_name_encoding = input_field_name_encoding) : 
  Cannot open file

我检查了驱动程序,但老实说我无法解释输出:

ogrDrivers()
             name write
1      AeronavFAA FALSE
2          ARCGEN FALSE
3          AVCBin FALSE
4          AVCE00 FALSE
5             BNA  TRUE
6             CSV  TRUE
7             DGN  TRUE
8             DXF  TRUE
9          EDIGEO FALSE
10 ESRI Shapefile  TRUE
11     Geoconcept  TRUE
12        GeoJSON  TRUE
13       Geomedia FALSE
14         GeoRSS  TRUE
15            GML  TRUE
16            GMT  TRUE
17       GPSBabel  TRUE
18  GPSTrackMaker  TRUE
19            GPX  TRUE
20            HTF FALSE
21         Idrisi FALSE
22            KML  TRUE
23   MapInfo File  TRUE
24         Memory  TRUE
25   MSSQLSpatial  TRUE
26           ODBC  TRUE
27        OpenAir FALSE
28         PCIDSK  TRUE
29            PDS FALSE
30         PGDump  TRUE
31           PGeo FALSE
32            REC FALSE
33            S57  TRUE
34           SDTS FALSE
35       SEGUKOOA FALSE
36           SEGY FALSE
37            SUA FALSE
38            SVG FALSE
39          TIGER  TRUE
40        UK .NTF FALSE
41            VFK FALSE
42            VRT FALSE
43         XPlane FALSE

file.info 给出:

 file.info(path="K:/2012 - IPD - Policy Maps/fe_2007_us_zcta500.zip/")
                                                             size isdir mode               mtime               ctime
    K:/2012 - IPD - Policy Maps/fe_2007_us_zcta500.zip/ 661131516 FALSE  666 2012-08-22 14:54:53 2012-08-22 14:50:43
                                                                      atime exe
    K:/2012 - IPD - Policy Maps/fe_2007_us_zcta500.zip/ 2012-08-22 14:58:38  no

鉴于我尝试过的互联网搜索,看来我不是唯一遇到此问题的人,但我一直无法找到答案。我不确定问题是否与 .zip 文件夹中的 shapefile 有关。由于它是一台工作计算机,我必须等待 IT 安装 WinZip,以便我可以提取 shapefile 并在 .zip 文件夹之外尝试。希望那是明天。

此外,软件包帮助声明“请注意,数据源目录中的杂散文件(例如 *.dbf)可能会导致伴随 *.shp 丢失的异常错误。” .zip 文件夹包含以下内容:a.dbf、b.prj、c.shp、d.shp.xml、e.shx。

您能提供的任何帮助都会很棒! -亚历克斯

【问题讨论】:

  • 获取一个好的解压程序,比如7-zip,然后你也可以打开.rar、.gz、.tar等文件。

标签: r ggplot2 gis rgdal


【解决方案1】:

您应该能够在不需要外部程序的情况下使用unzip 解压缩文件。要读取带有readOGR 的 shapefile,dsn 是“解压缩”文件所在的目录名称,layer 是不带扩展名的 shape 文件的名称。在下面的示例中,将 myZIPmap 替换为适当的 shapefile 名称。

library(utils)
library(rgdal)

unzip("K:/2012 - IPD - Policy Maps/fe_2007_us_zcta500.zip")
zipmap <- readOGR(dsn = "K:/2012 - IPD - Policy Maps/fe_2007_us_zcta500", layer = "myZIPmap" )

【讨论】:

  • unzip() 像宣传的那样工作。在解压缩之前,我应该向任何阅读此内容的人提及 setwd()。我没有,解压缩到 C:\my 文档而不是我工作的 K:\ 驱动器。但是,现在我收到此错误:带有驱动程序的 OGR 数据源:ESRI Shapefile 源:“K:/2012 - IPD - Policy Maps/fe_2007_us_zcta500”,图层:“fe_2007_us_zcta500”,具有 33178 个功能和 4 个字段功能类型:wkbPolygon 与二维错误:无法分配大小为 307 Kb 的向量
  • 使用第二个(较小的)shapefile 进行了测试——这次只有 1 个州而不是整个美国,它按预期工作。对较大 shapefile 的内存分配的任何帮助仍然会有所帮助。
  • @Alex 我不确定 readOGR 的内存限制是多少,或者它为什么会抛出这个错误,但是读取 shapefile 的几个替代方法是 readShapePolymaptools 库或 @987654328 @在fastshp。我在尝试使用 readOGR 的 shape 文件时遇到了困难 - 也许某处存在拓扑错误?
猜你喜欢
  • 2017-04-08
  • 1970-01-01
  • 2020-10-27
  • 1970-01-01
  • 2018-05-11
  • 2014-05-10
  • 1970-01-01
  • 2021-05-22
  • 1970-01-01
相关资源
最近更新 更多