从 GRIB 文件中提取特定坐标和 date/times 的天气数据

Pulling weather data from a GRIB file for specific coordinates and date/times

我有一个包含 ECMWF 预报的 GRIB 文件,我很想根据坐标输入从中提取数据。例如,提供坐标,并获取未来 5 天特定时间的预报(风速、阵风速度、风向、波高..)。

我认为 Python 可能是完成此任务的最佳选择。有人能指出我正确的方向吗?给我一点点。

我猜二进制文件需要转换为 JSON(或其他可读格式),然后我才能根据提供的坐标解析并查找数据?

在本机 Python 中执行此操作的一种方法是使用 xarray and cfgrib. Here is a tutorial。这是教程中的关键代码:

    import xarray as xr
    ds = xr.tutorial.load_dataset('<your_grib>.grib', engine='cfgrib')

完成此操作后,grib 文件中的所有字段都将可用。一般形式为

    ds.<field_name>[<index>].values

请注意,与使用美国国家气象局提供的 GRIB 工具相比,此代码非常慢。查看 degrib. Most of the weather processing code is written in C and Fortran, because it is so much faster than Python。根据您可用的计算资源和数据大小,您可能无法在 Python 中处理整个 grib 文件,然后它包含的预测将过期。

最后,GIS stack exchange 上对这个话题进行了更广泛的讨论。 “grib”是那边的标签。