【发布时间】:2021-02-18 16:34:13
【问题描述】:
我有一个nc 文件,其中的时间变量有点奇怪。它不是公历,而是简单的一年 365 天日历(即不包括闰年)。这意味着该单元也有点偏离,但没有什么太令人担忧的。
xarray.DataArray 'days' (time: 6570)>
array([730817., 730818., 730819., ..., 737384., 737385., 737386.])
Dimensions without coordinates: time
Attributes:
units: days_since_Jan11900
long_name: calendar_days
730817 代表01-01-2001 和737386 代表31-12-2018
我想获取数据集的某个时间段多年,就像您可以使用cdo -seldmonth, -selday 等一样。但是当然,没有日期,我不能使用其他出色的选项。我的想法是用np.slice 分割我需要的时间范围,但我不知道如何并且似乎无法在 SO 上找到足够的答案。
在我的具体情况下,我需要从每年 5 月 30 日(一年中的第 150 天)到 8 月 18 日(一年中的第 229 天)之间进行切片。我知道第一片应该是这样的:
ds = ds.loc[dict(time = slice(149,229))]
但是,这只会给我 2001 年的范围,而不是接下来的几年。
我不能用cdo -ntime 来做,因为它不能识别时间单位。
如何确保在接下来的 17 年内也能获得该范围?在我需要的范围之间跳过 285 天?
【问题讨论】:
-
亲爱的托马斯,你试过
ds.sel(time=[149, 229])吗?您可能必须将time设置为坐标。 xarray.pydata.org/en/stable/indexing.html -
嗨@dl.meteo。感谢你的回复!它还可以手动选择我需要的每个范围,因此在范围之间跳过 285 天。谢谢!
标签: python netcdf python-xarray cdo-climate