我有多个 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 不能用于执行此操作。
这是 xarray 可以理解的行为。您正在合并具有标准日历的文件和具有无闰年日历的文件,即没有 2 月 29 日的文件。
在内部,这些日历将以不兼容的方式表示(它们将使用“自 X 以来的秒数”,并且这些日历的定义不同),因此 xarray 无法合并它们。你有两个选择。将所有文件转换为标准日历,或将所有文件转换为无闰年选项。您还没有解释您的用例,所以我不能说哪种方法是正确的。
如果您想将所有文件转换为闰年免费格式,您可以使用我的软件包 nctoolkit。您可以对一个文件执行以下操作:
import nctoolkit as nc
ds = nc.open_data("foo.nc")
ds.no_leaps()
ds.to_nc("bar.nc")