2017-01-26 75 views
0

我使用open_dataset打開由MITgcm生成的netcdf輸出。但是,DataSet中的其中一個座標變量會作爲整個DataSet而不是DataArray返回。Xarray - 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類型的座標,它回來作爲DataSet

type(ds.T) 
# xarray.core.dataset.Dataset 

當我檢查的任何其他座標/變量的類型,他們回來爲

xarray.core.dataarray.DataArray 

ds.T座標看起來與ds相同。例如,如果我向ds添加一個變量,它也會添加到ds.T.它也似乎是無限遞歸的,例如ds.T.T.T是同一個對象。

在底層netcdf文件中,T維與其他維之間的唯一區別是T具有無限維。

T = UNLIMITED ; // (4 currently) 

不過,我已經創建了一個具有無限尺寸的虛擬netCDF文件和問題沒有再出現。

我試過用decode_times,decode_cf和decide_coords = False沒有區別。

我使用xarray版本0.8.2,運行python 2.7.12。

回答

相關問題