簡體   English   中英

Xarray-DataArray作為數據集打開

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM