Skip to content

pysmo.tools.utils #

Pysmo's little helpers.

Functions:

average_datetimes #

average_datetimes(
    datetimes: Sequence[datetime],
) -> datetime

Average a sequence of datetimes.

Parameters:

Returns:

  • datetime

    Datetime representing average of all datetimes.

Raises:

  • ValueError

    If an empty sequence is provides as input.

Source code in pysmo/tools/utils.py
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
def average_datetimes(datetimes: Sequence[datetime]) -> datetime:
    """Average a sequence of datetimes.

    Parameters:
        datetimes: Datetimes to average.

    Returns:
        Datetime representing average of all datetimes.

    Raises:
        ValueError: If an empty sequence is provides as input.
    """
    if len(datetimes) == 0:
        raise ValueError("Cannot average empty sequence of datetimes.")
    reference_time = datetimes[0]
    seconds = sum((i - reference_time).total_seconds() for i in datetimes[1:])
    return reference_time + timedelta(seconds=seconds / len(datetimes))