开发者

Using R to open grib files

I am using R to work with meteorological data. I proceed in two steps:

  1. convert grib to netcdf using the command line function ncl_convert2nc from ncar command language
  2. use package ncdf in R to import the netcdf data.

I still have one problem:

2- For some particular grib files, the conversion with ncar tool does not work. Is there other ways or trick (other than transcription into netcdf) to read gr开发者_开发问答ib files in R ?

Problem Answered by Dirk: 1- I would like to do automatic treatment of many files within R. Can I call ncl_convert2nc within R ? (answered by Dirk Eddelbuettel below )


Regarding question 1, the answer is 'Yes' -- see help(system) and the internal=TRUE option if you want to capture results.


rgdal also can do it, but is less flexible and requires more care and detail than ncdf or RNetCDF - and depends of your GDAL/rgdal built including the GRIB driver.


ncl_convert2nc seems to be the best solution. However, if the structure of data is a little bit more complicated I use GrADS to convert GRIB file to ASCII (e.g. .csv) and then it is possible to create NetCDF file using ncdf4 package dedicated for R. GrADS also provides support for re-writing GRIB to NetCDF, but there is limitation to only 1 variable.


As an alternative to calling ncl_convert2nc from R, there are two alternatives I can suggest:

1. CDO conversion

Another quick and easy command line solution is to use cdo to convert to netcdf to read in:

cdo -f nc copy file.grb file.nc

If you want to output a netcdf4 file you specify "-f nc4".

One potential glitch with this approach is if your grib file has more than one time axis (e.g. for multiple seasonal forecasts) which can cause issues with the conversion.

2. ECCODES conversion

Instead eccodes offers a grib converter that is very robust and can handle all cases of multiple time axes which usually cause CDO and NCL based conversions to fail.

The command is called grib_to_netcdf

grib_to_netcdf -o output.nc input_grib.grb

So far, grib_to_netcdf has been able to handle every grib file I have thrown at it without problems.


Another solution is to use the wgrib/wgrib2 software (http://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/) and dump your GRIB-1/GRIB-2 file directly to CSV format, e.g.:

/path/to/your/wgrib2 input_file.grb -csv output_file.csv

Then it may be read directly in R...

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