interpolate¶
xarray interpolation functions
-
xarray_extras.interpolate.
splrep
(a, dim, k=3)¶ Calculate the univariate B-spline for an N-dimensional array
Parameters: - a (xarray.DataArray) – any
DataArray
- dim – dimension of a to be interpolated.
a.coords[dim]
must be strictly monotonic ascending. All int, float (not complex), or datetime dtypes are supported. - k (int) –
B-spline order:
k interpolation kind 0 nearest neighbour 1 linear 2 quadratic 3 cubic
Returns: Dataset
with t, c, k (knots, coefficients, order) variables, the same shape and coords as the input, that can be passed tosplev()
.Example:
>>> x = np.arange(0, 120, 20) >>> x = xarray.DataArray(x, dims=['x'], coords={'x': x}) >>> s = xarray.DataArray(np.linspace(1, 20, 5), dims=['s']) >>> y = np.exp(-x / s) >>> x_new = np.arange(0, 120, 1) >>> tck = splrep(y, 'x') >>> y_new = splev(x_new, tck)
Features
- Interpolate a ND array on any arbitrary dimension
- dask supported on both on the interpolated array and x_new
- Supports ND x_new arrays
- The CPU-heavy interpolator generation (
splrep()
) is executed only once and then can be applied to multiple x_new (splev()
) - memory-efficient
- Can be pickled and used on dask distributed
Limitations
- Chunks are not supported along dim on the interpolated dimension.
- a (xarray.DataArray) – any
-
xarray_extras.interpolate.
splev
(x_new, tck, extrapolate=True)¶ Evaluate the B-spline generated with
splrep()
.Parameters: - x_new – Any
DataArray
with any number of dims, not necessarily the original interpolation dim. Alternatively, it can be any 1-dimensional array-like; it will be automatically converted to aDataArray
on the interpolation dim. - tck (xarray.Dataset) –
As returned by
splrep()
. It can have been:- transposed (not recommended, as performance will drop if c is not C-contiguous)
- sliced, reordered, or (re)chunked, on any dim except the interpolation dim
- computed from dask to numpy backend
- round-tripped to disk
- extrapolate –
- True
- Extrapolate the first and last polynomial pieces of b-spline functions active on the base interval
- False
- Return NaNs outside of the base interval
- ’periodic’
- Periodic extrapolation is used
- ’clip’
- Return y[0] and y[-1] outside of the base interval
Returns: DataArray
with all dims of the interpolated array, minus the interpolation dim, plus all dims of x_newSee
splrep()
for usage example.- x_new – Any