113

这里的问题不完全是如何通过 R 绘制地图,因为我已经在这里找到了一个非常好的示例,而是如何使其工作。事实上,我无法加载库rgdal

library(rgdal)
Error in library(rgdal) : there is no package called ‘rgdal’

但是,当我尝试手动安装上述软件包时,出现以下错误:

....
configure: error: proj_api.h not found in standard or given locations.
ERROR: configuration failed for package ‘rgdal’
* removing ‘/home/eualin/R/i686-pc-linux-gnu-library/2.15/rgdal’
Warning in install.packages : installation of package ‘/home/eualin/Downloads/rgdal_0.8-5.tar.gz’ had non-zero exit status

欢迎任何输入!

4

17 回答 17

132

如果您查看CRAN 上的包页面,您将看到以下内容:

SystemRequirements:用于从源构建:来自http://trac.osgeo.org/gdal/wiki/DownloadSource的 GDAL >= 1.7.1 库和来自http://trac.osgeo的 PROJ.4 (proj >= 4.4.9) .org/proj/;由 William Kyngesburye 在http://www.kyngchaos.com/构建的 GDAL OSX 框架可用于 OSX 上的源代码安装。

由于您似乎在 Linux 下,您总是从源代码构建包,因此您必须在系统上安装相应的库。如果您使用 Mint、Ubuntu 或其他 Debian 衍生产品,您可以:

$ sudo apt-get install libgdal1-dev libproj-dev

仍然在基于 Debian 的系统下,一个有用的技巧是安装apt-file软件包并运行:

$ sudo apt-file update

然后,当您收到以下错误时:

configure: error: proj_api.h not found in standard or given locations.

您可以使用以下命令查找必须安装哪个软件包才能获取丢失的文件:

$ apt-file search proj_api.h
libproj-dev: /usr/include/proj_api.h
于 2013-03-06T13:42:54.960 回答
42

如果你使用 OS X 和Homebrew 包管理器,并且通过homebrew-science tap安装了 R ,你可以通过首先安装 gdal 来安装 rgdal。

brew install gdal

你可能首先想在运行它之前列出可用的选项,以防你想要像 postgresql 支持这样的花哨的东西。查看可用选项类型

brew options gdal

然后看中你可以输入

brew install --with-postgresql gdal

过了一会儿你应该很好地使用依赖项,因为proj包括你需要的proj_api.h是依赖项!不幸的是,rgdal 现在仍然找不到 pro_api.h,因为它没有在 /usr/local/include 中查找。要在安装 rgdal 时解决此问题和其他可能的问题,请使用以下R命令安装 rgdal:

  > install.packages('rgdal', type = "source", configure.args=c('--with-proj-include=/usr/local/include','--with-proj-lib=/usr/local/lib'))

除了 brew 步骤之外,这应该类似于MacPorts所需的内容,并且您的库/头文件很可能分别位于“/opt/local/lib”和“/opt/local/include”下。

注意:如果您使用“--with-armadillo”作为 gdal 的选项来酿造升级程序,并将犰狳从 6 升级到 7。在升级/重新安装 rgdal 之前,您必须重新编译 gdal。

于 2014-11-10T03:09:19.297 回答
30

On a Fedora 21 system using R-3.2.0, the following worked:

yum install gdal.x86_64 gdal-devel.x86_64 gdal-libs.x86_64
yum install proj.x86_64 proj-devel.x86_64
yum install proj-epsg.x86_64 proj-nad.x86_64

Obviously this was the result of repeated tries to get:

install.packages("rgdal")

to work. You can probably do it all in one install.

于 2015-04-28T00:24:17.203 回答
16

在 ubuntustudio 14.04 上(所有 debian 发行版都一样):

sudo apt-get install libproj-dev libgdal-dev

然后我可以安装包 rgdal

R info:
R version 3.0.2 (2013-09-25) -- "Frisbee Sailing"

Linux info:
Linux francois-K53SV 3.13.0-34-lowlatency #60-Ubuntu SMP PREEMPT Wed Aug 13 16:15:18 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
于 2014-08-17T21:44:21.387 回答
15

这是我在 Centos7 上所做的:

yum install gdal gdal-devel
yum install proj-devel
yum install proj-nad
yum install proj-epsg

然后简单

install.packages("rgdal")

工作得很好,但根本不清楚。

于 2016-06-01T13:47:27.683 回答
5

在 OSX 中,我从http://www.kyngchaos.com/software/frameworks下载 proj,然后在 R 中运行以下命令。

install.packages('rgdal', type = "source", configure.args=c('--with-proj-include=/Library/Frameworks/PROJ.framework/Headers', '--with-proj-lib=/Library/Frameworks/PROJ.framework/unix/lib'))
于 2015-08-20T02:55:47.533 回答
4

这对我有用:

install.packages('rgdal',repos="http://www.stats.ox.ac.uk/pub/RWin")
于 2014-08-14T15:53:20.263 回答
4

对于 ubuntu 16.04 和 R 3.5.1,这工作得非常快:

sudo add-apt-repository -y ppa:ubuntugis/ubuntugis-unstable
sudo apt update
sudo apt install gdal-bin python-gdal python3-gdal libgdal1-dev

然后;

sudo apt-get install libudunits2-dev libgdal-dev libgeos-dev libproj-dev

最后在 CRAN;

install.packages("rgdal")
于 2018-12-14T11:55:37.513 回答
2

对我来说(Ubuntu 16.04,R 3.4.2),上述解决方案的混合工作:

sudo apt-get install libudunits2-dev libgdal-dev libgeos-dev libproj-dev

然后简单地rgdal从 CRAN 安装。

于 2018-01-26T10:18:54.427 回答
1

