Comment ca marche
La limite de vitesse
La vitesse maximale autorisee sur la Seine a Paris est de 12 km/h (6.5 noeuds) dans les zones de navigation les plus centrales. Cette limite est fixee par l'Arrete du 22 novembre 1993 fixant le reglement particulier de police de la navigation sur le reseau fluvial de la ville de Paris (article 12 : vitesse limitee a 12 km/h dans la traversee de Paris) et vise a proteger les berges, les ouvrages d'art et les autres usagers de la voie d'eau.
Les donnees AIS
Chaque bateau de commerce et de transport de passagers est equipe d'un transpondeur AIS (Automatic Identification System). Ce transpondeur emet en continu la position, la vitesse (SOG — Speed Over Ground), le cap et l'identifiant unique du bateau (MMSI). Les signaux sont recus par des stations terrestres et des satellites, puis redistribues en temps reel.
Nous recevons ces donnees via le flux WebSocket gratuit de aisstream.io, filtre sur une zone englobant la Seine a Paris (de Issy-les-Moulineaux a la Villette environ). Les noms des bateaux sont enrichis via la base de donnees ITU MARS de l'Union Internationale des Telecommunications.
Definition d'une infraction
Une infraction est un segment continu de depassement de la limite. Elle est definie comme suit :
- Debut : premier ping AIS ou la vitesse du bateau depasse 6.5 noeuds.
- Fin : le bateau envoie un ping en dessous de la limite, ou aucun ping n'est recu pendant 2 minutes (le bateau a quitte la zone).
- On enregistre la vitesse maximale, la vitesse moyenne, la duree, le nombre de pings et le trajet (point de depart et d'arrivee).
Ce n'est pas une infraction au sens legal — seuls les services de la navigation fluviale (VNF) sont habilites a verbaliser. Il s'agit d'un constat factuel base sur les donnees AIS publiques.
Architecture technique
- Backend : Go, connecte en WebSocket au flux AIS. Stocke les positions et infractions dans PostgreSQL.
- Frontend : Next.js, rendu cote serveur, rafraichi toutes les 30 secondes.
- Donnees : les positions normales sont echantillonnees a 1 par bateau par 5 minutes pour limiter le stockage. Les positions en exces de vitesse sont stockees a pleine resolution (chaque ping).
Code source
Le code source de ce projet est disponible sur GitHub.