Description
What happened?
I have some polynomial coefficients and want to evaluate them at some values using xr.polyval
.
As described in the docstring/docu I created a 1D coordinate DataArray and pass it to xr.polyval
but it raises a KeyError (see example).
What did you expect to happen?
I expected that the polynomial would be evaluated at the given points.
Minimal Complete Verifiable Example
import xarray as xr
coeffs = xr.DataArray([1, 2, 3], dims="degree")
# With a "handmade" coordinate it fails:
coord = xr.DataArray([0, 1, 2], dims="x")
xr.polyval(coord, coeffs)
# raises:
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# File "xarray/core/computation.py", line 1847, in polyval
# x = get_clean_interp_index(coord, coord.name, strict=False)
# File "xarray/core/missing.py", line 252, in get_clean_interp_index
# index = arr.get_index(dim)
# File "xarray/core/common.py", line 404, in get_index
# raise KeyError(key)
# KeyError: None
# If one adds a name to the coord that is called like the dimension:
coord2 = xr.DataArray([0, 1, 2], dims="x", name="x")
xr.polyval(coord2, coeffs)
# works
Relevant log output
No response
Anything else we need to know?
I assume that the "standard" workflow is to obtain the coord
argument from an existing DataArrays coordinate, where the name would be correctly set already.
However, that is not clear from the description, and also prevents my "manual" workflow.
It could be that the problem will be solved by replacing the coord DataArray argument by an explicit Index in the future.
Environment
INSTALLED VERSIONS
commit: None
python: 3.9.10 (main, Mar 15 2022, 15:56:56)
[GCC 7.5.0]
python-bits: 64
OS: Linux
OS-release: 3.10.0-1160.49.1.el7.x86_64
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: en_US.UTF-8
LOCALE: ('en_US', 'UTF-8')
libhdf5: 1.12.0
libnetcdf: 4.7.4
xarray: 2022.3.0
pandas: 1.4.2
numpy: 1.22.3
scipy: None
netCDF4: 1.5.8
pydap: None
h5netcdf: None
h5py: None
Nio: None
zarr: None
cftime: 1.6.0
nc_time_axis: None
PseudoNetCDF: None
rasterio: None
cfgrib: None
iris: None
bottleneck: None
dask: None
distributed: None
matplotlib: 3.5.1
cartopy: 0.20.2
seaborn: None
numbagg: None
fsspec: None
cupy: None
pint: None
sparse: None
setuptools: 58.1.0
pip: 22.0.4
conda: None
pytest: None
IPython: 8.2.0
sphinx: None