【发布时间】:2021-05-11 10:50:39
【问题描述】:
我很想在 xarray 和打开多个 netcdf 文件方面获得您的帮助。我有几个包含 lat、lon、time 作为维度的 .nc 文件。这些文件给出了从 1850-01 到 2100-12 的每月大气温度。每个文件都包含不同气候模型的数据。现在我想组合文件来绘制多模型时间序列并查看多模型均值。只需使用 xr.open_dataset 打开每个文件即可,但 open_mfdataset 不能。 这些是我要打开的文件:
tas_Amon_CNRM-ESM2-1_hist_ssp119_r1i1p1f2_gr_185001-210012.nc
tas_Amon_CanESM5_hist_ssp119_r10i1p1f1_gn_185001-210012.nc
tas_Amon_EC-Earth3-Veg-LR_hist_ssp119_r1i1p1f1_gr_185001-210012.nc
tas_Amon_EC-Earth3_hist_ssp119_r4i1p1f1_gr_185001-210012.nc
tas_Amon_GFDL-ESM4_hist_ssp119_r1i1p1f1_gr1_185001-210012.nc
tas_Amon_GISS-E2-1-G_hist_ssp119_r1i1p1f2_gn_185001-210012.nc
tas_Amon_IPSL-CM6A-LR_hist_ssp119_r1i1p1f1_gr_185001-210012.nc
等等……
我申请了
import xarray as xr
xr.open_mfdataset('path/to/file/*.nc', concat_dim=time)
我的第一个错误是关于具有不同日历的文件(因此时间维度是 datetime64 或对象 - 即格式在某些文件中是日期时间格式,而在其他文件中是字符串格式)。在对该问题进行深入研究并将几个函数和 cmets 添加到 xr.open_mfdataset(preprocess=...、combat_by、concat_dim 等)之后,我无法将时间坐标转换为相同的格式。
然后我发现使用ncks -A -v time file1.nc file2.nc 我可以用文件1 的时间坐标覆盖file2 的时间坐标。将xr.open_mfdataset 和concat_dim='time' 应用于这些新改编的文件会给我一个新错误“每个维度都需要用于推断连接顺序的坐标”。
现在我想知道是否必须将文件放在同一个网格上才能使用 xr.open_mfdataset 打开它们?
我也已经尝试只打开两个具有相同时间坐标 (datetime64) 的文件,它给了我以下错误:ValueError: Could not translate 'tas_Amon_EC-Earth3_hist_ssp119_r4i1p1f1_gr_185001-210012.'作为一个数字
这让我现在非常模糊,几天以来我都没有消除错误并想,你可能知道为什么会发生这些错误,或者曾经有过同样的错误吗?
【问题讨论】:
标签: python netcdf python-xarray