установка пакета rgdal


110

Вопрос здесь не совсем , как построить карты через R, как я нашел уже хорошенький пример хорошего здесь , но , скорее , как заставить его работать. Фактически, я не могу загрузить библиотеку 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

Любой ввод приветствуется!


14
Если вы используете систему, подобную debian, попробуйте установить libproj-devпакет.
juba 06

1
Какую команду вы использовали для установки пакета?
juba 06

1
Извините, я хотел установить rgdal ... А какую версию debian вы используете?
juba 06

4
Вы использовали install.packages("rgdal")?
juba 06

2
Чтобы отметить ответ как правильный, отметьте зеленую отметку. И вам не нужно голосовать за каждый мой комментарий :) Рад, что вы решили свою проблему.
juba 06

Ответы:


129

Если вы посмотрите на страницу пакета в CRAN , вы увидите следующее:

Системные требования: для сборки из исходного кода: библиотека GDAL> = 1.7.1 из http://trac.osgeo.org/gdal/wiki/DownloadSource и PROJ.4 (proj> = 4.4.9) из http: //trac.osgeo .org / proj / ; Фреймворки GDAL OSX, созданные Уильямом Кингесбери на http://www.kyngchaos.com/, могут использоваться для исходных установок 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

У меня не совсем сработало, Linux Mint 17.1 Rebecca, построенный на Ubuntu 14.04, надежно apt-file- не работал. Я в конечном итоге удаление libproj-devи переустановка его из - за какой - то вопрос о коррупции и затем устанавливать libgdal1, libgdal1-devи зависимость (версия 1.11.2 в официальном репозитории в этой записи, но я видел , версия 2 здесь поэтому изменение может быть на горизонте)
MichaelChirico

4
Если вы находитесь в будущем и не видите libgdal * 1 * -dev, это может быть связано с тем, что GDAL 2 отсутствует, а в имени пакета пропало число libgdal-dev. Ubuntu 18.04 кажется таким.
Том Салиба

1
Я установил все зависимости, но у меня все еще есть configure: error: proj_api.h not found in standard or given locations.The proj_api.h, также есть в /usr/include. Любая идея?
ismailsunni

41

Если вы используете OS X с менеджером пакетов Homebrew и установили R с помощью крана homebrew-science , вы можете установить rgdal, предварительно установив gdal.

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, за исключением этапов приготовления, и ваши библиотеки / заголовки, скорее всего, находятся в «/ opt / local / lib» и «/ opt / local / include» соответственно.

Примечание: чтобы приготовить обновления, если вы используете "--with-armadillo" в качестве опции с gdal и обновили armadillo до 7 с 6. Вам придется перекомпилировать gdal перед обновлением / переустановкой rgdal.


Спасибо. ваш метод работает на моей машине после нескольких сбоев в соответствии с другим опубликованным решением.
HappyCoding

Бог послал решение! Не знаю, сколько часов я потратил на это. Eeeh
josiekre

Работал у меня. Другое дело, что мне нужно было перезапустить R после установки rgdalпакета.
Стюарт Макдональд

28

В системе Fedora 21 с R-3.2.0 работало следующее:

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

Я использую Fedora 27 и R 3.4.3, и этот ответ все еще работает!
StrayChild01

15

В 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

13

Вот что я сделал на Centos7:

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

Тогда просто

install.packages("rgdal")

Работало нормально, но не совсем понятно.


8
Только что протестировал на свежем Centos 7, думаю нужно proj-develи не просто так proj. В противном случае получаем configure: error: proj_api.h not found in standard or given locations. Это для rgdal 1.2-6.
HenrikB

1
Мне нужна была версия> 2.0, чтобы использовать пакет sf. Эти инструкции сработали для меня, хотя на них потребовалось много времени, наберитесь терпения. gis.stackexchange.com/questions/263495/…
Elin

1
согласен с @HenrikB, мне нужно было proj-develдля той же ошибки. также может захотеть использоватьsudo yum install ...
Brian D

В эти дни у меня есть некоторые разрешения на редактирование в SO, поэтому я обновил этот ответ для установки proj-devel(не только proj)
HenrikB


4

Это сработало для меня:

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

Это единственное, что у меня сработало во всех моих поисках.
podcastfan88

4

Для 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")

2

Для меня (Ubuntu 16.04, R 3.4.2) работала смесь вышеперечисленных решений:

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

Потом просто установил rgdalиз CRAN.


Спасибо за это. Мне удалось заставить его работать для Ubuntu 16.04
Габриэль Фэйр

В конечном итоге это сработало для меня с использованием ubuntu 18.04. Спасибо
Джони Хоппен

1

Единственное, что сработало в моей системе, - это скомпилировать PROJ4 из исходного кода, как описано здесь, а затем установить пакет rgdal как

 install.packages("rgdal")

1

Для людей в многопользовательских средах с несколькими установленными версиями proj (из источника) я использовал следующий метод:

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

1

Для пользователей Mac (OS.X Version 10.12.6) это сработало для меня. Сначала перейдите в командную строку и установите gdal с помощью >> brew install gdal Во-вторых, перейдите в Rstuduio (консоль R) и установите пакет с помощьюinstall.packages("rgdal")



0

Ни один из приведенных выше ответов не помог мне (работаю с R 3.5.1 на Linux Mint 17.1). Версия GDAL в репозиториях Ubuntu - 1.11.3, это приводит к сбою установки rGDAL. Вот решение, которое сработало для меня (с этого сайта):

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

Затем запуск install.packages("rgdal")в R работал нормально.


0

Не удалось заставить rgdal правильно установить, я пробовал все упомянутые и все предложения здесь R не находит пакет даже после установки пакета

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, однако я пытаюсь выяснить, что не так с установкой, установленной у меня на «этой» машине.


0

Явное добавление пути включения в CFLAGS сработало для меня

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

0

Если вы используете MacPortsэто, должно работать:

  1. Установить gdal( proj6будет установлен как зависимость)

    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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.