在我的系统上唯一有效的方法是从源代码编译 PROJ4,如此处所述然后将 rgdal 包安装为

 install.packages("rgdal")
于 2015-01-05T17:43:49.193 回答
1

要解决此问题,您需要install libgdal-dev:

$sudo apt install libgdal-dev

于 2019-04-04T17:16:10.370 回答
1

对于安装了多个版本的 proj(来自源)的多用户环境中的人,我使用的方法是:

install.packages('rgdal',configure.args="--with-proj-include=/sw/proj/4.9.2/include --with-proj-lib=/sw/proj/4.9.2/lib")
于 2016-08-23T04:28:22.940 回答
1

对于 Mac(OS.X 版本 10.12.6)用户,这对我有用。首先,转到命令行并使用 >> 安装gdalbrew install gdal 其次,到 Rstuduio(R 控制台) 并使用安装包install.packages("rgdal")

于 2017-09-25T19:09:48.177 回答
0

以上答案都不适合我(在 Linux Mint 17.1 上运行 R 3.5.1)。Ubuntu 存储库中的 GDAL 版本是 1.11.3,这会导致 rGDAL 安装失败。这是对我有用的解决方案(来自网站):

sudo apt-get install libexpat1-dev

下载并安装GDAL

wget http://download.osgeo.org/gdal/2.1.1/gdal-2.1.1.tar.gz
tar xvf gdal-2.1.1.tar.gz
cd gdal-2.1.1
./configure
sudo make
sudo make install

验证版本

gdal-config --version

然后我得到了这个错误:

** testing if installed package can be loaded
Error in dyn.load(file, DLLpath = DLLpath, ...) :
unable to load shared object '/usr/local/lib/R/site-library/rgdal/libs/rgdal.so':
libgdal.so.20: cannot open shared object file: No such file or directory
Error: loading failed
Execution halted
ERROR: loading failed

这是通过更新绑定修复的:

sudo ldconfig

然后install.packages("rgdal")在 R 中运行效果很好。

于 2019-06-03T20:18:46.487 回答
0

无法正确安装 rgdal,我已经尝试了这里提到的所有建议和所有建议 R 即使在安装包后也找不到包

library(rgdal)
rgdal: version: 1.4-3, (SVN revision 828)
Geospatial Data Abstraction Library extensions to R successfully loaded
Loaded GDAL runtime: GDAL 2.2.3, released 2017/11/20
Path to GDAL shared files: C:/Users/xxx/Documents/R/win-library/3.4/rgdal/gdal
GDAL binary built with GEOS: TRUE 
Loaded PROJ.4 runtime: Rel. 4.9.3, 15 August 2016, [PJ_VERSION: 493]
Path to PROJ.4 shared files: C:/Users/xxx/Documents/R/win-library/3.4/rgdal/proj
Linking to sp version: 1.3-1 
Warning message:
package ‘rgdal’ was built under R version 3.4.4

我已将我的 R 升级到 3.6.1

再试一次:

batch_gdal_translate(x, desc, outsuffix = "4.img", of = "HFA", co="TILED=YES")
NULL
Warning messages:
1: In gdal_setInstallation() :
No GDAL installation found. Please install 'gdal' before continuing:
    - www.gdal.org (no HDF4 support!)
    - www.trac.osgeo.org/osgeo4w/ (with HDF4 support RECOMMENDED)
    - www.fwtools.maptools.org (with HDF4 support)

2: In gdal_setInstallation() : If you think GDAL is installed, please run:
gdal_setInstallation(ignore.full_scan=FALSE)

我试图从 Rstudio 和命令行 R 3.6.1 GUI 运行它。

每次我都尝试过这个,我得到了正在安装的库的积极结果。

library(raster)
Loading required package: sp
library(rgdal)
rgdal: version: 1.4-4, (SVN revision 833)
Geospatial Data Abstraction Library extensions to R successfully loaded
Loaded GDAL runtime: GDAL 2.2.3, released 2017/11/20
Path to GDAL shared files: C:/Users/xxx/Documents/R/R-3.6.1/library/rgdal/gdal
GDAL binary built with GEOS: TRUE 
Loaded PROJ.4 runtime: Rel. 4.9.3, 15 August 2016, [PJ_VERSION: 493]
Path to PROJ.4 shared files: C:/Users/xxx/Documents/R/R-3.6.1/library/rgdal/proj
Linking to sp version: 1.3-1 
library(gdalUtils)
Registered S3 method overwritten by 'R.oo':
method        from       
throw.default R.methodsS3

我要读取的文件是 dted 文件?

x <- list.files(path = src, pattern = ".dt", full.names = TRUE)
length(x)

batch_gdal_translate(x, desc, outsuffix = "4.img", of = "HFA", co="TILED=YES")

我也用 GTIFF .tif 格式尝试了上述方法,但我得到了同样的错误。但我不是要读取 .hdf 文件,只是 .dt0、.dt1、.dt2

这将在我安装了 R 的另一台机器上工作,但是,我试图找出我在“这台”机器上的安装有什么问题。

于 2019-08-16T16:56:16.030 回答
0

如果您使用MacPorts它应该可以工作:

  1. 安装gdalproj6将作为依赖安装)

    sudo port install gdal
    
  2. 安装pkg-config

    sudo port install pkgconfig
    
  3. PKG_CONIFG_PATH变量设置为指向带有proj.pc文件的目录。就我而言,这是:

    export PKG_CONFIG_PATH=/opt/local/lib/proj6/lib/pkgconfig
    
于 2019-12-29T22:34:04.010 回答
0

在 CFLAGS 中显式添加包含路径对我有用

install.packages('rgdal', type = "source", configure.args=c('CFLAGS=-I/apps/proj4/5.2.0/include'))
于 2019-10-30T16:32:20.740 回答