installazione del pacchetto rgdal


110

Il problema qui non è esattamente come tracciare mappe attraverso R, poiché ho già trovato un bell'esempio qui , ma piuttosto come farlo funzionare. In effetti, non riesco a caricare la libreria rgdal:

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

Tuttavia, quando provo a installare manualmente il pacchetto sopra, ottengo il seguente errore:

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

Qualsiasi input benvenuto!


14
Se si utilizza un sistema simile a Debian, provare a installare il libproj-devpacchetto.
juba

1
Quale comando hai usato per installare il tuo pacchetto?
juba

1
Scusa, volevo installare rgdal ... E quale versione di Debian usi?
juba

4
Hai usato install.packages("rgdal")?
juba

2
Per contrassegnare una risposta come corretta, puoi controllare il segno verde. E non devi votare ogni commento che ho fatto :) Sono contento che tu abbia risolto il tuo problema.
juba

Risposte:


129

Se guardi la pagina del pacchetto su CRAN , vedrai quanto segue:

Requisiti di sistema: per la compilazione dalla sorgente: GDAL> = 1.7.1 libreria da http://trac.osgeo.org/gdal/wiki/DownloadSource e PROJ.4 (proj> = 4.4.9) da http: //trac.osgeo .org / proj / ; I framework GDAL OSX costruiti da William Kyngesburye su http://www.kyngchaos.com/ possono essere utilizzati per le installazioni dei sorgenti su OSX.

Dato che sembri essere sotto Linux, costruisci sempre il pacchetto dai sorgenti, quindi dovrai installare le librerie corrispondenti sul tuo sistema. Se sei sotto Mint, Ubuntu o un altro derivato Debian, puoi fare:

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

Un suggerimento che può essere utile, sempre con un sistema basato su Debian, è installare il apt-filepacchetto ed eseguire:

$ sudo apt-file update

Quindi, quando ricevi un errore come:

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

È possibile utilizzare il seguente comando per trovare il pacchetto da installare per ottenere il file mancante:

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

Non funzionava per me, eseguire Linux Mint 17.1 Rebecca basato su Ubuntu 14.04 fidato - apt-filenon funzionava. Ho finito per la rimozione libproj-deve la reinstallazione di esso a causa di qualche problema di corruzione e quindi l'installazione libgdal1, libgdal1-deve le dipendenze (versione 1.11.2 nel repository ufficiale partire da questa scrittura, ma ho visto la versione 2 qui in modo un cambiamento possono essere all'orizzonte)
MichaelChirico

4
Se sei in futuro e non vedi libgdal * 1 * -dev, potrebbe essere perché GDAL 2 è uscito e il nome del pacchetto ha lasciato cadere il numero così giusto libgdal-dev. Ubuntu 18.04 sembra essere così.
Tom Saleeba

1
Ho installato tutte le dipendenze, ma ho ancora il configure: error: proj_api.h not found in standard or given locations.The si proj_api.htrova anche in /usr/include. Qualche idea?
ismailsunni

41

Se usi OS X con il gestore di pacchetti Homebrew e hai installato R tramite homebrew-science tap , puoi installare rgdal installando prima gdal.

brew install gdal

Potresti prima voler elencare le opzioni disponibili prima di eseguirlo nel caso in cui desideri qualcosa di stravagante come il supporto postgresql. Per vedere il tipo di opzioni disponibili

brew options gdal

quindi per essere fantasioso puoi digitare

brew install --with-postgresql gdal

dopo un po 'dovresti essere bravo con le dipendenze, poiché proj che include il tuo necessario proj_api.h sono dipendenze! Sfortunatamente, rgdal non troverà ancora pro_api.h in questo momento poiché non sta cercando in / usr / local / include. Per risolvere questo e altri possibili problemi con l'installazione rgdal, utilizzare il seguente comando R per installare rgdal:

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

Questo dovrebbe essere simile a quello di cui avresti bisogno anche per MacPorts con l'eccezione dei passaggi di brew, e le tue librerie / intestazioni sono molto probabilmente rispettivamente sotto "/ opt / local / lib" e "/ opt / local / include".

Nota: per preparare gli aggiornamenti se stai usando "--with-armadillo" come opzione con gdal e hai aggiornato armadillo a 7 da 6. Dovrai ricompilare gdal prima di aggiornare / reinstallare rgdal.


Grazie. il tuo metodo funziona sulla mia macchina dopo alcuni errori secondo altre soluzioni pubblicate.
HappyCoding

Dio ha mandato la soluzione! Non so quante ore ci ho passato. Eeesh
josiekre

Ha funzionato per me. L'unica altra cosa era che avevo bisogno di riavviare R dopo aver installato il rgdalpacchetto.
Stewart Macdonald,

28

Su un sistema Fedora 21 che utilizza R-3.2.0, ha funzionato quanto segue:

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

Ovviamente questo era il risultato di ripetuti tentativi di ottenere:

install.packages("rgdal")

