Vélib, statistiques et Google Maps
jeudi 13 septembre 2007 à 02:22
Petites perturbations cette nuit car je travaille sur une représentation graphique des stations sur une carte Google Maps.
Il s'agit de représenter graphiquement la densité des stations Vélib' (ratio nombre de vélos/nombre de places libres) On pourra ainsi aisément déterminer si le quartier dans lequel on souhaite prendre un vélo est pourvu, ou surtout si on trouvera à destination un emplacement libre !
En cliquant sur chaque station, on a un lien direct vers la courbe des 2 dernières heures, permettant de se faire une idée sur la tendance.
Cela devrait ressembler à ça :
L'image a été réalisée avec des données réelles, autour de 1h30. On voit bien les quartiers où les gens dorment, pleins de vélos (15ème, sud 14ème, 10/11/12, ...), ceux où l'on sort (1/2/5/8/9) et ceux trop haut pour remonter en Vélib' (Ménilmontant, hauts de Belleville, Pyrénées). A noter également qu'à cette heure tardive, une grosse quantité de stations sont en état "critique" (soit pleine, soit vide) rendant à mon sens l'ensemble du système Vélib' complètement inutilisable. Cela apparaîtra de façon plus visible sur la prochaine version de la carte.
Il a fallut lever plusieurs difficultés pour arriver à ce brouillon. L'API de Google Maps est assez simple à appréhender. J'ai codé en mode "super goret", mais cela fonctionne. Il y a bien sûr des améliorations prévues, ce n'est qu'une version très alpha même pas disponible en ligne - juste l'image :-) - mais dans l'ensemble, ça va, pour ma première application en mashup !
Je pensais avoir un problème pour relever les informations de l'ensemble des stations Vélib'. Jusqu'à maintenant, j'utilisais wget en appel système depuis un script Perl. Cela fonctionnait pour 20 stations, mais certainement pas pour 790 ! J'utilise donc puf pour récupérer toutes les stations en une fois car wget ne permet pas de paralléliser les connexions. Avec puf, il ne faut que 20/30 secondes pour obtenir tous les fichiers depuis le serveur Vélib'. J'ai cru un moment l'avoir planté ou m'être fait bannir, mais il était autour de minuit, donc ça sent plus le reboot automatique (à surveiller !)
Je n'ai donc plus de problème pour la récupération de toutes les stations et la compilation des bases RRDtool (même si je n'ai pas encore dedans toutes les données souhaitées, détail, j'espère). En revanche, la génération des images via RRDtool est extrêmement lente. Il faut compter 17 minutes pour la création des quatre images (2h, journées, semaine, mois) des 790 stations. La prochaine étape est donc la réduction de ce temps de traitement. Il ne faut pas que cela dépasse les 5 minutes, sinon cela perd de son intérêt. Je sens qu'il va falloir paralléliser ce traitement...
Par ailleurs, je cherche un moyen de sauvegarder l'image générée par Google Maps, toutes les x minutes, en png par exemple pour créer au final une archive ou une animation des changements de densité.... Ce n'est a priori pas prévu par l'API. Si quelqu'un a une idée...
Retrouver toutes les informations sur le billet Vélib', statistiques et jolis graphiques
3 commentaires »
Suivez le fil des commentaires en vous abonnant à ce lienRenaud
Le jeudi 13 septembre 2007 à 09:55
Yves
Le jeudi 13 septembre 2007 à 10:48
Suricat
Le jeudi 13 septembre 2007 à 11:54