harmonica.filters.unpad#
- harmonica.filters.unpad(da, pad_width=None, **pad_width_kwargs)[source]#
Unpad an array and its coordinates.
Undo the padding process of the
harmonica.filters.padfunction by slicing the passedxarray.DataArrayand its coordinates.- Parameters:
- da
xarray.DataArray Padded array. The coordinates along which the array will be padded must be evenly spaced.
- da
- Returns:
- da_unpaded
xarray.DataArray Unpadded array.
- pad_width
mappingofhashabletotupleofint(optional) Mapping with the form of {dim: (pad_before, pad_after)} describing the number of values padded along each dimension. {dim: pad} is a shortcut for pad_before = pad_after = pad. If
None, then the pad_width for each coordinate is read from theirpad_widthattribute.- **pad_width_kwargs (
optional) The keyword arguments form of
pad_width. Passpad_widthorpad_width_kwargs.
- da_unpaded
See also
Examples
>>> import xarray as xr
>>> import pytest >>> from packaging.version import Version >>> if Version(xr.__version__) < Version("2025.10.1"): ... pytest.skip("This doctest works only in Xarray >= 2025.10.1")
>>> da = xr.DataArray( ... [[1, 2, 3], [4, 5, 6], [7, 8, 9]], ... coords={"x": [0, 1, 2], "y": [-5, -4, -3]}, ... dims=("y", "x"), ... ) >>> da_padded = pad(da, x=2, y=1) >>> da_padded <xarray.DataArray (y: 5, x: 7)> Size: 280B array([[0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 2, 3, 0, 0], [0, 0, 4, 5, 6, 0, 0], [0, 0, 7, 8, 9, 0, 0], [0, 0, 0, 0, 0, 0, 0]]) Coordinates: * y (y) int64 40B -6 -5 -4 -3 -2 * x (x) int64 56B -2 -1 0 1 2 3 4 >>> unpad(da_padded) <xarray.DataArray (y: 3, x: 3)> Size: 72B array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) Coordinates: * y (y) int64 24B -5 -4 -3 * x (x) int64 24B 0 1 2
Custom
pad_width>>> unpad(da_padded, x=1, y=1) <xarray.DataArray (y: 3, x: 5)> Size: 120B array([[0, 1, 2, 3, 0], [0, 4, 5, 6, 0], [0, 7, 8, 9, 0]]) Coordinates: * y (y) int64 24B -5 -4 -3 * x (x) int64 40B -1 0 1 2 3