将具有相同变量(但来源不同)的多个 netcdf 文件加载到一个 xarray 数据集中

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

我有多个 netcdf 格式的数据文件,它们位于不同的文件夹中。我想将它们全部加载在一起。所有这些都针对相同的变量、相同(或几乎相同)的时期,但来源不同。如何快速加载所有内容? (我可以将它们单独加载为不同的 xarray 数据集,但我有太多)

我尝试使用:

xr.open_mfdataset('/media/rakshith/Seagate Expansion Drive/Good models/*.nc', concat_dim=None)

但是我收到错误:

TypeError: Cannot combine along dimension 'time' with mixed types. Found: DatetimeProlepticGregorian, DatetimeNoLeap.

这让我认为 open_mfdataset 不能用于执行此操作。

python geospatial netcdf python-xarray
1个回答
0
投票

这是 xarray 可以理解的行为。您正在合并具有标准日历的文件和具有无闰年日历的文件,即没有 2 月 29 日的文件。

在内部,这些日历将以不兼容的方式表示(它们将使用“自 X 以来的秒数”,并且这些日历的定义不同),因此 xarray 无法合并它们。你有两个选择。将所有文件转换为标准日历,或将所有文件转换为无闰年选项。您还没有解释您的用例,所以我不能说哪种方法是正确的。

如果您想将所有文件转换为闰年免费格式,您可以使用我的软件包 nctoolkit。您可以对一个文件执行以下操作:

import nctoolkit as nc
ds = nc.open_data("foo.nc")
ds.no_leaps()
ds.to_nc("bar.nc")
© www.soinside.com 2019 - 2024. All rights reserved.