我正在使用R来处理气象数据 . 我分两步进行:
-
使用来自ncar命令语言的命令行函数ncl_convert2nc将grib转换为netcdf
-
使用R中的包ncdf导入netcdf数据 .
I still have one problem:
2-对于某些特定的grib文件,使用ncar工具进行转换不起作用 . read grib files in R 还有其他方式或技巧(除了转录成netcdf)吗?
问题由Dirk回答:1-我想对R内的许多文件进行自动处理 . 我可以在R中调用ncl_convert2nc吗? (Dirk Eddelbuettel在下面回答)
5 回答
关于问题1,答案是'Yes' - 如果要捕获结果,请参阅
help(system)
和internal=TRUE
选项 .rgdal也可以做到这一点,但是它不够灵活,需要比ncdf或RNetCDF更多的关注和细节 - 并且取决于你的GDAL / rgdal,包括GRIB驱动程序 .
ncl_convert2nc似乎是最好的解决方案 . 但是,如果数据结构有点复杂,我使用GrADS将GRIB文件转换为ASCII(例如.csv),然后可以使用专用于R的ncdf4包创建NetCDF文件.GrADS还提供对重新支持将GRIB写入NetCDF,但只有1个变量有限制 .
另一种解决方案是使用wgrib / wgrib2软件(http://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/)并将GRIB-1 / GRIB-2文件直接转储为CSV格式,例如:
然后可以直接在R中读取...
另一个快速简便的命令行解决方案是使用cdo进行转换:
如果要输出netcdf4文件,请指定“-f nc4” .