Visualise, à partir d'un GTFS, combien de véhicules attendent à une gare de terminus entre le dernier arrêt d'une course et le premier arrêt de la course suivante — et combien de quais sont nécessaires pour absorber les départs.
Par défaut : réseau Car Jaune (La Réunion, ZIP d'août 2026 embarqué dans
public/gtfs/), lignes E1, E1X, E2, E3, Gare de St-Denis, le
2 septembre 2026.
npm install
npm run dev- Les arrêts sont identifiés par leur nom (
stop_name), pas par leur id : les quais d'une même gare sont regroupés. - Les courses d'un même service voiture sont chaînées par
block_id. Si le block se termine parchiffres + lettre(/[0-9]+[A-Z]$/), la lettre finale est retirée :SCO07MetSCO07A→ même véhiculeSCO07(idemSO-15M). - Un véhicule attend en gare si sa course suivante repart de la même gare moins de 1 h 30 (réglable de 20 min à 6 h) après son arrivée. Au-delà, il est réputé quitter la gare (dépôt / haut-le-pied). Un enchaînement dont l'arrivée et le départ ne sont pas dans la même gare n'est pas compté.
- Chaque départ mobilise un quai 15 min (réglable de 5 à 60 min) avant l'heure de départ ; un véhicule à quai n'est plus compté en attente. L'arrivée n'occupe pas de quai (dépose instantanée).
- Les courses sans
block_idsont des véhicules indépendants : jamais en attente, mais elles occupent un quai avant leur départ.
- Vite + React 19 + TypeScript + Tailwind CSS v4
- Le GTFS est chargé dans une base SQLite en mémoire par
gtfs-sqljs (adaptateur sql.js),
exécuté dans un Web Worker exposé via comlink
(
src/worker/gtfs.worker.ts). - Le worker renvoie les courses du jour réduites à leurs extrémités ; le moteur
d'analyse (
src/lib/analysis.ts) tourne côté interface et recalcule instantanément quand on bouge les curseurs. - Changement de source GTFS via
react-gtfs-selector
(fichier local, URL, transport.data.gouv.fr, Mobility Database). Les URL
bloquées par CORS passent automatiquement par le proxy
gtfs-proxy.sys-dev-run.re.
- Véhicules en attente — courbe en escalier 00:00 → 24:00, tooltip listant les véhicules (block_id normalisé, course d'arrivée → course de départ).
- Quais occupés — même axe, tooltip listant les départs à quai.
- Roulement des véhicules — Gantt : un rang par véhicule, courses colorées
par ligne avec leur
trip_short_name, attentes (bleu) et quais (orange). - Tableau des départs — vue dépliable, accessible sans survol.