How to install rNOMADS with GRIB support on Linux

About 6 months ago, I wrote a package for the R programming language called rNOMADS.  It interfaces with the National Oceanic and Atmospheric Association’s Operational Archive and Distribution System (NOMADS), comprising everything from global weather forecast models, to high resolution regional models, to wave and sea ice models.  rNOMADS uses R to download requested data from the NOMADS servers using two different methods: direct ascii data retrieval and GRIB file retrieval.  GRIB is a binary file format that can’t be read into R directly – it requires external programs that must be installed separately. This post describes how to install rNOMADS with GRIB support, which is available for Linux systems only.  Windows and Mac users should use the ascii download routines; I will write a tutorial and post it shortly.

rNOMADS allows R users to make some spectacular pictures (see below) but I also hope that it will lead to greater availability of these valuable resources to data analysts all over the world.  Already, rNOMADS is being used in an online sailboat racing game and to get data for predicting solar and wind energy output.

World temperature at 2 m above ground, generated using rNOMADS.

World temperature at 2 m above ground, generated using rNOMADS.

Step 1

The first step is to make sure R is configured correctly. You can skip the reinstallation (step 2) if need be, but I recommend getting r-base-dev anyway for all the libraries it has.

su
apt-get install r-base-dev
apt-get build-dep r-base
exit

Step 2

Then, I build R from the source. You can skip this method if you’ve already done this.

You can download the latest version  here.Get the tar.gz file next to the bullet point that says “Latest Release.”
Navigate to the file and type:

tar -xvf R-3.0.3.tar.gz
cd R-3.0.3
./configure
make
su
make install
exit

Step 3

Now we get dependencies for specific packages that rNOMADS requires.

su
apt-get install libxml2-dev
apt-get install libcurl4-openssl-dev
apt-get install libboost-dev
exit

Step 4

Now, we install wgrib2 and wgrib and add them to our path.
Download wgrib2 here.
Download wgrib here.
Then:

tar -xvf wgrib2.tgz
cd grib2/
make
su
mv wgrib2/ /usr/local
exit

mkdir wgrib
mv wgrib.tar wgrib
cd wgrib
tar -xvf wgrib.tar
make
su
mkdir /usr/local/wgrib
mv * /usr/local/wgrib
exit


su
gedit /etc/environment

add “/usr/local/wgrib2” and “/usr/local/wgrib” to the end of the PATH variable, then close /etc/environment and close the superuser terminal.
Next:

source /etc/environment

Step 5

Now we install rNOMADS and another package called GEOmap so that we can build and test the example vignette.

su
R

Now we are in the R interpreter, as root. Type:

install.packages('rNOMADS')
install.packages('GEOmap')

Step 6

If everything went well, you now have rNOMADS! Test rNOMADS (and learn how it works) by building the example vignette. First, download the source here and navigate to the saved file. Then, type:

R CMD Sweave rNOMADS_grib_examples.Rnw
pdflatex rNOMADS_grib_examples.tex

The latest R release has been causing issues with Sweave; if you don’t see any figures in your PDF or if the document compilation fails, try running Sweave using the commands described here.

This should create a PDF file called “rNOMADS_grib_examples.pdf” with code and images. It should look similar to this one.

Advertisements

2 thoughts on “How to install rNOMADS with GRIB support on Linux

  1. Pingback: Accessing global weather model data using the rNOMADS package in R | Bovine Aerospace

  2. Pingback: How to install rNOMADS with GRIB file support on Windows | Bovine Aerospace

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s