从grib天气模型中提取数据

时间:2015-01-05 15:25:06

标签: mysql macos gis weather grib

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

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

  1. 这些值来自其他单位(如K表示临时值,其他不同于降雨量中的mm)
  2. 我可以导出CSV但只能导出值而不是坐标
  3. 我想做的是:

    1. 通过命令行通过纬度经度
    2. grib文件中提取数据
    3. 提取数据,移动到MySQL数据库,以便能够进行一些数据聚合(总和,最大,最小)等。
    4. 能够绘制/映射数据(我可能会使用CartoDB服务)
    5. 我已经可以提取grib或者可以从某个地区下载,我希望这些数据能够在电子表格中看到,例如纬度,经度,温度,降雨量,风等......然后从那里我可以将它带到数据库,或者汇总/平均等等或操纵数据。

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

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

2 个答案:

答案 0 :(得分:4)

我建议使用cfgrib,它是基于python项目xarray和ECMWF的eccodes软件的基于python的grib阅读器。

它非常易于使用:

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

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

答案 1 :(得分:0)

如果我进行这种操作,我通常使用CDO,因为它正确处理各种原生网格。例如,如果要计算某个区域上的场的总和或平均值,那么简单地用常规的lat-lon或降低的高斯网格来计算算术平均值是不正确的,因为它没有考虑到变化的网格 - 当你朝着两极移动时,细胞大小。

因此,我会选择

区域
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。