1

我想知道,有没有办法从 grib1 文件中转储值?我的最终目标是在纬度和经度或至少一个网格点上找到单个消息的值。我使用的是linux系统。Wgrib 似乎除了读取有关消息的元数据或重建消息之外什么都不做。

我知道一点python,所以我可以使用pygrib,但我不知道如何提取特定纬度和经度的值。

这里有一些 .grb 文件供大家使用。 http://nomads.ncdc.noaa.gov/data/gfs-avn-hi/201402/20140218/

谢谢您的回答,

4

2 回答 2

4

如果您对来自 NOMADS 的数据感兴趣,我建议您通过他们的 THREDDS 数据服务器,这将允许您通过指定纬度/经度来访问数据,如果您愿意,您可以将该数据作为 csv 文件取回。为此,首先访问 NOMADS TDS 网站:

http://nomads.ncdc.noaa.gov/thredds/catalog/catalog.html

您可以在此处找到链接到的示例数据文件:

http://nomads.ncdc.noaa.gov/thredds/catalog/gfs-003/201402/20140218/catalog.html

找到您感兴趣的网格,例如 18Z 运行分析字段:

http://nomads.ncdc.noaa.gov/thredds/catalog/gfs-003/201402/20140218/catalog.html?dataset=gfs-003/201402/20140218/gfs_3_20140218_1800_000.grb

点击“NetcdfService”链接:

http://nomads.ncdc.noaa.gov/thredds/ncss/grid/gfs-003/201402/20140218/gfs_3_20140218_1800_000.grb/dataset.html

在该页面顶部附近,单击“作为点数据集”:

http://nomads.ncdc.noaa.gov/thredds/ncss/grid/gfs-003/201402/20140218/gfs_3_20140218_1800_000.grb/pointDataset.html

然后检查您感兴趣的参数、纬度/经度(将选择最接近该纬度/经度的网格点)和输出格式类型。

这个 Web 界面基本上会生成一个访问 url,如果我想要温度 over Boulder, CO,以 csv 格式返回,这就是它的样子:

http://nomads.ncdc.noaa.gov/thredds/ncss/grid/gfs-003/201402/20140218/gfs_3_20140218_1800_000.grb?var=Temperature_surface&latitude=40&longitude=-105&temporal=all&accept=csv&point=true

正如您从上面的 URL 中看到的,您可以非常轻松地生成这些并发出请求,而无需执行上述所有步骤。

这种访问方法(NetcdfSubsetService)可以很容易地与 Python 结合使用。例如,查看这个 ipython 笔记本:

http://nbviewer.ipython.org/github/Unidata/tds-python-workshop/blob/master/ncss.ipynb

具体来说,笔记本中的第一个和第二个单元格。

请注意,您可以在以下位置获取最近的 GFS 数据,其中整个模型运行包含在一个 grib 文件中:

http://thredds.ucar.edu/thredds/idd/modelsNcep.html

这将允许您发出一个请求,如上面的请求,但多次使用一个请求。

干杯,

肖恩

于 2014-07-23T16:59:27.227 回答
0

您可以使用 grib 工具,特别是 grib_ls 和 grib_get 从最接近指定纬度和经度的 1 个网格点或 4 个网格点获取值。因此,您可以使用最近邻或双线性插值或任何您喜欢的方法来获得价值。阅读此演示文稿,grib_ls 从第 31 页开始:

http://nwmstest.ecmwf.int/services/computing/training/material/grib_api/grib_api_tools.pdf

当您安装 grib 工具时,您将获得一些工具来帮助您使用 GRIB 文件。

于 2014-10-22T15:52:05.397 回答