使用R打开grib文件
我使用R来处理气象数据。我分两步进行:使用R打开grib文件,r,data-structures,netcdf,grib,R,Data Structures,Netcdf,Grib,我使用R来处理气象数据。我分两步进行: 使用ncar命令语言中的命令行函数ncl_convert2nc将grib转换为netcdf 使用R中的包ncdf导入netcdf数据 我还有一个问题: 2-对于某些特定grib文件,使用ncar工具的转换不起作用。是否有其他方法或技巧(转录到netcdf之外)读取R中的grib文件 Dirk回答的问题:1-我想在R中自动处理许多文件。我可以在R中调用ncl_convert2nc吗?(下面由Dirk Eddelbuettel回答)关于问题1,答案是“是”——
Dirk回答的问题:1-我想在R中自动处理许多文件。我可以在R中调用ncl_convert2nc吗?(下面由Dirk Eddelbuettel回答)关于问题1,答案是“是”——如果您想捕获结果,请参阅
帮助(系统)
和内部=真
选项。rgdal也可以这样做,但它的灵活性不如ncdf或RNetCDF,需要更多的关注和细节,这取决于您的GDAL/rgdal构建,包括GRIB驱动程序 ncl\u convert2nc似乎是最好的解决方案。但是,如果数据结构稍微复杂一点,我会使用GrADS将GRIB文件转换为ASCII(例如csv),然后可以使用专用于R的ncdf4包创建NetCDF文件。GrADS还支持将GRIB重新写入NetCDF,但仅限1个变量。另一种解决方案是使用wgrib/wgrib2软件()并将GRIB-1/GRIB-2文件直接转储为CSV格式,例如:
/path/to/your/wgrib2 input_file.grb -csv output_file.csv
然后它可以直接在R中读取。作为从R调用ncl_convert2nc的替代方案,我可以建议两种替代方案: 1。CDO转换 另一个快速简便的命令行解决方案是使用cdo转换为netcdf以读取:
cdo -f nc copy file.grb file.nc
如果要输出netcdf4文件,请指定“-f nc4”
这种方法的一个潜在问题是,如果您的grib文件有多个时间轴(例如,对于多个季节性预测),则可能会导致转换问题
2。ECCODE转换
相反,ECCODE提供了一个非常健壮的grib转换器,可以处理多个时间轴的所有情况,这些情况通常会导致基于CDO和NCL的转换失败
到目前为止,grib_to_netcdf能够毫无问题地处理我抛出的每个grib文件。至少对于wgrib,
-csv
不是一个选项
grib_to_netcdf -o output.nc input_grib.grb