lavorare. Probabilmente puoi fare tutto in un'unica installazione.


Ha funzionato anche per me su Centos.
JaKu

Sono in Fedora 27 e R 3.4.3 e questa risposta funziona ancora!
StrayChild 01

15

Su ubuntustudio 14.04 (lo stesso per tutte le distribuzioni Debian):

sudo apt-get install libproj-dev libgdal-dev

Quindi potrei installare il pacchetto 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

Ecco cosa ho fatto su Centos7:

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

Quindi semplicemente

install.packages("rgdal")

Ha funzionato bene ma non era affatto chiaro.


8
Appena testato in un nuovo Centos 7, penso che tu abbia bisogno proj-devele non solo proj. Altrimenti, stiamo ottenendo configure: error: proj_api.h not found in standard or given locations. Questo è per rgdal 1.2-6.
HenrikB

1
Avevo bisogno della versione> 2.0 per usare il pacchetto sf. Queste istruzioni hanno funzionato per me, anche se hanno richiesto molto tempo, sii paziente. gis.stackexchange.com/questions/263495/…
Elin

1
d'accordo con @HenrikB, avevo bisogno proj-develdello stesso errore. potrebbe anche voler usaresudo yum install ...
Brian D

In questi giorni ho alcune autorizzazioni di modifica su SO, quindi ho aggiornato questa risposta per l'installazione proj-devel(non solo proj)
HenrikB

5

In OSX, scarico proj da http://www.kyngchaos.com/software/frameworks ed eseguo il seguente comando in 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

Questo ha funzionato per me:

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

Questa è l'unica cosa che ha funzionato per me in tutte le ricerche che ho fatto.
podcastfan88

4

Per ubuntu 16.04 e R 3.5.1, funziona abbastanza velocemente:

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

Poi;

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

Finalmente in CRAN;

install.packages("rgdal")

2

Per me (Ubuntu 16.04, R 3.4.2), una miscela delle soluzioni di cui sopra ha funzionato:

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

Quindi semplicemente installato rgdalda CRAN.


Grazie per averlo fornito. Sono riuscito a farlo funzionare per Ubuntu 16.04
Gabriel Fair

Quello alla fine ha funzionato per me usando Ubuntu 18.04. Grazie
Joni Hoppen

1

L'unica cosa che ha funzionato sul mio sistema è stata compilare PROJ4 dal sorgente come descritto qui e quindi installare il pacchetto rgdal come

 install.packages("rgdal")

1

Per le persone in ambienti multiutente con più versioni di proj installate (dall'origine), il metodo che ho usato è stato:

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

1

Per gli utenti Mac (OS.X versione 10.12.6), questo ha funzionato per me. Per prima cosa, vai alla riga di comando e installa gdal usando >> brew install gdal Secondo, vai su Rstuduio (console R) e installa il pacchetto usandoinstall.packages("rgdal")


1

Per risolvere questo problema devi install libgdal-dev:

$ sudo apt install libgdal-dev


0

Nessuna delle risposte precedenti ha funzionato per me (eseguendo R 3.5.1 su Linux Mint 17.1). La versione GDAL nei repository di Ubuntu è 1.11.3, questo fa sì che l'installazione di rGDAL fallisca. Ecco la soluzione che ha funzionato per me (da questo sito Web):

sudo apt-get install libexpat1-dev

Scarica e installa 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

Verifica la versione

gdal-config --version

Quindi ho ricevuto questo errore:

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

Questo problema è stato risolto aggiornando le associazioni:

sudo ldconfig

Quindi l'esecuzione install.packages("rgdal")in R ha funzionato bene.


0

Impossibile installare correttamente rgdal, ho provato tutti i suggerimenti menzionati e qui R non trovando il pacchetto anche dopo l'installazione del pacchetto

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

Ho aggiornato la mia R a 3.6.1

Riprova:

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)

Ho provato a eseguirlo da Rstudio e riga di comando R 3.6.1 GUI.

tutte le volte che l'ho provato ottengo risultati positivi per le librerie installate.

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

i file che sto cercando di leggere sono file 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")

Ho provato quanto sopra anche con il formato GTIFF .tif e ottengo lo stesso errore. Ma non sto cercando di leggere file .hdf, solo .dt0, .dt1, .dt2

questo funzionerà su un'altra macchina su cui ho installato R, tuttavia, sto cercando di capire cosa c'è che non va nell'installazione che ho su "questa" macchina.


0

L'aggiunta esplicita del percorso di inclusione in CFLAGS ha funzionato per me

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

0

Se stai usando MacPortsquesto dovrebbe funzionare:

  1. Installa gdal( proj6verrà installato come dipendenza)

    sudo port install gdal
  2. Installare pkg-config

    sudo port install pkgconfig
  3. Imposta la PKG_CONIFG_PATHvariabile in modo che punti a una directory con proj.pcfile. Nel mio caso questo era:

    export PKG_CONFIG_PATH=/opt/local/lib/proj6/lib/pkgconfig
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.