instalação do pacote rgdal


110

A questão aqui não é exatamente como plotar mapas por meio de R, como já encontrei um bom exemplo aqui , mas sim como fazê-lo funcionar. Na verdade, não consigo carregar a biblioteca rgdal:

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

No entanto, quando tento instalar o pacote acima manualmente, recebo o seguinte erro:

....
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

Qualquer entrada é bem-vinda!


14
Se estiver em um sistema semelhante ao debian, tente instalar o libproj-devpacote.
juba

1
Que comando você usou para instalar seu pacote?
juba

1
Desculpe, eu queria instalar o rgdal ... E qual versão do debian você usa?
juba

4
Você usou install.packages("rgdal")?
juba

2
Para marcar uma resposta como correta, você pode marcar a marca verde. E você não precisa votar positivamente em todos os comentários que eu fiz :) Que bom que você resolveu seu problema.
juba

Respostas:


129

Se você olhar a página do pacote no CRAN , verá o seguinte:

Requisitos do sistema: para compilar a partir da fonte: GDAL> = 1.7.1 biblioteca de http://trac.osgeo.org/gdal/wiki/DownloadSource e PROJ.4 (proj> = 4.4.9) de http: //trac.osgeo .org / proj / ; As estruturas GDAL OSX desenvolvidas por William Kyngesburye em http://www.kyngchaos.com/ podem ser usadas para instalações de origem no OSX.

Como você parece estar no Linux, você sempre constrói o pacote a partir do código-fonte, então você terá que instalar as bibliotecas correspondentes em seu sistema. Se você usa Mint, Ubuntu ou outro derivado do Debian, pode fazer:

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

Uma dica que pode ser útil, ainda em um sistema baseado em Debian, é instalar o apt-filepacote e executar:

$ sudo apt-file update

Então, quando você receber um erro como:

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

Você pode usar o seguinte comando para descobrir qual pacote deve instalar para obter o arquivo ausente:

$ apt-file search proj_api.h
libproj-dev: /usr/include/proj_api.h

Não funcionou muito bem para mim, executar o Linux Mint 17.1 Rebecca construído no Ubuntu 14.04 trusty - apt-filenão estava funcionando. Acabei removendo libproj-deve reinstalando devido a algum problema de corrupção e, em seguida libgdal1, instalando libgdal1-deve dependências (versão 1.11.2 no repositório oficial no momento em que este livro foi escrito, mas vi a versão 2 aqui, então uma mudança pode estar no horizonte)
MichaelChirico

4
Se você estiver no futuro e não estiver vendo libgdal * 1 * -dev, pode ser porque GDAL 2 foi lançado e o nome do pacote abandonou o número libgdal-dev. Ubuntu 18.04 parece ser assim.
Tom Saleeba

1
Eu instalei todas as dependências, mas ainda tenho o. configure: error: proj_api.h not found in standard or given locations.Também proj_api.hé encontrado no /usr/include. Qualquer ideia?
ismailsunni

41

Se você usa o OS X com o gerenciador de pacotes Homebrew e tem o R instalado por meio do homebrew-science tap , pode instalar o rgdal instalando primeiro o gdal.

brew install gdal

Você pode primeiro desejar listar as opções disponíveis antes de executá-lo, caso deseje algo sofisticado como suporte a postgresql. Para ver as opções disponíveis digite

brew options gdal

então, para ser fantasia, você pode digitar

brew install --with-postgresql gdal

depois de um tempo, você deve estar pronto para trabalhar com dependências, pois proj, incluindo o proj_api.h necessário, são dependências! Infelizmente, o rgdal ainda não encontrará pro_api.h agora, pois ele não está procurando em / usr / local / include. Para corrigir esta e outras possíveis doenças com a instalação do rgdal, use o seguinte comando R para instalar o rgdal:

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

Isso deve ser semelhante ao que você também precisa para MacPorts, com exceção das etapas de preparação, e suas bibliotecas / cabeçalhos estão provavelmente em "/ opt / local / lib" e "/ opt / local / include" respectivamente.

Nota: para preparar atualizadores se você estiver usando "--with-armadillo" como uma opção com gdal, e atualizou o tatu para 7 de 6. Você terá que recompilar o gdal antes de atualizar / reinstalar o rgdal.


obrigado. seu método funciona na minha máquina após algumas falhas de acordo com outra solução postada.
HappyCoding,

Deus enviou solução! Não sei quantas horas gastei nisso. Eeesh
josiekre

Funcionou para mim. Outra coisa é que eu precisei reiniciar o R ​​após instalar o rgdalpacote.
Stewart Macdonald

28

Em um sistema Fedora 21 usando R-3.2.0, o seguinte funcionou:

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

Obviamente, este foi o resultado de repetidas tentativas de obter:

install.packages("rgdal")

