time
time
#
Circular time-of-day distance between two moments.
Measures distance between times accounting for the circular nature of the 24-hour clock. Midnight is close to 11:59 PM.
TimeOfDayDistanceFunction
#
Bases: BatchedDistanceFunction[datetime]
Shortest separation on the 24-hour clock, normalized by sigma.
Source code in capturegraph-lib/capturegraph/scheduling/distance/time.py
__call__(a, b)
#
Shortest separation on the 24-hour clock between a and b.
Source code in capturegraph-lib/capturegraph/scheduling/distance/time.py
__init__(sigma=timedelta(hours=1))
#
Normalize the 24-hour clock separation by sigma.
extract(items)
#
Extract each moment's fractional hour-of-day as a single-column array.
Source code in capturegraph-lib/capturegraph/scheduling/distance/time.py
pairwise(features_a, features_b)
#
Compute pairwise circular time-of-day distances from extracted features.
Source code in capturegraph-lib/capturegraph/scheduling/distance/time.py
time_of_day(sigma=timedelta(hours=1))
#
Create a circular time-of-day distance function.
Measures the angular distance on the 24-hour clock, treating time as circular (so 11:59 PM is close to 12:01 AM).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sigma
|
timedelta
|
Normalization factor as timedelta. The returned distance is
normalized so times within |
timedelta(hours=1)
|
Returns:
| Type | Description |
|---|---|
TimeOfDayDistanceFunction
|
A distance function |
Example
import capturegraph.scheduling as cgsh
from datetime import timedelta
# Sessions within 2 hours are "close"
dist_fn = cgsh.distance.time_of_day(sigma=timedelta(hours=2))
# Use with combine for custom attribute
combined = cgsh.distance.combine(
time_of_day=cgsh.distance.time_of_day(sigma=timedelta(hours=1))
)