繁体   English   中英

在 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() ,我能够像这样打印出“更好看”的数据格式:

在此处输入图像描述

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

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

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

欢迎来到堆栈溢出。 这是有关如何提问的指南。

我建议先学习xarray的基础知识。 他们有一些关于如何开始的写得很好的例子 对于您的情况,请查看这些示例,了解如何获取 select 数据。

在你的情况下

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM