rgdal软件包安装


110

这里的问题不完全是如何通过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

任何输入欢迎!


14
如果在类似debian的系统下,请尝试安装该libproj-dev软件包。
juba 2013年

1
您使用什么命令来安装软件包?
juba 2013年

1
抱歉,我要安装rgdal ...您使用什么版本的debian?
juba 2013年

4
你用了install.packages("rgdal")吗?
juba 2013年

2
要将答案标记为正确,可以选中绿色标记。而且您不必批评我的每条评论:)很高兴您解决了您的问题。
juba 2013年

Answers:


129

如果您在CRAN上查看软件包页面,则会看到以下内容:

系统要求:用于从源构建:来自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

对我来说不是很好,运行可信任的基于Ubuntu 14.04的Linux Mint 17.1 Rebecca apt-file不能正常工作。我结束了删除libproj-dev并重新安装,由于一些腐败问题和然后安装libgdal1libgdal1-dev并且依赖(版本1.11.2在官方库为写这篇文章,但我看到的版本2这里这么一个变化可能是在地平线上)
MichaelChirico

4
如果您将来不会看到libgdal * 1 * -dev,则可能是因为GDAL 2退出了,并且软件包名称已删除了该数字,所以libgdal-dev。Ubuntu 18.04看起来像这样。
汤姆·萨利巴

1
我已经安装了所有的依赖关系,但我还是得到了configure: error: proj_api.h not found in standard or given locations.proj_api.h还的发现/usr/include。任何想法?
ismailsunni

41

如果将OS X与Homebrew软件包管理器一起使用,并且通过homebrew-science tap安装了R ,则可以先安装gdal来安装rgdal。

brew install gdal

您可能首先要列出可供选择的方案运行在此情况下,你想要的东西之前看中如PostgreSQL的支持。要查看可用的选项类型

brew options gdal

然后你可以输入

brew install --with-postgresql gdal

一段时间后,您应该很好地使用依赖项,因为包括所需的proj_api.h的proj是依赖项!不幸的是,由于rgdal不在/ usr / local / include中,因此现在仍然找不到pro_api.h。要解决rgdal安装中的此问题和其他可能的问题,请使用以下R命令安装rgdal:

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

除了冲煮步骤外,这应该与MacPorts所需的类似,并且库/标头很可能分别位于“ / opt / local / lib”和“ / opt / local / include”下。

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


谢谢。根据发布的其他解决方案,您的方法在几次失败后在我的机器上运行。
2015年

上帝送解决方案!我不知道我花了多少小时。Eeesh
josiekre

为我工作。除此之外,我还需要在安装rgdal软件包后重新启动R。
斯图尔特·麦克唐纳

28

在使用R-3.2.0的Fedora 21系统上,以下工作:

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

显然,这是反复尝试获得的结果:

install.packages("rgdal")

上班。您可能一次安装即可完成所有操作。


也为我在Centos上工作。
JaKu

我在Fedora 27和R 3.4.3中,此答案仍然有效!
StrayChild01

15

在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

13

这是我在Centos7上所做的事情:

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

然后简单地

install.packages("rgdal")

工作正常,但还不清楚。


8
刚刚在新的Centos 7中进行了测试,我认为您需要proj-devel而不仅仅是proj。否则,我们会得到configure: error: proj_api.h not found in standard or given locations。这是针对rgdal 1.2-6的。
HenrikB

1
我需要版本> 2.0才能使用sf软件包。这些说明对我有用,尽管花了很长时间,但要耐心等待。gis.stackexchange.com/questions/263495/…–
Elin

1
同意@HenrikB,我需要proj-devel同样的错误。也可能想使用sudo yum install ...
Brian D

这些天,我对SO具有一些编辑权限,因此我更新了此答案以进行安装proj-devel(而不仅仅是proj
HenrikB

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'))

4

这对我有用:

install.packages('rgdal',repos="http://www.stats.ox.ac.uk/pub/RWin")

这是我所做的所有搜索中唯一对我有用的东西。
podcastfan88 2014年

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")

2

对我而言(Ubuntu 16.04,R 3.4.2),上述解决方案的混合物有效:

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

然后只需rgdal从CRAN 安装即可。


感谢您提供此信息。我能够使它适用于Ubuntu 16.04
Gabriel Fair

那个最终使用ubuntu 18.04为我解决了。谢谢
乔尼·霍本

1

在我的系统上唯一起作用的是按此处所述从源代码编译PROJ4 ,然后将rgdal软件包安装为

 install.packages("rgdal")

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")

1

对于Mac(OS.X Version10.12.6)用户,这对我有用。首先,转到命令行并使用>> 安装gdalbrew install gdal ,然后转到Rstuduio(R console)并使用安装软件包install.packages("rgdal")


1

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

$ sudo apt install libgdal-dev


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中运行正常。


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的另一台计算机上工作,但是,我试图找出在“此”计算机上的安装有什么问题。


0

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

install.packages('rgdal', type = "source", configure.args=c('CFLAGS=-I/apps/proj4/5.2.0/include'))

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.