Isochrones Suisse — notes

notes.md modifié le 12 octobre 2026 3 min de lecture

Sommaire

Refonte de la carte Suisse de Mapnificent : jusqu'où aller en transports publics en un temps donné, depuis ou vers un ou plusieurs points.

Ce que fait la page

Données en ligne

Horaire officiel 2026 (GTFS gtfs_fp2026_20260930.zip, opentransportdata.swiss), valable du 14.12.2025 au 12.12.2026. Semaine de référence : 2 au 8 novembre 2026. Environ 30 000 arrêts dans un cadre autour de la Suisse.

La page affiche en pied de panneau un avertissement dès que la date de fin de validité est passée.

Mise à jour au changement d'horaire (décembre)

Le nouvel horaire entre en vigueur le 13.12.2026. Pour mettre la carte à jour :

  1. Télécharger le GTFS de l'horaire 2027 sur opendata.swiss : jeu « Timetable 2027 (GTFS2020) », fichier gtfs_fp2027_AAAAMMJJ.zip, le plus récent (environ 300 Mo).

  2. Le donner à Claude avec la consigne « mets à jour les isochrones avec ce GTFS ». Claude lance, depuis la racine du clone :

    python3 -I tools/isochrones/depuis_gtfs.py gtfs_fp2027_….zip \
        public/perso/voyages/isochrones-suisse/data --horaire 2027

    Le calcul prend environ deux minutes et demande Python 3 et numpy.

  3. Envoyer avec GitHub Desktop.

Le script fait seul le reste :

Pour imposer une semaine : --date AAAAMMJJ (un lundi).

Méthode

Modèle par fréquences : pour chaque créneau, on compte les passages réels de chaque ligne à chaque arrêt, le jour de référence. L'attente à une correspondance vaut la moitié de l'intervalle (réglable), plus un temps de correspondance ; les variantes d'une même ligne qui partent dans la même direction sont additionnées. Le calcul est un plus court chemin exact (Dijkstra) sur les états « à pied à l'arrêt » et « à bord ». Marche en ligne droite majorée de 20 %, correspondances à pied jusqu'à 400 m. Tout tourne dans le navigateur ; seuls le fond de carte, la recherche d'adresses et le nom des arrêts sur la carte viennent de geo.admin.ch.

Limite connue : un même train peut figurer sous deux libellés (IC et IC1) ; ils sont comptés comme deux lignes.

Fichiers

Fichier Rôle
index.html, app.css, app.js interface
worker.js calcul en arrière-plan : temps, grille, courbes, rendez-vous
moteur.js lecture du réseau et plus courts chemins (aussi utilisable sous Node)
data/reseau.json manifeste : désigne le réseau courant et sa validité
data/reseau-<empreinte>.bin réseau au format ISO1 (décrit dans tools/isochrones/reseau_format.py)

Générateurs dans tools/isochrones/ : depuis_gtfs.py (horaire officiel), depuis_mapnificent.py (ancien réseau 2017 de Mapnificent, pour mémoire).

Bibliothèques : Leaflet 1.9.4, d3-contour 4.0.2 et d3-array 3.2.4, servies depuis /assets/vendor/.