Skip to content

retostauffer/Rgetgrib

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

SHORT

  • WHAT: A small R-package
  • FOR WHAT: R/grib file interaction (using grib_api fortran code)
  • WHO: Reto Stauffer
  • WHEN: End of Mai 2016
  • UPDATED: October 2017 to v1.2-7

Requirements

Requires an installation of the ECMWF GRIB_API library. This package has been tested on a Linux system with GRIB_API release version 1.19 and R version 3.3.1.

R Package to Directly Read From Grib Files

Once upon a time I was working with Sascha on a small problem on how to efficiently read grib data in R. There is the raster package which offers some functionality, however, the raster package is neither quick nor does it provide the (often) required meta information of the grib messages or is able to read data from rotated grids (like COSMO). This was the beginning of this getgrib package which offers some grib handling functionalities using the ECMWF GRIB API (see installation notes).

Over the time the R package getgrib got some updates and extensions, and some methods have been replaced and/or removed by better, faster, or more flexible methods (written in C/Fortran/R).

The package also contains a vignette called overview.pdf which shows an overview over the different functionalities which are currently implemented.

Installation Notes

A proper grib API installation is required to build the Fortran and C shared object files included in the package. Furthermore, some paths and flags have to be set properly. I was using the make.sh file which should be included in this repository, but---of course---contains some paths customized to my machine and OS. Please check the paths there and then do something similar as this (some bash shell code):

#!/bin/bash
## This line simply extracts the current package version
## out of the R package DESCRIPTION file
version=`cat getgrib/DESCRIPTION | grep 'Version:' | awk '{print $2}'`

## Setting required R flags for the compilers (IMPORTANT)
export PKG_FCFLAGS="-static-libgfortran -L/usr -I/usr/include -lgrib_api_f90 -lgrib_api"
export PKG_LIBS="-L/usr -I/usr/include -lgrib_api_f90 -lgrib_api"

## Build and install package
R CMD build --no-build-vignettes getgrib
R CMD INSTALL getgrib_${version}.tar.gz

Bilinear Interpolation

There is a function called bilinear which performs bilinear interpolation on grib files (deterministic and ensemble grib files) using some C-backend code based on the GRIB_API (wherefore the compiler flags are required). Code written somewhen in spring 2017 by Reto Stauffer.

Method in bilinearlist.c used by bilinear(...) modified, is now able to interpolate grib messages without perturbationNumber in the message header. A perturbationNumber = 0 will be returned if not found.

Reading Grib Data

Another nice set of functions is provided by getdata and gribdata2raster (please check the package manual pages or the vignette for more information). These functions allow to load full grids and convert them to RasterLayer objects if you wanna plot them.

About

Small R package to read data directly from grib1/grib2 files (and perform interpolation).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published