Source code for satpy.tests.modifier_tests.test_filters
"""Implementation of some image filters."""
import logging
import dask.array as da
import numpy as np
import xarray as xr
from satpy.modifiers.filters import Median
[docs]
def test_median(caplog):
"""Test the median filter modifier."""
caplog.set_level(logging.DEBUG)
dims = "y", "x"
coordinates = dict(x=np.arange(6), y=np.arange(6))
attrs = dict(units="K")
median_filter_params = dict(size=3)
name = "median_filter"
median_filter = Median(median_filter_params, name=name)
array = xr.DataArray(da.arange(36).reshape((6, 6)), coords=coordinates, dims=dims, attrs=attrs)
res = median_filter([array])
filtered_array = np.array([[1, 2, 3, 4, 5, 5],
[6, 7, 8, 9, 10, 11],
[12, 13, 14, 15, 16, 17],
[18, 19, 20, 21, 22, 23],
[24, 25, 26, 27, 28, 29],
[30, 30, 31, 32, 33, 34]])
np.testing.assert_allclose(res, filtered_array)
assert res.dims == dims
assert attrs.items() <= res.attrs.items()
assert res.attrs["name"] == name
np.testing.assert_equal(res.coords["x"], coordinates["x"])
np.testing.assert_equal(res.coords["y"], coordinates["y"])
assert "Apply median filtering with parameters {'size': 3}" in caplog.text