instalacja pakietu rgdal


110

Chodzi tutaj nie jest dokładnie jak wykreślić mapy przez R, jak znalazłem już całkiem ładny przykład tutaj , ale raczej sposób, aby to działało. W rzeczywistości nie mogę załadować biblioteki rgdal:

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

Jednak gdy próbuję ręcznie zainstalować powyższy pakiet, pojawia się następujący błąd:

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

Wszelkie uwagi mile widziane!


14
Jeśli używasz systemu podobnego do Debiana, spróbuj zainstalować libproj-devpakiet.
juba

1
Jakiego polecenia użyłeś do zainstalowania pakietu?
juba

1
Przepraszam, chciałem zainstalować rgdal ... A jakiej wersji Debiana używasz?
juba

4
Czy użyłeś install.packages("rgdal")?
juba

2
Aby oznaczyć odpowiedź jako poprawną, możesz zaznaczyć zielony znacznik. I nie musisz głosować za każdym komentarzem, który zrobiłem :) Cieszę się, że rozwiązałeś problem.
juba

Odpowiedzi:


129

Jeśli spojrzysz na stronę pakietu w CRAN , zobaczysz:

Wymagania systemowe : do budowania ze źródła: GDAL> = biblioteka 1.7.1 z http://trac.osgeo.org/gdal/wiki/DownloadSource i PROJ.4 (proj> = 4.4.9) z http: //trac.osgeo .org / proj / ; Struktury GDAL OSX zbudowane przez Williama Kyngesburye pod adresem http://www.kyngchaos.com/ mogą być używane do instalacji źródeł w systemie OSX.

Ponieważ wydajesz się być pod Linuksem, zawsze budujesz pakiet ze źródeł, więc będziesz musiał zainstalować odpowiednie biblioteki w swoim systemie. Jeśli korzystasz z Mint, Ubuntu lub innej pochodnej Debiana, możesz:

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

Jedną wskazówką, która może być przydatna, nadal w systemie opartym na Debianie, jest zainstalowanie apt-filepakietu i uruchomienie:

$ sudo apt-file update

Następnie, gdy pojawi się błąd, taki jak:

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

Możesz użyć następującego polecenia, aby znaleźć pakiet, który musisz zainstalować, aby uzyskać brakujący plik:

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

Niezupełnie działało dla mnie, uruchomienie Linux Mint 17.1 Rebecca zbudowanego na zaufanym Ubuntu 14.04 - apt-filenie działało. Skończyło się na usunięcie libproj-devi ponowne zainstalowanie go z powodu jakiegoś problemu korupcji i następnie zainstalowaniu libgdal1, libgdal1-devi zależności (wersja 1.11.2 w oficjalnym repozytorium jak to pisze, ale widziałem wersja 2 tutaj więc zmiana może być na horyzoncie)
MichaelChirico

4
Jeśli jesteś w przyszłości i nie widzisz libgdal * 1 * -dev, może to być spowodowane tym, że GDAL 2 jest niedostępny, a nazwa pakietu zmniejszyła liczbę, więc po prostu libgdal-dev. Tak wygląda Ubuntu 18.04.
Tom Saleeba

1
Zainstalowałem wszystkie zależności, ale nadal mam configure: error: proj_api.h not found in standard or given locations.plik, który proj_api.hznajduje się również w /usr/include. Dowolny pomysł?
ismailsunni,

41

Jeśli używasz systemu OS X z menedżerem pakietów Homebrew i masz zainstalowanego R za pomocą homebrew-science tap , możesz zainstalować rgdal, najpierw instalując gdal.

brew install gdal

Możesz najpierw zechcieć wypisać dostępne opcje przed uruchomieniem tego, na wypadek gdybyś chciał czegoś wymyślnego, takiego jak obsługa postgresql. Aby zobaczyć dostępne opcje, wpisz

brew options gdal

następnie, aby mieć ochotę, możesz pisać

brew install --with-postgresql gdal

po chwili powinieneś być dobry, aby przejść z zależnościami, ponieważ proj, w tym twój potrzebny proj_api.h, są zależnościami! Niestety, rgdal nadal nie może teraz znaleźć pro_api.h, ponieważ nie szuka w / usr / local / include. Aby naprawić tę i inne możliwe problemy z instalacją rgdal, użyj następującego polecenia R, aby zainstalować rgdal:

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

Powinno to być podobne do tego, czego potrzebujesz również dla MacPorts, z wyjątkiem etapów parzenia, a Twoje biblioteki / nagłówki najprawdopodobniej znajdują się odpowiednio w pozycjach „/ opt / local / lib” i „/ opt / local / include”.

Uwaga: aby warzyć ulepszacze, jeśli używasz "--with-armadillo" jako opcji z gdalem i ulepszono pancernik do 7 z 6. Będziesz musiał ponownie skompilować gdal przed aktualizacją / ponowną instalacją rgdal.


dzięki. Twoja metoda działa na moim komputerze po kilku błędach według innego opublikowanego rozwiązania.
HappyCoding

Bóg zesłał rozwiązanie! Nie wiem, ile godzin nad tym spędziłem. Eeesh
josiekre

Pracował dla mnie. Jedyną rzeczą było to, że po zainstalowaniu rgdalpakietu musiałem ponownie uruchomić R.
Stewart Macdonald

28

