我使用 pygrib 提取给定边界内特定波段的所有 grib 值。该函数将返回一个 Json 对象,其中包含每个分析数据的所有值。
现在我每次运行都要读取大约 73 个 grib,响应速度很慢,现在大约是 3 分钟。
结果应该类似于: Grid Result
您是否知道另一种在 bbox 中提取数据的方法,使用 GDAL 或 ECCODES 等其他工具?
我不能使用 grib2json,因为它不识别 GRIB。
提前致谢
你看过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)