-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
MCVE Code Sample
import xarray as xr
i1 = xr.cftime_range("4991-01-01", periods=1)
i2 = xr.cftime_range("7190-12-31", periods=1)
i2 - i1
Expected Output
a timedelta
Problem Description
returns OverflowError: Python int too large to convert to C long
. Originally I stumbled upon this when trying to open_mfdataset
files from a long simulation (piControl). I did not figure out yet where this subtraction happens in open_mfdataset
. (Opening the single files and using xr.concat
works).
The offending lines are here
xarray/xarray/coding/cftimeindex.py
Line 433 in 40588dc
return pd.TimedeltaIndex(np.array(self) - np.array(other)) |
Ultimately this is probably a pandas problem as it tries to convert datetime.timedelta(days=803532)
to '<m8[ns]'
. pd.TimedeltaIndex
has a (undocumented) dtype
argument but I was not able to make anything else work (e.g. '<m8[D]'
).
Output of xr.show_versions()
INSTALLED VERSIONS
commit: None
python: 3.7.3 | packaged by conda-forge | (default, Jul 1 2019, 21:52:21)
[GCC 7.3.0]
python-bits: 64
OS: Linux
OS-release: 4.12.14-lp151.28.25-default
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: en_GB.UTF-8
LOCALE: en_US.UTF-8
libhdf5: 1.10.4
libnetcdf: 4.6.2
xarray: 0.14.0+44.g4dce93f1
pandas: 0.25.2
numpy: 1.17.3
scipy: 1.3.1
netCDF4: 1.5.0.1
pydap: None
h5netcdf: 0.7.4
h5py: 2.9.0
Nio: None
zarr: None
cftime: 1.0.4.2
nc_time_axis: 1.2.0
PseudoNetCDF: None
rasterio: 1.0.22
cfgrib: None
iris: None
bottleneck: 1.2.1
dask: 2.6.0
distributed: 2.6.0
matplotlib: 3.1.1
cartopy: 0.17.0
seaborn: 0.9.0
numbagg: None
setuptools: 41.4.0
pip: 19.3.1
conda: None
pytest: 5.2.2
IPython: 7.9.0
sphinx: 2.2.1