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

Здесь проблема не совсем в том, как строить карты через 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

Любые пожелания приветствуются!

19 ответов

Решение

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

SystemRequirements: для сборки из источника: 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

Если вы используете OS X с менеджером пакетов Homebrew, и R установлен через homebrew-science tap, вы можете установить 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, за исключением шагов brew, и ваши библиотеки / заголовки, скорее всего, находятся в папках "/ opt / local / lib" и "/ opt / local / include" соответственно.

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

В системе 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")

работать. Вы, вероятно, можете сделать все это за одну установку.

На 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

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

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

Тогда просто

install.packages("rgdal")

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

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

В OSX я загружаю proj с http://www.kyngchaos.com/software/frameworks и запускаю следующую команду в 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'))

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

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

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

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

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

Тогда просто установил rgdal из Крана.

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

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

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

 install.packages("rgdal")

Если у кого-то все еще есть проблемы с этим, я получил версию rgdal с этого сайта:

https://cran.r-project.org/web/packages/rgdal/index.html

и установил его:

      install.packages("filename.tar", repos = NULL, type = "source")

Чтобы это исправить, нужно install libgdal-dev:

$ sudo apt install libgdal-dev

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

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

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

Если вы используете среду Conda, используйте:

      conda install -c conda-forge r-rgdal
conda install -c conda-forge/label/broken r-rgdal
conda install -c conda-forge/label/cf201901 r-rgdal
conda install -c conda-forge/label/cf202003 r-rgdal

conda install -c conda-forge proj

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

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

    sudo port install gdal
    
  2. Установить pkg-config

    sudo port installpkgconfig
    
  3. Установлен PKG_CONIFG_PATH переменная, указывающая на каталог с proj.pcфайл. В моем случае это было:

    export PKG_CONFIG_PATH=/opt/local/lib/proj6/lib/pkgconfig
    

Ни один из приведенных выше ответов не помог мне (работаю с 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 работал нормально.

Другие вопросы по тегам