Source code for edges.analysis.groupdays

"""Functions for grouping GSData objects together."""

from collections.abc import Sequence

from pygsdata import GSData, gsregister
from pygsdata.concat import concat


[docs] @gsregister("gather") def group_days(*data: Sequence[GSData]) -> list[GSData]: """Group multiple GSData objects together by days.""" sublists = {} for d in data: yd = d.get_initial_yearday() if yd not in sublists: sublists[yd] = [d] else: sublists[yd].append(d) # Ensure they're sorted sublists = {k: sorted(v, key=lambda x: x.times.min()) for k, v in sublists.items()} return [concat(x, axis="time") for x in sublists.values()]