根据xarray.Dataset中的时间索引打印出具体变量

Print out specific variables based on time index in xarray.Dataset

我完全迷路了,不知道该怎么做。

我使用 nc = xarray.open_dataset(...) 访问了一个 netCDF 文件。数据集包含以下内容:

<xarray.Dataset>
Dimensions:    (latitude: 121, longitude: 261, time: 8760)
Coordinates:
  * longitude  (longitude) float32 -20.0 -19.75 -19.5 -19.25 ... 44.5 44.75 45.0
  * latitude   (latitude) float32 55.0 54.75 54.5 54.25 ... 25.5 25.25 25.0
  * time       (time) datetime64[ns] 1979-01-01 ... 1979-12-31T23:00:00
Data variables:
    u10        (time, latitude, longitude) float32 ...
    v10        (time, latitude, longitude) float32 ...
    msl        (time, latitude, longitude) float32 ...
Attributes:
    Conventions:  CF-1.6
    history:      2020-11-24 08:15:21 GMT by grib_to_netcdf-2.16.0: /opt/ecmw...
    

使用 nc.to_dataframe(),我能够像这样打印出“更好看”的数据格式:

从这里开始,我想打印出 9 月的 u10(以及后来的 v10)值,即从 1979-01-01 00:00:001979-10-01 00:00:00nc的索引是一个

MultiIndex([(55.0, -20.0, '1979-01-01 00:00:00'), ... names=['latitude', 'longitude', 'time'], length=276649560)

我不确定 MultiIndex 部分是否有帮助。任何正确方向的帮助或提示都将非常有用,过去三天我一直坚持这一点。

欢迎来到堆栈溢出。这是 how to ask a question.

的指南

我建议先学习 xarray 的基础知识。他们有一些写得很好的examples on how to get started. For your case, check these examples on how to select data.

你的情况

t1 = '1979-01-01 00:00:00'
t2 = '1979-10-01 00:00:00'
## select data from t1 till t2
a = nc.u10.sel(time=slice(t1, t2))
print(a)