[英]Xarray - DataArray opens as a Dataset
我正在使用open_dataset打开MITgcm产生的netcdf输出。 但是,DataSet中的坐标变量之一作为整个DataSet而不是DataArray回来。
该过程似乎正常工作:
import xarray as xr
ds = xr.open_dataset('state.0000000000.nc')
<xarray.Dataset>
Dimensions: (T: 8, X: 16, Xp1: 17, Y: 16, Yp1: 17, Zld000100: 100, Zmd000100: 100)
Coordinates:
* T (T) float64 1.296e+05 3.888e+05 6.48e+05
* X (X) float64 500.0 1.5e+03 2.5e+03
* Y (Y) float64 4.85e+04 4.95e+04
* Xp1 (Xp1) float64 0.0 1e+03 2e+03
* Yp1 (Yp1) float64 4.8e+04 4.9e+04
* Zmd000100 (Zmd000100) int64 0 1 2
* Zld000100 (Zld000100) int64 0 1 2
Data variables:
iter (T) int32 1296 3888
diag_levels (Zmd000100) float64 1.0
(在这里我省略了输出的一些细节)。 但是,当我检查T坐标的类型时,它作为数据集返回
type(ds.T)
# xarray.core.dataset.Dataset
当我检查其他任何坐标/变量的类型时,它们会以
xarray.core.dataarray.DataArray
ds.T坐标似乎与ds是同一对象。 例如,如果我将变量添加到ds,它也将添加到ds.T。 它还似乎是无限递归的,例如ds.TTT是同一对象。
在基础的netcdf文件中,T维和其他维之间的唯一区别是T具有无限维。
T = UNLIMITED ; // (4 currently)
但是,我创建了一个虚拟netcdf文件,该文件的大小不受限制,并且该问题没有再次发生。
我已经尝试过使用decode_times,decode_cf和decision_coords = False,没有区别。
我正在使用运行python 2.7.12的xarray版本0.8.2。
您需要像ds['T']
一样访问变量T
ds.T
进行转置。 另请参阅: 如何使用xarray读取名为“ T”的变量?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.