Données ouvertes · vélo-partage

aVélo Québec — analyses du réseau

Ce que l'on peut apprendre d'un réseau de vélo-partage en écoutant simplement son flux public, station par station, quatre fois par minute.

226stations suivies
2385vélos (flotte estimée)
28jours collectés
15 spas d'échantillonnage

Le réseau aVélo de Québec publie l'état de ses stations dans un flux GBFS public (PBSC — même fournisseur que BIXI) : pour chaque station, le nombre de vélos disponibles, mis à jour toutes les 12 à 15 secondes. Depuis le 23 juin 2026, une machine enregistre ce flux en continu. Les pages et figures ci-dessous sont ce qu'on en tire : de la carte d'occupation jusqu'à l'estimation du nombre de trajets d'une journée — un problème étonnamment subtil, parce que le flux ne montre que le solde des allées et venues.

1Cartes interactives

Trois pages vivantes, régénérées automatiquement à partir des données fraîches.

2Analyse en composantes principales

Les « jours-types » du réseau, extraits sans hypothèse préalable.

Pour une journée donnée, chaque station fournit un vecteur de 1440 valeurs (les vélos disponibles, minute par minute, heure de Québec). On empile les ~226 stations et on fait l'ACP entre stations : les vecteurs propres sont donc des profils temporels — des journées types — et les valeurs propres disent quelle part de la variabilité du réseau chacune explique.

