1

我使用 pygrib 提取给定边界内特定波段的所有 grib 值。该函数将返回一个 Json 对象,其中包含每个分析数据的所有值。

现在我每次运行都要读取大约 73 个 grib,响应速度很慢,现在大约是 3 分钟。

结果应该类似于: Grid Result

您是否知道另一种在 bbox 中提取数据的方法,使用 GDAL 或 ECCODES 等其他工具?

我不能使用 grib2json,因为它不识别 GRIB。

提前致谢

4

1 回答 1

1

你看过cfgrib 吗?它是 xarray 的 grib 引擎。使用 xarray,您将拥有大量用于 grib 数据集的服务和应用程序。xarray 遵循数据立方体原则。

例如,如果您已将数据加载到 axarray.Dataset中,则可以使用 where 函数将数据切片到您的 bbox:

import xarray

dataset = xarray.open_dataset('path to grib file', engine='cfgrib')

# or for multiple files 
dataset = xarray.open_dataset(['path_to_grib1', 'path_to_grib2', ...], engine='cfgrib')

dataset.where((dataset.latitude > min_lat) & 
              (dataset.latitude < max_lat) & 
              (dataset.longitude > min_lon) &
              (dataset.longitude < max_lon), drop=True)
于 2020-06-05T06:37:39.290 回答