interpolate¶
xarray spline 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: Datasetwith 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
DataArraywith 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 aDataArrayon 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: DataArraywith all dims of the interpolated array, minus the interpolation dim, plus all dims of x_newSee
splrep()for usage example.- x_new – Any