Source code for satpy.modifiers.filters
"""Tests for image filters."""
import logging
import xarray as xr
from satpy.modifiers import ModifierBase
logger = logging.getLogger(__name__)
[docs]
class Median(ModifierBase):
"""Apply a median filter to the band."""
def __init__(self, median_filter_params, **kwargs): # noqa: D417
"""Create the instance.
Args:
median_filter_params: The arguments to pass to dask-image's median_filter function. For example, {size: 3}
makes give the median filter a kernel of size 3.
"""
self.median_filter_params = median_filter_params
super().__init__(**kwargs)
def __call__(self, arrays, **info):
"""Get the median filtered band."""
from dask_image.ndfilters import median_filter
data = arrays[0]
logger.debug(f"Apply median filtering with parameters {self.median_filter_params}.")
res = xr.DataArray(median_filter(data.data, **self.median_filter_params),
dims=data.dims, attrs=data.attrs, coords=data.coords)
self.apply_modifier_info(data, res)
return res