xarray를 처음 사용하므로 잘못된 작업을하고 있는지 알고 싶습니다.netcdf 파일을 xarray 데이터 세트로로드 할 때 치수 변수에 NaN이 도입되는 이유
각각 'time_dimension'변수뿐만 아니라 시간 차원 만 갖는 여러 변수가 포함 된 세 개의 그룹 (A, B, C)을 포함하는 netcdf 파일이 있습니다. 시간 차원 변수는 값에 유닉스 타임 스탬프를 사용합니다.
아래 예제에서는 Netcdf 파일을 열고 각 그룹의 타임 스탬프의 최소 및 최대 값을 인쇄합니다. 이것은 나에게 시간 소인의 예상 범위를 제공합니다.
그런 다음 open_dataset 명령을 사용하여 netcdf 파일의 각 그룹을 xarray 데이터 세트로로드합니다. 이 데이터 세트의 경우 시간 차원 좌표 타임 스탬프의 최소 및 최대 값을 다시 인쇄합니다. min 값은 netcdf 파일을 직접 읽음으로써 얻은 것과 동일하지만 최대 값에는 두 개의 그룹 (A와 B)에 대한 NAN이 포함됩니다.
코드에 표시하지 않지만 NAN 값은 모두 xarray 변수 값 배열의 끝에 있습니다. 또한 그룹 A에는 4 개의 NAN 값이 포함되어 있었고 그룹 B에는 상당히 많은 수가 포함되어있었습니다. 또한 netcdf 변수의 크기는 각 그룹의 xarray 변수와 같습니다.
NAL 값을 netcdf에서 xarray로 가져올 때 내 시간 차원 좌표에 NAN 값이 도입되는 이유를 아는 사람이 있습니까?
이 I 문제
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