Carto « ancient » Tchoo : archéologie ferroviaire
L'intégralité de cet article a été écrit à la main, chaque mot, chaque ponctuation — et j'ai toujours adoré les tirets cadratins !
Il faut le préciser aujourd'hui hélas, même si je n'ai rien contre l'IA. Je vous parle de création qui vient du cœur, pas de génération automatisée ; mon projet, mes choix, mes idées, mes mots, pour le partager avec vous.

Ça ne vous est jamais arrivé en vacances, de vous balader dans un village, et en passant devant un bâtiment près d'un chemin de terre étonnamment rectiligne, et de vous demander... bah, c'est un BV ça ? (un BV, dans le jargon SNCF, c'est un Bâtiment Voyageurs, autrement dit, une gare !).
Moi si.
Plein de fois.
Y compris sur certaines routes, où mon ingénieur géographe de père (un des pionniers en France des SIG — Systèmes d'Information Géographique — les chats ne font pas des chiens...) me disait : « Tu vois les courbes de cette route ? c'était forcément une ancienne voie ferrée. Regarde, ça c'était la gare, et là on devine le quai dans les fougères. »
Du coup, il y a six mois, je me suis dit que cette donnée devait exister quelque part, on est quand même plein de ferrovipathes sur cette planète, on doit pouvoir trouver des choses dans les communs numériques.
BINGO ! Effectivement, il y a PLEIN de choses. Il en manque aussi plein.
Et un énième projet émergeait : faire une variante « old school » de Carto Tchoo, orientée anciennes voies ferrées. Et bien sûr, toujours à l'échelle de la planète.
Pourquoi « ancient » et pas « old » ?
Excellente question, merci de l'avoir posée ! Parce qu'en informatique, un fichier qui contient « old » est attribué à une ancienne version du fichier, je vous raconte pas la confusion côté code. Et ancien(t) fonctionne aussi en anglais, mais m'a semblé plus explicite dans mon code.
Comment récupérer les données ? Comment les mettre en qualité, les saisir, les améliorer, les vérifier ? Comment faire un rendu « vieille carte » en techno web ?Voici le détail de cette petite aventure que je vous livre aujourd'hui dans https://carto.tchoo.net via un simple petit bouton qui cache plein de choses.


Les données
La data c'est la vie
Si on doit faire l'inventaire, il existe une multitude de sites qui recensent les anciennes voies ferrées, les cartes postales d'époque (je rêve de lier tout ça à la carte... peut-être un jour en mode collaboratif ?) mais pas forcément d'initiative « globale » et surtout normée dédiée au sujet. C'est important pour moi ces histoires de normes (et on verra que même ainsi ce n'est pas toujours parfait) car ça me fait gagner du temps : je ne peux matériellement pas parcourir l'ensemble des milliers de sites et documents, saisir, transformer les données, et espérer qu'il n'y ait pas trop de mises à jour.

Donc, la base, ce sont les communs numériques, ces données auxquelles tout le monde peut participer, contribuer, qui appartiennent à tout le monde et à personne en particulier : Wikipedia & OpenStreetMap.
Récupérer
Dans OpenStreetMap, les données sont catégorisées et normées, c'est drôlement pratique. Si vous ne le saviez pas, les données affichées dans https://carto.tchoo.net viennent désormais essentiellement de cette base de données — oui, OpenStreetMap ce n'est pas une carte, c'est une base de données cartographiques à partir de laquelle on fait des cartes, mais pas que.
Or, comme toute base de données, pour pouvoir l'utiliser à d'autres fins (ici une carte) il faut fabriquer des schémas d'extraction. On ne va pas afficher toutes les poubelles du monde à niveau de zoom 0 (la planète), donc il faut trier et dire ce qu'on affiche, comment, à quel niveau de zoom. On a un schéma générique qui fait du bon boulot mais qui masque les voies ferrées quand on est trop loin.
J'ai donc fabriqué plusieurs schémas pour mes besoins :
- un ferroviaire complet qui contient tout ce qui est des rails avec tout le détail possible, et l'habillage (l'électrification, les tunnels, les ponts, la signalisation, les vitesses, le gabarit, etc.), et tout ce qui est ponctuel, les gares, les heurtoirs, les stations électriques
- un ferroviaire complet « ancient » qui contient la même chose mais avec les tags
railway:disusedourailway:abandoned
C'est le moment RTFM mais j'insiste : les normes c'est ce qui permet l'interopérabilité, autrement dit la communication. Si on communique dans les mêmes normes, on se comprend. Le wiki d'OpenStreetMap est souvent très complet et riche, mangez-en, c'est la vie. C'est ce qui m'a régulièrement sauvé la vie.

Comme c'est contributif, la qualité et la quantité des données varient forcément, quand on a de la chance on a :
| key | value |
|---|---|
| tracks | LineString |
| ID | 870741910 |
| gauge | 1435 |
| railway:track_ref | U |
| ref | 160000 |
| disused:railway | rail |
| name | Ligne de Steinbourg à Schweighouse-sur-Moder |
| railway | disused |
| operator | SNCF Réseau |
Si on n'a pas de chance, on a juste la géométrie de la voie et le tag disused:railway rail
Vous reprendrez bien un peu de technique ?
Au 15 août 2026, le fichier planet.osm.pbf qui contient la totalité des contributions géographiques du projet OpenStreetMap pèse 94Go.
L'extraction des données se fait avec le projet planetiler qui fait du très bon boulot. L'astuce consiste cependant à filtrer au préalable les données ne concernant que le ferroviaire avec osmium osmium tags-filter planet.osm.pbf railway -o planet-railways.osm.pbf .
On obtient alors un fichier de 0,9Go soit 100 fois plus petit, c'est infiniment plus chouette à traiter avec planetiler sans avoir besoin de louer un énorme serveur ponctuellement (ma machine perso avec 32Go de ram et un disque NVME tient la route sans broncher).
Osmium prend 5 à 10min pour filtrer les 94Go en consommant très peu de mémoire, Planetiler pareil, 5 à 10min, avec 12Go de ram allouée par le process java. C'est une affaire qui tourne (tellement que j'ai d'autres schémas en préparation pour d'autres données spéciales — non, pas les poubelles à niveau zéro).
Les fichiers finaux (au format pmtiles) font au final :
- 2,1Go pour le ferroviaire classique (j'ai ajouté les routes commerciales, qui représentent 600Mo en plus à cause des tracés, je ne m'en sers pas encore, ça viendra dans une fonctionnalité à venir)
- 248Mo pour le ferroviaire ancien
- 976Mo pour les arbres (je vous ai dit que j'avais d'autres schémas, j'ai pas dit que ce serait utile)
Voilà, il n'y a plus qu'à dessiner la carte avec ces nouvelles données !
Mais avant, parlons contribution et amélioration des données.
Contribuer
OpenStreetMap c'est gratuit et ouvert. Mais il faut bien compléter et renseigner les données, et ça ne se fait pas tout seul.
CONTRIBUEZ ! CONTRIBUEZ !
On est déjà beaucoup à le faire, mais même un petit truc de temps en temps, ça ne vous coûte rien, et ça rendra d'autres personnes heureuses de voir que la vieille gare de quand ils étaient petits est bien renseignée, que la voie ferrée est bien nommée et tracée, qu'il y a même les vieux points kilométriques, ou que la poubelle sur le quai est bien placée (!).
Il m'est arrivé de me balader sur une voie ferrée désaffectée — quand un arbre d'un mètre de diamètre pousse au milieu on est à peu près sûr qu'aucun train ne passera — et de prendre quelques photos géolocalisées de signalisation, de points kilométriques, et une fois rentré, de compléter OpenStreetMap, grâce à mes photos, pendant que la pluie battait son plein près de cette jolie petite ligne normande abandonnée.
Mais on ne peut pas toujours tout faire à pied, c'est long, c'est lent. C'est là où la photographie aérienne peut aider énormément, et pas que. Wikipédia a une fonctionnalité géniale, très souvent complétée par des passionnés. On en parle dans un cas concret.
Cas concret de contribution : l'ancienne Ligne de Dieppe à Fécamp SNCF n°357000

Déjà, on a de l'opendata, alors pas forcément l'opendata SNCF actuel qui a été nettoyé des anciennes données, mais les versions des années 2010 contenaient encore pas mal de données sur des voies abandonnées, notamment les points kilométriques. Tout est disponible sur mon dépôt github en opendata également, j'en ai fabriqué une version interpolée, pas parfaite, mais globalement tout à fait réaliste à 90/95%.
Mais des fois il y a des choses qui n'existent tout simplement pas dans les données géographiques. Alors première étape, la page wikipédia de la ligne, bien souvent, même ancienne, elle existe et contient une foule d'informations.
Et celle de la Ligne de Dieppe à Fécamp, comme la plupart des autres pages de lignes ferroviaires ou routières, contient un truc génial : le schéma de la ligne.
Il faut cliquer dessus pour le déplier et là... magie :

Toute la ligne « topologique » y est. On a les points kilométriques des gares et points remarquables, leurs altitudes, et même les liens vers les gares ou villages en question pour obtenir d'autres informations.
Cela permet de vérifier avec les autres sites dont on parlait avant si tout est conforme, et le cas échéant de compléter wikipedia (qui fait une excellente source de vérité), via notamment wikidata.
Ensuite, direction l'éditeur d'OpenStreetMap (j'utilise celui en ligne qui suffit pour mes besoins). Prenons par exemple la gare de Saint-Pierre-le-Viger - Fontaine-le-Dun. Le bâtiment existe bien mais il n'est pas référencé comme une gare : c'est normal, c'est la mairie !
Mais qu'à cela ne tienne, OpenStreetMap prévoit le coup, dans ce cas il faut dire que le bâtiment est une gare dans son aspect building=train_station et une mairie dans son usage building:use=civic. Il suffit d'y ajouter un old_name avec le nom de la gare, et si on est un peu zélé, aller sur le site de la mairie pour y glaner les horaires d'ouverture, numéro de téléphone, adresse, mail, site internet, etc. pour compléter OpenStreetMap.
Attention : c'est le bâtiment, pas le point d'arrêt des trains, donc il ne faut pas cartographier ça avec adandoned:railway=station comme l'indique le wiki d'OpenStreetMap.


En cas de doute, on peut utiliser Panoramax (ou un concurrent dont-on-taira-le-nom) pour vérifier la photo du bâtiment, et que c'est bien une gare.

Mais ce n'est pas fini ! Nous avons le bâtiment mais pas le point, le nœud sur la ligne. Dans ce cas-là, j'ai placé le point juste au milieu du bâtiment en parallèle sur la ligne (ou du quai s'il est encore visible sur les photos aériennes). Dans ce cas on peut utiliser adandoned:railway=station pour le point.

Cette gare est cartographiée abandoned car les voies ont disparu et son usage également mais la ligne est toujours visible. Si la ligne était encore là, ce serait disused
D'ailleurs, à ce sujet, le wiki d'OpenStreetMap est très complet, on vous explique comment et quoi cartographier.

Une règle simple pour OpenStreetMap : on ne cartographie que ce qui est visible, même si c'est un peu. Quand tout a disparu, il existe un autre projet frère d'OpenStreetMap : OpenHistoricalMap dédié à cartographier ce qui n'existe plus. Le Phare d'Alexandrie y aurait toute sa place.

Quelques tips quand c'est vraiment compliqué ?
On peut s'aider de pas mal de choses. Évidemment, aller sur le terrain, discuter avec les locaux c'est l'idéal. Mais il y a beaucoup de sites de vieilles cartes postales de gares, des sites de passionnés dédiés à une ligne de chemin de fer, d'anciennes cartes, ici ou là, en conjonction avec les photos de Panoramax pour étudier la forme des bâtiments, ou aériennes.
Fun fact, une fois la gare était perdue au milieu d'une usine industrielle et faisait office de bâtiment administratif... mais ressemble toujours à une gare d'après les photos officielles trouvées sur le site institutionnel de l'usine. Donc, hop, building=train_station et je peux sereinement placer le point abandoned:railway=station sur l'ancien tracé de la ligne existant.
Une autre solution, qui fonctionne bien en France c'est d'utiliser les cartes papiers de 1950, scannées et nommées SCAN 50 1950 par l'IGN (encore eux !) puisque les anciennes gares peu identifiables y sont bien repérées.

Et comme ils sont formidables (et moi aussi), je vous ai ajouté désormais la couche directement dans Carto Tchoo histoire de vérifier l'emplacement des anciens bâtiments voyageurs.


Dessiner une carte à l'ancienne
Et c'est bien galère
En 2026, fabriquer des cartes en ligne n'a jamais été aussi facile techniquement. Mais facile techniquement ne veut pas dire que ce sera joli, pratique, rapide, efficace, etc. La moindre variation de couleur se voit immédiatement en cartographie, bien plus que dans une interface, et la qualité des cartes anciennes est sans égal : c'est fait à la main.
J'ai une profonde affection pour les cartes, sûrement aussi parce que je faisais mes premiers dessins d'enfant sur des cartes mises au pilon par l'IGN pour en faire des blocs brouillon, que mon père utilisait :

Donc je me suis mis en quête de regarder comment on faisait les cartes à l'époque et comment j'allais pouvoir techniquement reproduire, au moins en partie, certaines choses sur carto tchoo.
Dessiner la carte
Recherche
Ça ne s'invente pas, je ne suis pas géographe, ni informaticien, ce sont des passions pas des métiers pour moi, donc j'ai dû apprendre sur le tas, et rien de mieux que de regarder ce que d'autres ont fait comme ceci ou encore cela.
Puis de me documenter, c'est quoi une vieille carte ferroviaire ? Pas mal de ressources sur internet, comme cette énorme page de veilles cartes ferroviaires françaises. Et en fouillant à droite à gauche, je me suis fait une petite galerie d'inspiration :






Le texte
L'exemple de carte qui m'a le plus intéressé c'était celle-ci, de la région lyonnaise :

A cause des polices de caractère. Je me suis rendu compte que finalement, ce qui compte le plus dans une vieille carte, ce sont les fontes. Le choix éclairé fait les 2/3 du rendu.
Et j'y ai passé un sacré bout de temps, notamment sur le fabuleux dafont.com pour y trouver les perles rares. Avec un challenge de taille : il faut que ça reste lisible, équilibré, et que les polices sans-serif fonctionnent avec les polices serif.
Je ne suis pas mécontent du résultat :

Mais il y a certains cas où c'est... compliqué. Il n'y a pas que l'alphabet latin dans la vie. Et mes jolies polices ne couvraient pas toute la gamme des alphabets cyrilliques, à base d'idéogrammes, ou arabes, hébreux, en lecture de droite à gauche (RTL). Challenge technique car il faut le gérer ça au niveau du contenu comme de l'affichage.



Ukraine, Japon, Irak
Ce n'est pas toujours parfait et il manque des choses sûrement, je prends les retours bien sûr, mais je ne pourrai pas corriger les données : mais vous, oui ;-)
Le style
Un peu comme un samedi après-midi pluvieux quand on va à Leroy-Merlin, le style commence par un choix de couleurs et de papier-peint. Ici j'ai fait simple, un fond style vieux papier, et deux couleurs, l'une issue du vieux papier, et un marron pas trop dégueu en guise de noir. Rien que ça, plus les polices, ça commençait à bien rendre.
Mais le plus compliqué ce fut les textures : il faut les rendre raccordables, faire en sorte que si j'en fais une mosaïque, on ne voit pas que le motif se répète. Ça prend un temps fou pour que ça soit propre, et ne comptez pas sur l'IA, elle sait pas vraiment faire, c'est souvent moche, il faut le faire à la main. Alors j'ai pris Inkscape et j'ai dessiné. Des petites vagues moches, des jolies vagues plus grosses, des arbres moches (que je n'ai pas mis au final) et des rayures pour les quais.


Alors vus comme ça en gros c'est pas dingo, mais sur la carte ça rend vraiment bien.



Gare de Lausanne, nœud de tramway à Zurich, port de la gare de Kehl près du Rhin
Ensuite, un vert léger pour les arbres, des bâtiments semi-transparent toujours en variantes du marron trouvé initialement ; d'ailleurs c'est ça le secret, prendre une référence simple, qui fonctionne et dériver depuis. En musique on fait un peu pareil, on trouve un gimmick, un refrain, une ligne mélodique et on construit autour.
It's gonna be legend... wait for it... just legend
La légende en cartographie c'est important. Alors voilà, j'ai fait des choix, ils sont discutables, ils sont révisables, ils ne sont pas définitifs ; c'est six mois de réflexion et de compromis, ce n'est pas toujours évident : que veut-on montrer ou pas, et comment, quelle importance donner à quel objet ?
Et les lignes touristiques, sont-elles des lignes abandonnées dédiées à un usage touristique ou sont-elles actives ? Les contributeurs OpenStreetMap ne sont pas d'accord entre eux, alors j'ai mis les deux en même temps, on verra bien.

Et les autres couches ?
C'est compliqué de tout faire coexister ensemble, j'ai fait le choix de laisser libre à l'utilisateur de régler l'opacité des couches, comme le font d'autres outils de cartographie (notamment l'excellent cartes.gouv.fr). Ça permet de mixer différentes choses et notamment de comparer les tracés des anciennes voies avec les photos aériennes et cartes de 1950 ou les cartes anciennes fournies aimablement et gratuitement par l'IGN (merci à eux !).

Dessiner l'interface
Au début je voulais partir sur du steampunk, mais mes talents de dessinateurs sont quasi inexistants, et recourir à l'IA ne me plaisait pas, c'est vite surchargé, et au final pas utilisable pour un site web moderne responsive.
Je me suis contenté de choisir une texture de bois et une de cuivre, de filtrer un peu avec le CSS pour faire ces effets chatoyants « incrustés » toujours en conservant les couleurs originelles pour la carte.
D'ailleurs le sens est important : d'abord la carte, les couleurs primaires, la vision globale, et ensuite on décline l'interface à partir de cela.


Les tooltips en cuivre, les bandeaux en bois, l'effet incrusté, et une tentative vite faite pour décorer la partie temps-réel.

Je ne suis pas peu fier de mon bandeau des paramètres avec sa petite loupiote jaune, presque on entend le clic des boutons poussoirs (l'inspiration des interrupteurs de Dieter Rams designer pour Braun n'est pas fortuite...).
Enfin, j'avoue avoir fait l'impasse sur la partie recherche et « à propos », c'est pas le plus important, urgent. Surtout que j'ai prévu de tout refaire de ce côté-là un jour. On verra.
Conclusion
1900 vs 2000 : c'est douloureux


Et oui, désormais vous pouvez comparer n'importe quelle région du monde d'un clic sur la densité ferroviaire. Et le moins qu'on puisse dire, ça fait mal. Surtout à l'aube d'un monde où les conséquences du tout-voiture se font chaudement sentir.
Je vous avoue, à titre très personnel, ne pas comprendre que nous soyons un pays qui finance aussi peu le ferroviaire (vs nos voisins européens), et qu'on débatte encore de la construction de nouvelles autoroutes : c'est non. L'avenir c'est le transport en commun, la mutualisation des ressources et des services, la rentabilité écologique. Après le vélo, le train reste le moyen de transport le plus efficient possible, c'est prouvé, validé. Plein de voies existent encore et pourraient être réouvertes.
Et ce que n'ont toujours pas compris nos décideurs politiques (car il s'agît avant tout d'un problème étatique et pas d'entreprises ferroviaires) : l'offre doit précéder la demande. S'il y a des trains efficaces, les gens abandonneront la voiture. Mais pour ça, il faudrait réfléchir à moyen, long terme.


Pas de jaloux, c'est pareil au Royaume Uni.
À suivre...
Voilà, nouvelle fonctionnalité, dans un carto tchoo qui sera toujours gratuit, sans pub, juste pour le plaisir, la joie de partager ma passion du ferroviaire informatique avec vous. J'ai une liste de fonctionnalités et idées longue comme le bras, ça viendra, l'IA me permet d'aller plus vite sur pas mal de choses, mais je garde la main et le contrôle sur l'ensemble, le code, le contenu, tout est vérifié et reviewé.
Carto Tchoo c'est une histoire d'inventer, créer, fabriquer, faire, pour partager, offrir, pour le plaisir — et tout le plaisir est là, justement. Alors, merci de m'avoir lu, merci d'utiliser mon projet pour votre propre plaisir, et à bientôt pour la suite !
Nicolas.
