5

我从GFSgrib1下载了模型数据,我使用的是 Mac OS X 并且能够从NOAA构建文件,但无法提取数据。我还没有找到适用于 MAC 的实用程序。wgrib2grib1

然后我运行到这个程序http://www.giss.nasa.gov/tools/panoply/能够读取文件并可以看到数据,但我有一些问题。

  1. 这些值以其他单位表示(例如 K 表示温度,其他不同于 mm 的降雨量)
  2. 我可以导出CSV,但只能导出值而不是坐标

我想做的是:

  1. 通过命令行通过纬度经度从grib文件中提取数据
  2. 提取数据移动到MySQL数据库以便能够进行一些数据聚合(总和,最大值,最小值)等
  3. 能够绘制/映射数据(我可能会使用CartoDB服务)

我已经可以grib从某个区域提取或下载,我希望这些数据能够在电子表格上看到,例如纬度、经度、温度、降雨量、风等......然后我可以从那里把它带到数据库中,或 sum /avg 等或操作数据。

示例grib数据文件:https ://dl.dropboxusercontent.com/u/104462/neavilag_rain_wind_pressure.grb

根据我的情况,处理我的需求的最佳方法是什么?你能建议我做什么吗?

4

2 回答 2

6

我建议使用cfgrib基于 python 项目xarrayeccodesECMWF 软件的基于 python 的 grib 阅读器。

这是非常容易使用:

import cfgrib
cfgrib.open_datasets('your_grib_data.grib2')

xarray 带有很多有用的内置函数。玩得开心!

于 2019-08-03T13:28:09.240 回答
1

如果我进行这种操作,我通常会使用 CDO,因为它可以正确处理各种原生网格。例如,如果您想计算某个区域上某个字段的总和或平均值,那么简单地使用常规纬度或简化的高斯网格计算算术平均值是不正确的,因为它没有考虑到不断变化的网格-向两极移动时的单元格大小。

因此,我会选择一个区域

cdo -f nc sellonlatbox,lon1,lon2,lat1,lat2 in.grb out.nc

在这里,我使用“-f nc”选项同时转换为 netcdf。许多软件包很容易读取 netcdf 以创建绘图(ncl、gdl/idl、grads、R、python、panoply 等)。

要计算文件的字段统计信息,它就像

cdo fldmean in.nc out.nc
cdo fldmax in.nc out.nc
cdo fldsum in.nc out.nc 

举一些你要求的例子。您还可以在时间维度(timmean 等)中进行统计。查看 CDO 帮助页面了解详细信息。我使用 macports 在我的 MAC 上安装了 CDO。

于 2017-10-04T20:29:56.187 回答