我有一个 17GB 的 GRIB 文件,其中包含2020 年每小时的温度 ( t2mlongitude
) 数据。数据集的维度是、latitude
和time
。
我的目标是计算全年数据中每个坐标(经度、纬度)的最高温度。我可以使用 Xarray 很好地加载文件,但需要 4-5 分钟:
import xarray as xr
xarray_dataset = xr.open_dataset('cds/2020_hourly_t2m.grib', engine='cfgrib')
但是调用xarray.Dataset.max()
会导致 Google Colab 会话崩溃。这可能是因为它需要的不仅仅是可用内存。
因此,我可能需要使用 Dask 以块的形式加载数据,并对这些块进行计算并聚合结果。我是 Dask 的新手,发现使用 Dask.Array API 分块读取气候数据集文件很困难。我已经尝试过dask.array.from_array( xarray_dataset.to_array() )
,但这也使会话崩溃。
我的问题是,我应该如何使用 Dask 读取这个 17GB 的 GRIB 文件并计算数据集中每个 lon、lat 对的全年最高温度?