Может ли кто-нибудь воспроизвести такое поведение xarray при сохранении времени с большими значениями? Я немного в недоумении от того, что здесь происходит.
Изменить: кажется, что xarray делает что-то не так, если числовое значение «время» превышает определенный порог. Обратите внимание, что это происходит только для «дней с тех пор», а не, например, для «секунд с тех пор».
Я использую Python 3 и xarray версии 0.10.7.
import numpy as np
import xarray as xr
# print('xarray version: {}'.format(xr.__version__))
ds = xr.Dataset(coords={'time': (
'time',
np.arange(106300.5, 106665.5+5*365, 365),
{'units': 'days since 1800-01-01 00:00:00'})})
# print(ds.time)
ds = xr.decode_cf(ds)
# print(ds.time)
ds.to_netcdf('./test.nc')
ds = xr.open_dataset('./test.nc', decode_cf=False)
print(ds.time)
Вне:
<xarray.DataArray 'time' (time: 6)>
array([ 106300.5 , 106665.5 , -106473.482335, -106108.482335,
-105743.482335, -105378.482335])
Coordinates:
* time (time) float64 1.063e+05 1.067e+05 -1.065e+05 -1.061e+05 ...
Attributes:
_FillValue: nan
units: days since 1800-01-01
calendar: proleptic_gregorian
Изменить: вот содержимое файла с ncdump:
netcdf test {
dimensions:
time = 6 ;
variables:
double time(time) ;
time:_FillValue = NaN ;
time:units = "days since 1800-01-01" ;
time:calendar = "proleptic_gregorian" ;
// global attributes:
:_NCProperties = "version=1|netcdflibversion=4.4.1.1|hdf5libversion=1.10.1" ;
data:
time = 106300.5, 106665.5, -106473.482334601, -106108.482334601,
-105743.482334601, -105378.482334601 ;
}
test.nc
? - person sophros   schedule 04.07.2018