types

The types module defines the core data structures used throughout the library. These are all plain Python dataclasses.

TrackPoint

A single point along the propagated ground track. The pipeline produces a list of these from the SGP4 propagation step.

@dataclass
class TrackPoint:
    time: datetime
    lat: float
    lon: float
    altitude_km: float | None = None

GeoBox

A geographic bounding box defined by latitude and longitude bounds. The box_id property returns a zero-padded string identifier like "box_006".

@dataclass
class GeoBox:
    lat_min: float
    lat_max: float
    lon_min: float
    lon_max: float
    box_index: int

BoxWindow

The full spatial and temporal descriptor for one download box. Combines a GeoBox with the time window and track index range for that segment.

@dataclass
class BoxWindow:
    box: GeoBox
    t_enter: datetime        # when the object entered the box
    t_exit: datetime         # when the object exited the box
    t_download_start: datetime   # t_enter minus pre-padding
    t_download_end: datetime     # t_exit plus post-padding
    first_track_index: int
    last_track_index: int
    n_points: int

TrackSegment

Precomputed great-circle arc geometry for one segment between two consecutive track points. Used internally by the geodesy module for efficient cross-track distance calculations. All angular values are in radians.