Source code for ndpyramid.coarsen

from __future__ import annotations  # noqa: F401

import xarray as xr

from .create import pyramid_create


[docs] def pyramid_coarsen( ds: xr.Dataset, *, factors: list[int], dims: list[str], **kwargs ) -> xr.DataTree: """Create a multiscale pyramid via coarsening of a dataset by given factors Parameters ---------- ds : xarray.Dataset The dataset to coarsen. factors : list[int] The factors to coarsen by. dims : list[str] The dimensions to coarsen. kwargs : dict Additional keyword arguments to pass to xarray.Dataset.coarsen. """ def coarsen(ds: xr.Dataset, factor: int, dims: list[str], **kwargs): # merge dictionary via union operator kwargs |= {d: factor for d in dims} return ds.coarsen(**kwargs).mean() # type: ignore return pyramid_create( ds, factors=factors, dims=dims, func=coarsen, method_label="pyramid_coarsen", type_label="reduce", **kwargs, )