Skip to content

distance

distance #

Distance functions measuring statistical similarity between sessions.

A distance function measures how "different" two values are along one dimension, normalized by that dimension's sigma so every metric lands in the same dimensionless units. combine() fuses several into one session metric, each keyword naming the session attribute its metric reads; select_sessions turns the result into coverage energy.

Available Distance Functions

Type-specific: - solar(sigma_deg): Angular separation on the celestial sphere, over SolarPosition values. - location(sigma_m): Geographic separation, over cg.Location. - weather(**sigmas): Multi-dimensional difference, over cg.Weather.

Primitive: - scalar(sigma): Absolute numeric difference. - angle_degrees(sigma_deg): Circular angle distance in degrees. - angle_radians(sigma_rad): Circular angle distance in radians. - time_of_day(sigma): Circular 24-hour clock distance.

Combination: - combine(**metrics): Euclidean combination over session attributes.

Example
import capturegraph.scheduling as cgsh
from datetime import timedelta

dist_fn = cgsh.distance.combine(
    solar_angle=cgsh.distance.solar(sigma_deg=2.0),
    weather=cgsh.distance.weather(sigma_cloud_cover_ratio=0.3),
    date=cgsh.distance.time_of_day(sigma=timedelta(hours=2)),
)