# OpenStreetMap geographic data used by GAHUM

Recorded 2026-10-14. © OpenStreetMap contributors. OSM-derived data are
available under [ODbL 1.0](https://opendatacommons.org/licenses/odbl/1-0/).
GAHUM's proprietary code notice adds no restrictions to this geographic data.

## Complete bundled geographic subset

Download [the five-point geographic extract](./5bus-osm-geography.json).
It contains every supplied five-bus station name and coordinate pair, with
its bus association ID. The source OSM IDs, extraction date and revision were
not retained; the review date is not an invented source timestamp. No corridor
database, electrical model values or SLD coordinates are bundled in this file.
The original teaching electrical networks do not model actual Ontario assets.

Problem JSON downloads containing geography carry a conditional source/license
notice and this extract's URL. The notice distinguishes supplied OSM-derived
fields from user-entered data; it does not license an entire Power System,
Problem or Study Report under ODbL. Preserve source notices when copying or
adapting supplied geographic data.

## Live infrastructure and corridor alteration method

Maps require the user's explicit choice. The browser queries Overpass for
power infrastructure within the visible bounding box padded by 30%. The request contains geographic bounds, not
electrical model inputs. Data change over time; another query may return a
different OSM snapshot. The exact query construction and filtering are in
[the distributed app script](./app.js), in `fetchPowerInfrastructure`.

The complete routing method is distributed in [line-route.js](./line-route.js).
Its inputs are the returned Overpass `elements` array and the geographic bus
endpoints. To reproduce the altered geographic routes for a captured input:

1. Keep OSM power-line ways and their referenced nodes. Build graph edges from
   consecutive way nodes, retaining positions and OSM node identities.
2. Join nearby **way termini**, never interior nodes, using the method's
   published distance bounds. These synthetic joins approximate switchyards;
   they are not new facts asserted by OSM.
3. Snap each geographic bus endpoint to the nearest eligible graph node,
   within the method's published snap bounds.
4. Find the length-weighted graph path between the snapped endpoints, subject
   to the method's circuity/refusal limits. Use the straight fallback where a
   path is unavailable or refused. Simplify accepted node paths with
   Douglas–Peucker, then attach the original geographic bus endpoints.
5. Retain the endpoint additions, synthetic joins and selected coordinate
   paths as changes to the geographic graph. Keep electrical branch ratings,
   power flows and SLD geometry separate.

The distributed routing implementation is the exact algorithm account,
including numeric bounds and refusal rules; this prose identifies its data
and alterations. Geographic results and this alteration-method account may
be used to reconstruct the OSM-derived database under ODbL without additional
GAHUM restrictions. This is a data/method offer, not a blanket license for
unrelated application code or electrical data. It does not authorize bulk
tile downloading. The point extract is not the source of a live corridor.

Preserve the linked map credits and consult
[OSM copyright/licensing](https://www.openstreetmap.org/copyright) for the
original database. The map and data licenses are separate from provider
request/cache policies and the operator's privacy commitments.
