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.