我是xarray的新手,所以我想知道我是否做錯了什麼。爲什麼在將netcdf文件加載到xarray數據集中時,將NaN引入了維變量
我有一個包含三組netCDF文件(A,B,C)的每一個包含具有隻是一個時間維度的若干變量以及一個相應的「time_dimension」變量。時間維度變量爲其值使用Unix時間戳。
在下面我打開netCDF文件並打印出的時間戳的每個組的最小和最大的例子。這給了我預期的時間戳範圍。
我然後從netCDF文件各組加載到使用open_dataset命令xarray數據集。對於這些數據集,我再次輸出時間維座標時間戳的最小值和最大值。最小值與直接讀取netcdf文件得到的最小值相同,但最大值包含兩個組(A和B)的NAN。
雖然我不在代碼顯示它時,NAN值都位於xarray變量值數組的末尾。另外,A組包含4個NAN值,而B組包含更多。另請注意,netcdf變量的大小與每個組的xarray變量相同。
有誰知道爲什麼NAN值被引入到我的時候,他們被導入到從的NetCDF xarray維座標?
這是我用來演示問題
import xarray as XR
from netCDF4 import Dataset
Filename = r'C:\temp\My_data.nc'
#-------------- load netcdf data directly -----------
print('netcdf')
root = Dataset(Filename,'r',format='NETCDF4')
grp = root.groups['A']
dt = grp.variables['time_dimension'][:]
print('group A: ',min(dt), max(dt))
grp = root.groups['B']
dt = grp.variables['time_dimension'][:]
print('group B: ',min(dt), max(dt))
grp = root.groups['C']
dt = grp.variables['time_dimension'][:]
print('group C: ',min(dt), max(dt))
root.close()
print(' ')
print(' ')
#-------------- load netcdf data via xarray -----------
print('xarray loaded from netcdf')
ax = XR.open_dataset(Filename, group='A', decode_times=False)
dt = ax['time_dimension'].values
print('group A: ', min(dt), max(dt))
ax.close()
ax = XR.open_dataset(Filename, group='B', decode_times=False)
dt = ax['time_dimension'].values
print('group B: ', min(dt), max(dt))
ax.close()
ax = XR.open_dataset(Filename, group='C', decode_times=False)
dt = ax['time_dimension'].values
print('group C: ', min(dt), max(dt))
ax.close()
此代碼被上面的代碼
netcdf
group A: 1417532400.0 1480406400.0
group B: 1392129000.0 1439217000.0
group C: 1432913400.0 1436888700.0
xarray loaded from netcdf
group A: 1417532400.0 9.96920996839e+36
group B: 1392129000.0 9.96920996839e+36
group C: 1432913400.0 1436888700.0