【问题标题】:rgdal package installationrgdal包安装
【发布时间】:2018-12-01 06:33:42
【问题描述】:

这里的问题不完全是如何通过 R 绘制地图,因为我已经找到了一个非常好的示例 here,而是如何使它工作。事实上,我无法加载库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

欢迎任何意见!

【问题讨论】:

  • 如果在类似debian的系统下,尝试安装libproj-dev包。
  • 你用什么命令来安装你的包?
  • 对不起,我是想安装 rgdal... 你用的是什么版本的 debian?
  • 你用过install.packages("rgdal")吗?
  • 要将答案标记为正确,您可以选中绿色标记。而且您不必对我发表的每条评论都投赞成票 :) 很高兴您解决了您的问题。

标签: r maps


【解决方案1】:

如果您查看package page on CRAN,您将看到以下内容:

系统要求:用于从源代码构建:GDAL >= 1.7.1 库 来自http://trac.osgeo.org/gdal/wiki/DownloadSource 和来自http://trac.osgeo.org/proj/ 的PROJ.4 (proj >= 4.4.9);由 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,但我在这里看到了version 2所以改变可能即将到来)
  • 如果你在未来并且没有看到 libgdal*1*-dev,可能是因为 GDAL 2 已经出并且包名已经删除了数字所以只是libgdal-dev。 Ubuntu 18.04 好像是这样的。
  • 我已经安装了所有依赖项,但我仍然得到了configure: error: proj_api.h not found in standard or given locations. proj_api.h 也在/usr/include 中找到。有什么想法吗?
【解决方案2】:

如果您使用带有Homebrew package manager 的OS X,并且通过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'))

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

注意:如果您在 gdal 中使用“--with-armadillo”作为选项,并且将犰狳从 6 升级到 7,则需要 brew upgraders。您将拥有在升级/重新安装 rgdal 之前重新编译 gdal。

【讨论】:

  • 谢谢。根据发布的其他解决方案,在几次失败后,您的方法在我的机器上有效。
  • 上帝派来的解决方案!我不知道我花了多少时间在这上面。哎呀
  • 为我工作。唯一的另一件事是我需要在安装 rgdal 包后重新启动 R。
【解决方案3】:

在使用 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 上也为我工作过。
  • 我在 Fedora 27 和 R 3.4.3 中,这个答案仍然有效!
【解决方案4】:

在 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

【讨论】:

    【解决方案5】:

    这是我在 Centos7 上所做的:

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

    那么简单

    install.packages("rgdal")

    工作正常,但根本不清楚。

    【讨论】:

    • 刚刚在新的 Centos 7 中测试过,我认为您需要 proj-devel 而不仅仅是 proj。否则,我们会收到configure: error: proj_api.h not found in standard or given locations。这适用于 rgdal 1.2-6。
    • 我需要版本 > 2.0 才能使用 sf 包。这些说明对我有用,尽管它们花了很长时间,请耐心等待。 gis.stackexchange.com/questions/263495/…
    • 同意@HenrikB,我需要proj-devel 来解决同样的错误。也可以使用sudo yum install ...
    • 这些天我对 SO 有一些编辑权限,所以我更新了这个答案来安装proj-devel(不仅仅是proj
    • 在 Fedora 中,这对我有用:dnf install gdal gdal-devel proj-devel proj-nad proj-epsg.
    【解决方案6】:

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

    【讨论】:

      【解决方案7】:

      这对我有用:

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

      【讨论】:

      • 这是在我所做的所有搜索中唯一对我有用的东西。
      【解决方案8】:

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

      【讨论】:

        【解决方案9】:

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

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

        然后简单地从 CRAN 安装 rgdal

        【讨论】:

        • 感谢您提供此信息。我能够让它在 Ubuntu 16.04 上运行
        • 那个最终使用 ubuntu 18.04 为我解决了。谢谢
        【解决方案10】:

        在我的系统上唯一有效的方法是按照here 的描述从源代码编译 PROJ4,然后将 rgdal 包安装为

         install.packages("rgdal")
        

        【讨论】:

          【解决方案11】:

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

          install.packages('rgdal',configure.args="--with-proj-include=/sw/proj/4.9.2/include --with-proj-lib=/sw/proj/4.9.2/lib")
          

          【讨论】:

            【解决方案12】:

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

            【讨论】:

              【解决方案13】:

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

              $sudo apt install libgdal-dev

              【讨论】:

                【解决方案14】:

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

                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
                

                然后在 R 中运行 install.packages("rgdal") 工作正常。

                【讨论】:

                  【解决方案15】:

                  无法正确安装 rgdal,我已经尝试了所有提到的和所有建议 R not finding package even after package installation

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

                  【讨论】:

                    【解决方案16】:

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

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

                    【讨论】:

                      【解决方案17】:

                      如果您使用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-06-20
                        • 2015-05-05
                        • 1970-01-01
                        • 2015-09-29
                        • 2014-04-25
                        • 2017-09-09
                        • 2019-10-20
                        • 1970-01-01
                        相关资源
                        最近更新 更多