R 的 rgdal 包中缺少用于地理空间分析的投影文件

Missing projection file in R's rgdal package for geospatial analysis

我遇到了无法使用 rgdal 解决的问题,其中投影文件似乎是 丢失的。这是我得到的错误:

proj4string(d) <- CRS("+init=epsg:28992")

Error in CRS("+init=epsg:28992") : no system list, errno: 2

令人困惑,因为当我加载包时,它似乎成功了 自动检测 PROJ.4 文件:

> library(rgdal)
rgdal: version: 0.9-2, (SVN revision 526)
Geospatial Data Abstraction Library extensions to R successfully loaded
Loaded GDAL runtime: GDAL 1.11.2, released 2015/02/10
Path to GDAL shared files:
Loaded PROJ.4 runtime: Rel. 4.9.1, 04 March 2015, [PJ_VERSION: 491]
Path to PROJ.4 shared files: (autodetected)

但是当我这样做时,它 returns 为零:

.Call("PROJcopyEPSG", tempfile(), PACKAGE = "rgdal")

我通过谷歌搜索和搜索 SO 找到的唯一答案是 epsg 必须是小写的,这在我的代码中。

我正在使用 Mac 运行 Yosemite,使用 R 3.2.0,并在 RStudio 中工作 (版本 0.99.441)。我的会话信息中的其他软件包和版本:

rgeos_0.3-8          ggmap_2.4            ggplot2_1.0.1        rgdal_0.9-2
leaflet_0.0.15       tidyr_0.2.0          dplyr_0.4.1
UScensus2010blk_1.00 UScensus2010_0.11    foreign_0.8-63
maptools_0.8-36      sp_1.1-0

我很快 Google 发现了 this post 这表明这是一个 OS X 错误,其中包构建不正确。

在我的 Mac 系统上,我无法重现您的错误,因此我从 [=17= 安装了我的 rgdalrgeos 版本。 ] 也许您可以重新安装这些软件包的版本,看看是否可以解决问题?我也会同时更新sp

作为解决方法,您可以手动指定投影。投影的 proj 字符串可从以下位置获得:http://spatialreference.org/ref/epsg/amersfoort-rd-new/

因此,例如,而不是:

proj4string(d) <- CRS("+init=epsg:28992")

您可以指定:

proj4string(d) <- CRS("+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel +units=m +no_defs ")

也许不是答案,但值得一试吗?祝你好运。