aggregate

function of dascore.proc.aggregate source

aggregate(
    patch: Patch ,
    dim: str | collections.abc.Sequence[str, collections.abc.Sequence[str], None] = None,
    method: str | collections.abc.Callable[str, Callable] = mean,
    dim_reduce: str | collections.abc.Callable[str, Callable] = empty,
)-> ‘PatchType’

Aggregate values along a specified dimension.

Parameters

Parameter Description
patch The input Patch.
dim The dimension along which aggregations are to be performed.
If None, apply aggregation to all dimensions sequentially.
If a sequence, apply sequentially in order provided.
dim_reduce How to reduce the dimensional coordinate associated with the
aggregated axis. Can be the name of any valid aggregator, a callable,
“empty” (the default) which returns a length 1 partial coord, or
“squeeze” which drops the coordinate. For dimensions with datetime
or timedelta datatypes, if the operation fails it will automatically
be applied to the coordinates converted to floats then the output
converted back to the appropriate time type.
method The aggregation to apply along dimension. Options are:
first
last
max
mean
median
min
std
sum

See Also

Examples

import numpy as np
import dascore as dc
patch = dc.get_example_patch()

# Calculate mean along time axis
patch_time = patch.aggregate("time", method=np.nanmean)

# Calculate median distance along distance dimension
patch_dist = patch.aggregate("distance", method=np.nanmedian)

# Calculate the mean, and remove the associated dimension
patch_mean_no_dim = patch.aggregate(
    "time", method="mean", dim_reduce="squeeze"
)

# Aggregate by the min value and keep the mean of the dimension
patch_mean_min = patch.aggregate(
    "distance", method="min", dim_reduce="mean",
)