W systemie Fedora 21 używającym R-3.2.0 działały następujące rozwiązania:

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

Oczywiście był to wynik wielokrotnych prób uzyskania:

install.packages("rgdal")

pracować. Prawdopodobnie możesz to wszystko zrobić w jednej instalacji.


Pracował dla mnie również na Centos.
JaKu

Jestem w Fedorze 27 i R 3.4.3 i ta odpowiedź nadal działa!
StrayChild01

15

W systemie ubuntustudio 14.04 (tak samo dla wszystkich dystrybucji Debiana):

sudo apt-get install libproj-dev libgdal-dev

Wtedy mogłem zainstalować pakiet 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

Oto co zrobiłem na Centos7:

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

Wtedy po prostu

install.packages("rgdal")

Działało dobrze, ale wcale nie było jasne.


8
Właśnie przetestowany w nowym Centos 7, myślę, że potrzebujesz, proj-devela nie tylko proj. W przeciwnym razie otrzymamy configure: error: proj_api.h not found in standard or given locations. To jest dla rgdal 1.2-6.
HenrikB

1
Potrzebowałem wersji> 2.0, aby użyć pakietu sf. Te instrukcje zadziałały dla mnie, chociaż zajmowały dużo czasu, bądź cierpliwy. gis.stackexchange.com/questions/263495/…
Elin

1
zgadzam się z @HenrikB, potrzebowałem tego proj-develsamego błędu. też może chcieć użyćsudo yum install ...
Brian D

Obecnie mam uprawnienia do edycji w SO, więc zaktualizowałem tę odpowiedź, aby zainstalować proj-devel(nie tylko proj)
HenrikB

5

W OSX pobieram proj z http://www.kyngchaos.com/software/frameworks i uruchamiam następującą komendę w 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

To zadziałało dla mnie:

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

To jedyna rzecz, która zadziałała we wszystkich moich poszukiwaniach.
podcastfan88

4

W przypadku ubuntu 16.04 i R 3.5.1 działa to dość szybko:

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

Następnie;

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

Wreszcie w CRAN;

install.packages("rgdal")

2

U mnie (Ubuntu 16.04, R 3.4.2) zadziałała mieszanka powyższych rozwiązań:

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

Następnie wystarczy zainstalować rgdalz CRAN.


Dzięki za udostępnienie tego. Udało mi się to uruchomić dla Ubuntu 16.04
Gabriel Fair

To w końcu zadziałało, używając Ubuntu 18.04. Dzięki
Joni Hoppen

1

Jedyną rzeczą, która działała w moim systemie, było skompilowanie PROJ4 ze źródeł, jak opisano tutaj, a następnie zainstalowanie pakietu rgdal jako

 install.packages("rgdal")

1

Dla osób w środowiskach wielu użytkowników z zainstalowanymi wieloma wersjami proj (ze źródła), zastosowałem metodę:

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

1

Dla użytkowników Mac (OS.X wersja 10.12.6), to zadziałało. Najpierw przejdź do wiersza poleceń i zainstaluj gdal za pomocą >> brew install gdal Po drugie, przejdź do Rstuduio (konsola R) i zainstaluj pakiet za pomocąinstall.packages("rgdal")



0

Żadna z powyższych odpowiedzi nie działała dla mnie (uruchamiam R 3.5.1 na Linux Mint 17.1). Wersja GDAL w repozytoriach Ubuntu to 1.11.3, co powoduje niepowodzenie instalacji rGDAL. Oto rozwiązanie, które zadziałało dla mnie (z tej strony):

sudo apt-get install libexpat1-dev

Pobierz i zainstaluj 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

Zweryfikuj wersję

gdal-config --version

Otrzymałem ten błąd:

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

Zostało to naprawione poprzez aktualizację powiązań:

sudo ldconfig

Wtedy bieganie install.packages("rgdal")w R działało dobrze.


0

Nie można poprawnie zainstalować rgdal, wypróbowałem wszystkie wymienione i wszystkie sugestie tutaj R nie znajduję pakietu nawet po instalacji pakietu

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

Zaktualizowałem R do 3.6.1

Spróbuj ponownie:

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)

Próbowałem to uruchomić z Rstudio i wiersza poleceń R 3.6.1 GUI.

za każdym razem, gdy próbowałem tego, otrzymuję pozytywne wyniki dla instalowanych bibliotek.

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

pliki, które próbuję odczytać, są plikami 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")

Wypróbowałem powyższe z formatem GTIFF .tif również i otrzymuję ten sam błąd. Ale nie próbuję czytać plików .hdf, tylko .dt0, .dt1, .dt2

to zadziała na innym komputerze, na którym mam zainstalowane oprogramowanie R, jednak próbuję dowiedzieć się, co jest nie tak z instalacją, którą mam na „tym” komputerze.


0

Jawne dodanie ścieżki dołączania w CFLAGS zadziałało

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

0

Jeśli używasz MacPortstego, powinno działać:

  1. Zainstaluj gdal( proj6zostanie zainstalowany jako zależność)

    sudo port install gdal
  2. zainstalować pkg-config

    sudo port install pkgconfig
  3. Ustaw PKG_CONIFG_PATHzmienną tak, aby wskazywała na katalog z proj.pcplikiem. W moim przypadku było to:

    export PKG_CONFIG_PATH=/opt/local/lib/proj6/lib/pkgconfig
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.