xarray 中是否有 DataArray.sel(time = slice(x, y)) 的另一种替代方法?

Is there another alternative to DataArray.sel(time = slice(x, y)) in xarray?

出于某种原因,DataArray.sel(time = slice(x, y)) 在 1 月到 6 月期间对我来说没有任何问题,其中 x 和 y 都等于范围内的值从一月的 1 到六月的 6。但是,这种方法不适用于 7 月到 12 月。我已经检查了输入数据,它是一个 netCDF4 文件并且没有损坏。因此,我正在寻找一种替代方法来代替 xarray 中的 DataArray.sel(time = slice(x, y)) 来提取 7 月至 12 月的数据。

代码如下:

import xarray as xr
td = xr.open_dataset(r'C:\Users\abc\Desktop\misc\netcdf_to_geotiff\ECLIPSEv5_monthly_patterns.nc')
td_agr = td.agr
td_agrtime = td_agr.sel(time = slice('1', '1'))

给出输出:

In [7]: td_agrtime
Out[7]: 
<xarray.DataArray 'agr' (time: 1, lat: 360, lon: 720)>
[259200 values with dtype=float64]
Coordinates:
* lat      (lat) float64 -89.75 -89.25 -88.75 -88.25 ... 88.75 89.25 
89.75
* lon      (lon) float64 -179.8 -179.2 -178.8 -178.2 ... 178.8 179.2 
179.8
* time     (time) int32 1
Attributes:
long_name:  Monthly weights - Agriculture (animals, rice, soil)
sector:     Agriculture (animals, rice, soil)

如果把代码中的1改成7如下:

td_agrtime = td_agr.sel(time = slice('7', '7')

输出是:

In [7]: td_agrtime
Out[9]: 
<xarray.DataArray 'agr' (time: 6, lat: 360, lon: 720)>
[1555200 values with dtype=float64]
Coordinates:
* lat      (lat) float64 -89.75 -89.25 -88.75 -88.25 ... 88.75 89.25 
89.75
* lon      (lon) float64 -179.8 -179.2 -178.8 -178.2 ... 178.8 179.2 
179.8
* time     (time) int32 7 8 9 10 11 12
Attributes:
long_name:  Monthly weights - Agriculture (animals, rice, soil)
sector:     Agriculture (animals, rice, soil)

感谢罗伯特戴维的评论。答案是使用.isel(),而不是.sel()