[R] Help with RGDAL

cls59 chuck at sharpsteen.net
Fri Oct 30 23:16:07 CET 2009



Pablo Alvarez-2 wrote:
> 
> 
> Hello, 
> We (two mac users) have been attempting to install rgdal from
> "http://www.kyngchaos.com/software:frameworks", given that it is not
> available as a binary on the CRAN (binaries) of the "Package Installer". 
> 
> 

The GDAL library contains an impressive collection of utilities and also
leverages several other libraries such as HDF, netCDF and PROJ4, just to
name a few. Building and distributing a binary R package that contains the
GDAL library bloats the size of the package and causes redundancies if a
user already has GDAL installed somewhere else on their system. It also
creates a lot of extra work for the package maintainer.

This is probably done for Windows because a run-of-the-mill Windows system
is utterly incapable of building anything from source. Linux and OS X
systems are perfectly capable, so it is expected that you can build the
package from source and use your installed version of GDAL.



Pablo Alvarez-2 wrote:
> 
> 
> I have also tried to solve this problem by looking on the net for an old
> question, and though I have found it, the answers do not help very much
> because our porgraming skills are embryonic. 
> 
> 
> Our GIS professor has suggested we ask you guys how to proceed with the
> CRAN (source). Any suggestions or direction to an old document dealing
> with this?
> 
> Thank you very much for your help, 
> Pablo and Margarita
> PS. We have already installed: GDAL (for QGIS) and "sp" (for R)
> 
> 

I've built the GDAL library and installed rgdal a few times-- it's typically
one of the first things I do after wiping or reinstalling my OS X system or
a Linux system. Building software from source can be a tricky business with
a steep learning curve-- but once you figure out some of the patterns it
becomes quite doable (as long as those darn platform-specific issues don't
cut you off at the kneecaps).

The rgdal package contains a Configure script that is run during
installation and attempts to locate the GDAL library. When building software
on Unix/Linux, there are three kinds of folders containing various items of
interest that compilers and linkers will frequently pester you about. These
are:

  * "lib" folders-- these contain libraries that hold code you are trying to
use.

  * "include" folders-- these contain header files that tell the compiler
how to use 
     the code in the libraries.

  * "bin" folders-- these contain scripts and programs that may help the
Configure script,
     or the program you are building do the things they do.

I suspect the Configure script for the rgdal package only checks standard
Unix/Linux folders such as /usr/bin or /usr/local/lib. The Framework package
provided by William Kyngesburye installs GDAL Mac-Style, which means these
folders are located in:

  /Library/Frameworks/GDAL.framework/unix/

And 

  /Library/Frameworks/PROJ.framework/unix/

Fortunately, R allows us to pass hints to configure during package
installation in order to help it find what it is looking for.

So, grab the source tarball of rgdal from:

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

I'm also using the PROJ4 and GDAL frameworks installed by the GDAL Complete
framework, available from:

  http://www.kyngchaos.com/software:frameworks/

Also, make sure you have installed the "Developer Tools" contained on your
OS X System Software CD as these provide C compilers and other tools needed
to build the code in the rdal package.

Now pop open a Terminal. Assuming you saved the package in your Downloads
folder, execute the following.

  cd ~/Downloads
  R CMD INSTALL rgdal_0.6-20.tar.gz

R will start to install the package, and then wipe out with a message that
includes:

  Error: gdal-config not found
  The gdal-config script distributed with GDAL could not be found.
  If you have not installed the GDAL libraries, you can
  download the source from  http://www.gdal.org/
  If you have installed the GDAL libraries, then make sure that 
  gdal-config is in your path. Try typing gdal-config at a
  shell prompt and see if it runs. If not, use:
  --configure-args='--with-gdal-config=/usr/local/bin/gdal-config' echo with
appropriate values for your installation.


gdal-config is a little script who's sole purpose is to tell Configure
scripts whatever they want to know about a GDAL installation. Scripts and
programs that accompany a library are commonly installed in a "bin" folder.
So given what I've noted above about the install location used by the GDAL
framework, we can give rgdal's Configure script a hint:

  R CMD INSTALL --configure-args=\
   
"--with-gdal-config=/Library/Frameworks/GDAL.framework/unix/bin/gdal-config"
\  
    rgdal_0.6-20.tar.gz  

The R installer now spits out another error:

  Error: proj_api.h not found.
  If the PROJ.4 library is installed in a non-standard location,
  use --configure-args='--with-proj-include=/opt/local/include'
  for example, replacing /opt/local/* with appropriate values
  for your installation. If PROJ.4 is not installed, install it.

PROJ4 has no "proj4-config" script, so we will probably need to tell
Configure where both the lib and include folders are. The following command:

  R CMD INSTALL --configure-args=\
   
"--with-gdal-config=/Library/Frameworks/GDAL.framework/unix/bin/gdal-config
\
    --with-proj-lib=/Library/Frameworks/PROJ.framework/unix/lib \
    --with-proj-include=/Library/Frameworks/PROJ.framework/unix/include" \ 
    rgdal_0.6-20.tar.gz

Should provide Configure with enough information to build and install the
package.

When smashed onto one line (for easier copying and pasting) the above
command is:

R CMD INSTALL
--configure-args="--with-gdal-config=/Library/Frameworks/GDAL.framework/unix/bin/gdal-config
--with-proj-lib=/Library/Frameworks/PROJ.framework/unix/lib
--with-proj-include=/Library/Frameworks/PROJ.framework/unix/include"
rgdal_0.6-20.tar.gz


Hope this helps!

-Charlie



-----
Charlie Sharpsteen
Undergraduate
Environmental Resources Engineering
Humboldt State University
-- 
View this message in context: http://old.nabble.com/Help-with-RGDAL-tp26135289p26137651.html
Sent from the R help mailing list archive at Nabble.com.




More information about the R-help mailing list