在 xarray 中显示带有 NaN 值的 cartopy 面网格图时出现 ValueError

ValueError when displaying cartopy facet-grid map with NaN values in xarray

我尝试使用带有 NaN 值(针对海域)的 xarray 显示季节性分面网格图,代码如下:

ds = xr.open_dataset("../data/full_data_monthly_v2018_025.nc")
prKepri = ds['precip'].sel(lat = slice(-0.49, -4.7), lon = slice(103.37, 109.1))
data = prKepri.groupby('time.season').mean(dim='time', skipna = False)
proj = ccrs.PlateCarree()
p = data.plot(col = 'season', robust = True, cmap = 'magma_r', col_wrap =2,
             subplot_kws=dict(projection=proj), transform=ccrs.PlateCarree())
for ax in p.axes.flat:
    ax.coastlines();

然后 xarray 给我报错:

ValueError: zero-size array to reduction operation minimum which has no identity

我尝试使用 skipna = False 参数。但问题仍然存在。 我使用 GPCC 再分析数据:https://opendata.dwd.de/climate_environment/GPCC/full_data_2018/full_data_monthly_v2018_025.nc.gz.

我使用 xarray v 0.16.0

这是 matplotlib 3.3.1 中的一个 bug,会导致 CartoPy 0.18 出现问题。在 matplotlib 3.3.2 发布之前,最简单的 work-around 很可能安装 matplotlib 3.3.0。