iduedu.get_public_transport_graph

iduedu.get_public_transport_graph(*, osm_id=None, territory=None, transport_types=None, clip_by_territory=False, osm_edge_tags=None, transport_registry=None, avg_boarding_time_min=1.0)[source]

Build a directed public-transport graph for one or multiple transport modes within a territory.

The function resolves a boundary (by osm_id or territory), downloads OpenStreetMap public-transport routes inside that boundary, converts them into a projected UrbanGraph, and computes per-edge length (meters) and travel time (minutes). Multiple modes can coexist in the same graph; node ids are unified across modes.

For the subway mode, additional station context may be added (entrances/exits and inter-station transfers), and available station metadata may be merged into node attributes.

Parameters:
  • osm_id (int | None) – OSM relation/area id of the territory. Provide this or territory.

  • territory (Polygon | MultiPolygon | GeoDataFrame | None) – Boundary geometry in EPSG:4326 (or a GeoDataFrame). Used when osm_id is not given.

  • transport_types (str | list[str] | None) –

    Transport mode(s) to include. Accepts:
    • None: include all types available in transport_registry.rst;

    • str: a single OSM route type, e.g. "bus";

    • Sequence[str]: multiple types, e.g. ["tram", "bus", "trolleybus", "subway"].

    Values are normalized with strip().lower() and validated against the registry.

  • clip_by_territory (bool) – If True, clip the resulting graph to the boundary (in the local CRS).

  • osm_edge_tags (list[str] | None) – Subset of OSM tags to retain on edges/nodes. If None, a default subset is used.

  • transport_registry (TransportRegistry | None) – Transport registry used to validate transport types and to compute per-edge travel times (via each mode’s parameters such as max speed, acceleration/braking distances, and traffic coefficient). If None, DEFAULT_REGISTRY is used.

  • avg_boarding_time_min (float) – Time penalty added to directed platform-to-stop boarding edges. Stop-to-platform alighting edges are added with zero travel time. Default is 1 minute.

Return type:

UrbanGraph

Returns:

Directed PT UrbanGraph with crs and type="public_transport".