获得给定边界的grib值的替代(更快)方法?

问题描述 投票:1回答:1

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

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

结果应该是这样的:Grid Result

您知道使用其他工具(如GDAL或ECCODES)在bbox中提取数据的另一种方法吗?

我无法使用grib2json,因为它无法识别GRIB。

预先感谢

python gdal grib pygrib
1个回答
0
投票

您看过cfgrib。它是xarray的grib引擎。借助xarray,您可以为grib数据集提供大量的服务和应用程序。 xarray遵循数据立方体原理。

例如如果您已将数据加载到xarray.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)
© www.soinside.com 2019 - 2024. All rights reserved.