从 grib 天气模型中提取数据
Posted
技术标签:
【中文标题】从 grib 天气模型中提取数据【英文标题】:Extract data from grib weather model 【发布时间】:2015-03-03 04:05:35 【问题描述】:我从GFS 下载了grib1
模型数据,我使用的是Mac OS X,并且能够从NOAA 构建wgrib2
文件,但无法提取数据。我还没有找到用于 MAC 的 grib1
实用程序。
然后我运行到这个程序http://www.giss.nasa.gov/tools/panoply/,它能够读取文件并看到数据,但我遇到了一些问题。
-
这些值采用其他单位(例如 K 表示温度,其他不同于 mm 的降雨量)
我可以导出
CSV
,但只能导出值而不是坐标
我想做的是:
-
通过命令行从grib文件中通过纬度经度提取数据
提取数据并移动到
mysql
数据库,以便能够进行一些数据聚合(总和、最大值、最小值)等
能够绘制/映射数据(我可能会使用CartoDB 服务)
我已经可以提取grib
或者可以从某个区域下载,我希望能够在电子表格上看到这些数据,例如纬度、经度、温度、降雨量、风等...然后我可以从那里将其带到数据库,或汇总 /avg 等或操作数据。
样本grib
数据文件:https://dl.dropboxusercontent.com/u/104462/neavilag_rain_wind_pressure.grb
根据我的情况,满足我需求的最佳方法是什么?你能建议我怎么做吗?
【问题讨论】:
“MAC”是指Mac OS X
? lat lon
是什么?您将使用什么数据库(Oracle、PostgreSQL、Progress OpenEdge..)?您将使用什么语言/工具来绘制数据?如果您正在寻找将数据从一种格式转换为另一种格式的脚本,那么提供数据样本会有所帮助
嗨,是的,我的意思是 Mac OS X,lat 是纬度,lon 是经度。我想使用 mySQL,对于绘图,可能使用 cartodb 服务,但您可以建议使用其他服务。我已经可以提取 grib 或可以从某个区域下载,我希望能够在电子表格上看到这些数据,例如纬度, 经度, 温度, 降雨量, 风等...然后从那里我可以把它带到一个数据库, 或 sum /avg 等或操作数据。也许你可以建议我做什么。谢谢...
这里是一些数据的链接[链接] (dl.dropboxusercontent.com/u/104462/…)
Stack Overflow 让程序员可以提出合理规模的编程问题并找到答案。要保留您的问题on-topic,请考虑将其拆分为更小的具体问题,每个问题都标有编程语言。对于复杂的编排,您可能需要学习/使用一些 Mac 友好的脚本语言。还可以考虑使用Geographic Information Systems Stack Exchange 站点。我没有gis
或macosx
的经验,所以我不会再帮你了
【参考方案1】:
我建议使用cfgrib
,它是基于python 项目xarray
和ECMWF 的eccodes
软件的基于python 的grib 阅读器。
非常好用:
import cfgrib
cfgrib.open_datasets('your_grib_data.grib2')
而且 xarray 带有很多有用的内置函数。玩得开心!
【讨论】:
【参考方案2】:如果我进行这种操作,我通常会使用 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。
【讨论】:
以上是关于从 grib 天气模型中提取数据的主要内容,如果未能解决你的问题,请参考以下文章
.grib是啥格式的文件,需要用啥软件打开? 我从欧洲气象网上下的数据。
使用 cfgrib 加载具有“未知”typeOfLevel 的 GRIB 变量