trabalhar. Você provavelmente pode fazer tudo em uma instalação.


Funcionou para mim no Centos também.
JaKu

Estou no Fedora 27 e R 3.4.3 e esta resposta ainda está funcionando!
StrayChild01

15

No ubuntustudio 14.04 (o mesmo para todas as distros debian):

sudo apt-get install libproj-dev libgdal-dev

Então eu poderia instalar o pacote 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

Aqui está o que eu fiz no Centos7:

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

Então simplesmente

install.packages("rgdal")

Funcionou bem, mas não ficou nada claro.


8
Acabei de testar em um Centos 7 fresco, acho que você precisa proj-devele não apenas proj. Caso contrário, estamos conseguindo configure: error: proj_api.h not found in standard or given locations. Isso é para rgdal 1.2-6.
HenrikB

1
Eu precisava da versão> 2.0 para usar o pacote sf. Essas instruções funcionaram para mim, embora tenham demorado muito, seja paciente. gis.stackexchange.com/questions/263495/…
Elin

1
concordo com @HenrikB, eu precisava proj-develpara o mesmo erro. também pode querer usarsudo yum install ...
Brian D

Atualmente, tenho algumas permissões de edição no SO, então atualizei esta resposta para instalar proj-devel(não apenas proj)
HenrikB

5

No OSX, faço download do proj de http://www.kyngchaos.com/software/frameworks e executo o seguinte comando em 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

Isso funcionou para mim:

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

Esta é a única coisa que funcionou para mim em todas as pesquisas que fiz.
podcastfan88

4

Para ubuntu 16.04 e R 3.5.1, isso funciona muito rápido:

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

Então;

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

Finalmente no CRAN;

install.packages("rgdal")

2

Para mim (Ubuntu 16.04, R 3.4.2), uma mistura das soluções acima funcionou:

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

Em seguida, basta instalar a rgdalpartir do CRAN.


Obrigado por fornecer isso. Consegui fazê-lo funcionar no Ubuntu 16.04
Gabriel Fair

Esse eventualmente funcionou para mim usando o Ubuntu 18.04. Obrigado
Joni Hoppen

1

A única coisa que funcionou no meu sistema foi compilar o PROJ4 do código-fonte conforme descrito aqui e, em seguida, instalar o pacote rgdal como

 install.packages("rgdal")

1

Para pessoas em ambientes multiusuário com várias versões do proj instaladas (da fonte), o método que usei foi:

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

1

Para usuários de Mac (OS.X Versão 10.12.6), isso funcionou para mim. Primeiro, vá para a linha de comando e instale o gdal usando >> brew install gdal Segundo, vá para Rstuduio (console R) e instale o pacote usandoinstall.packages("rgdal")


1

Para consertar isso, você precisa install libgdal-dev:

$ sudo apt install libgdal-dev


0

Nenhuma das respostas acima funcionou para mim (executando R 3.5.1 no Linux Mint 17.1). A versão GDAL nos repositórios do Ubuntu é 1.11.3, o que faz com que a instalação do rGDAL falhe. Aqui está a solução que funcionou para mim ( deste site):

sudo apt-get install libexpat1-dev

Baixe e instale o 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

Verificar versão

gdal-config --version

Então, recebi este erro:

** 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

Isso foi corrigido atualizando as ligações:

sudo ldconfig

Em seguida, executar install.packages("rgdal")em R funcionou bem.


0

Não foi possível fazer o rgdal instalar corretamente, tentei todas as sugestões mencionadas e todas aqui R não encontrando o pacote mesmo após a instalação do pacote

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

Eu atualizei meu R para 3.6.1

Tente novamente:

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)

Tentei executá-lo em Rstudio & command line R 3.6.1 GUI.

Todas as vezes que tentei isso, obtive resultados positivos para as bibliotecas que estão sendo instaladas.

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

os arquivos que estou tentando ler são arquivos 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")

Eu tentei o procedimento acima com o formato GTIFF .tif também e recebo o mesmo erro. Mas não estou tentando ler arquivos .hdf, apenas .dt0, .dt1, .dt2

isso funcionará em outra máquina em que tenho o R instalado, no entanto, estou tentando descobrir o que há de errado com a instalação que tenho "nesta" máquina.


0

Adicionar explicitamente o caminho de inclusão em CFLAGS funcionou para mim

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

0

Se você estiver usando MacPortsisso, deve funcionar:

  1. Instalar gdal( proj6será instalado como uma dependência)

    sudo port install gdal
  2. Instalar pkg-config

    sudo port install pkgconfig
  3. Defina a PKG_CONIFG_PATHvariável para apontar para um diretório com proj.pcarquivo. No meu caso foi:

    export PKG_CONFIG_PATH=/opt/local/lib/proj6/lib/pkgconfig
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.