Après z-score par station (on retire le niveau et l'amplitude, il ne reste que la forme du jour), la première composante est l'axe origine ↔ destination : un score élevé = station qui se vide le matin et se remplit le soir (université, centres d'achat, parcs-O-bus) ; un score faible = le contraire, un quartier résidentiel. Les suivantes captent un renflement d'après-midi (PC2), une double pointe (PC3), un décalage de fin de journée (PC4).

Rapport ACP normalisée du 18 juillet 2026
18 juillet 2026, ACP centrée + normalisée. Les quatre premières composantes (PC1 = 44,4 % de la variance) et les nuages de scores PC1-PC2 et PC3-PC4. Cliquer pour la version pleine résolution (SVG).
Rapport ACP normalisée du 24 juin 2026
24 juin 2026 (Fête nationale), ACP centrée + normalisée. PC1 = 37,3 % : la journée est moins bien décrite par le seul axe domicile-travail qu'un jour ordinaire, la demande étant redistribuée par l'événement.
Nuage 3D des scores PC1×PC2×PC3
Les stations dans l'espace PC1 × PC2 × PC3 (24 juin, normalisé) : le réseau n'a pas de groupes tranchés, c'est un continuum entre origines et destinations.

Sans normalisation, l'ACP est dominée par une PC1 quasi plate qui n'exprime que la taille de la station (≈ 50 % de la variance) — utile pour vérifier, inutile pour comprendre. Les deux variantes sont produites pour chaque journée.

Sur l'ensemble des données, pas une seule journée

Une journée isolée porte son lot d'accidents : une averse, un événement, une panne de rééquilibrage. En mettant en commun les 26 journées complètes collectées (les journées partielles s'excluent d'elles-mêmes), le bruit se moyenne et l'axe principal ressort beaucoup plus net : PC1 = 60 % de la variance contre ~44 % sur un jour, et 82 % avec seulement deux composantes.

ACP sur 26 journées, profil moyen par station
Une ligne par station, moyennée sur 26 journées (centré + normalisé). La PC1 est négative de 4 h à 7 h et positive de 9 h à 22 h : un score élevé désigne une station vide à l'aube et pleine l'après-midi.

Et l'axe change de nature. Sur une journée de semaine, la PC1 est l'axe domicile-travail. Sur 26 jours d'été mis en commun, ce sont les pôles touristiques du Vieux-Québec qui occupent l'extrémité positive — Château Frontenac, Hôtel de ville, Musée des plaines d'Abraham, Cathédrale Holy Trinity — contre des stations résidentielles à l'autre bout : Bayard/Boisseau, Parc de l'Anse-à-Cartier, Chapdelaine/De Belmont, 26e Rue. L'été, le réseau sert d'abord la promenade, et ça se lit dans la première composante.

ACP où chaque station-jour est une observation
Une ligne par couple station-jour (5853 observations) : la dispersion d'un jour à l'autre reste visible. Semaine (bleu) et fin de semaine (rouge) sont complètement mêlées — la forme de la journée d'une station tient à la station, pas au jour de la semaine.

3Vélos en circulation

Combien de vélos sont hors des racks à un instant donné ?

Le flux ne dit pas la taille de la flotte, seulement ce qui est amarré. On l'estime par le maximum atteint la nuit, quand presque tout est stationné — puis, à chaque instant, en circulation = flotte − amarrés. C'est un plafond du nombre de trajets en cours : ça inclut les camions de rééquilibrage et les vélos en atelier.

Vélos en circulation, série temporelle et profil journalier
En haut : la série complète depuis le 23 juin. En bas : le profil journalier moyen (médiane et quartiles). Creux nocturne vers 5 h, bosse du midi, et une pointe du soir très marquée vers 21 h.

Sur les 28 jours collectés : flotte estimée 2385 vélos, médiane 263 en circulation, pointe de soirée ordinaire vers 800, et des soirées d'événement qui dépassent 1300 — la Fête nationale et le Festival d'été se lisent directement dans la courbe. Ce sont des événements réels, pas des anomalies de mesure.

4Champ de remplissage

Traiter le taux de remplissage comme un champ scalaire sur la ville.

Le taux de remplissage d'une station (vélos disponibles / capacité) est interpolé entre les stations — interpolation cubique, masquée au-delà de ~900 m d'une station pour ne pas peindre le fleuve ni les zones sans réseau. Rouge = vide, vert = plein. On voit alors le réseau se vide, pas seulement de combien.

Champ de remplissage à quatre instants du 10 juillet 2026
10 juillet 2026, soirée du Festival d'été. À 21 h, presque toute la ville est rouge (médiane 5 %, 145 stations quasi vides) sauf une poche verte centrale : le site du festival, où tout le monde a laissé son vélo. À minuit, la redistribution est déjà bien avancée.
Le film — 12 h à minuit, une image par minute. L'aspiration vers le centre en soirée puis la redistribution nocturne (1 Mo, MP4).

5Comptage de trajets

Le problème le plus intéressant du lot : on ne voit que le solde.

Compter les trajets semble facile : par station et par minute, une baisse du nombre de vélos est un départ, une hausse une arrivée. Le 10 juillet, ce comptage naïf donne 17 180 trajets, avec une concordance départs/arrivées de 0,4 % — rassurant. Mais le chiffre officiel du réseau ce jour-là est 19 628 : il manque 12,5 %.

La raison n'est pas le rééquilibrage, c'est le sous-échantillonnage. On n'observe que la variation nette N = A − D ; or

A + D = |A − D| + 2 · min(A, D)

Le terme 2·min(A,D) — une arrivée et un départ dans le même intervalle — est strictement invisible. Il est d'autant plus gros que la station est brassée. D'où deux façons de le récupérer :

Estimateur 1 — coïncidences de Poisson

En modélisant arrivées et départs comme deux Poisson indépendants, on ajoute 2·E[min(A,D)]. Limite intrinsèque : les taux sont estimés sur les nets déjà tronqués, donc ce sont des bornes inférieures — la correction sous-corrige.

Estimateur 2 — variance de Skellam

La différence de deux Poisson suit une loi de Skellam, dont la moyenne et la variance séparent proprement le solde et le débit :

E[N] = α − δ Var[N] = α + δ

La variance des nets donne donc le débit total α+δ même quand le solde est nul : on récupère le trafic par les fluctuations plutôt que par la moyenne. Cet estimateur surestime légèrement (non-stationnarité, scintillement ±1 du flux).

MéthodeToutes stationsSans station 122
Brut Σ|N|/2 (borne basse)17 18016 610
Coïncidence Poisson18 80018 000
Chiffre officiel du réseau19 628
Variance de Skellam (fenêtre 7 min)21 46319 489
Variance-différence (Allan)~24 900~22 600

La vérité est donc encadrée : brut < coïncidence < officiel < variance. La moyenne sous-estime, la variance surestime, et la variance à fenêtre courte en écartant la station temporaire des Plaines (corrompue par du staging d'employés et un parc externe invisible au flux) tombe à 19 489, à 0,7 % du chiffre officiel.

Le vrai remède est expérimental, pas statistique. Le flux a un ttl de 12 s et se rafraîchit toutes les 12–15 s : depuis le 11 juillet, la collecte échantillonne à 15 secondes plutôt qu'à la minute. À ce rythme min(A,D) → 0 et le comptage brut converge vers le vrai compte, sans aucun modèle.

6Méthode et collecte

Rien d'autre qu'un flux public et un cron.

Toutes les heures sont en heure locale de Québec (UTC−4). Une station de test du fournisseur, aux coordonnées (0, 0), est écartée de toutes les analyses — laissée en place, elle écrasait à elle seule la première composante.