D’une donnée brute à une donnée enrichie

Posted on

Cet article va tenter de décrire mes étapes pour exploiter certaines données géographiques mises à disposition par Keolis Rennes et le Service d’Information Géographique (SIG) de Rennes métropole.

Le pitch

Mon besoin était de m’appuyer sur l’empreinte du réseau de transports de bus dans la métropole pour déterminer le tracé précis entre deux arrêts de bus consécutifs sur une ligne donnée, et d’en calculer la longeur.

Un peu de naïveté ne fait pas de mal

Ma première idée fut de me tourner vers le portail de Keolis. En effet, il me semblait naturel d’y trouver les données des itinéraires même si je ne m’attendais pas à ce qu’elles soient publiées via leur API. Sur ce point, j’avais raison, l’API ne s’intéresse qu’aux données de l’état du réseau.

Keolis propose aussi quelques jeux de données statiques téléchargeables directement. Malheureusement, hormis les données graphiques des pictogrammes des lignes, Keolis ne publie que le GTFS qui représente les informations de transits, mais pas les données géographiques.

La première étape fit donc choux blanc.

Bon sang, mais c’est bien sûr !

Puisque Keolis ne fournissait pas les données dont j’avais besoin, je me suis tourné vers le grand service libre de données géographiques : OpenStreetMap. En effet, OSM est très actif et il me semblait probable d’y trouver ce que je cherchais.

J’atterris donc rapidement sur le wiki d’OSM listant les jeux couvrants le réseau de transport en commun sur la métropole. Mais là trois obstacles se dressèrent devant moi :

  • L’ensemble du réseau n’est pas couvert
  • Certains itinéraires sont incomplets
  • Les données sont moins directement exploitables que je n’aurais espérer

En revanche, un des grands intérêts d’OSM est qu’il est mis à jour régulièrement, même lorsque des travaux prennent place durablement, modifiant le tracé d’une ligne de bus.

Le problème des itinéraires incomplets pourrait se résoudre simplement en éditant OSM. Malheureusement, même si cette tâche est désormais facilitée depuis un simple navigateur grâce aux outils d’OSM, ils ne peuvent pas résoudre des cas plus compliqués tels que celui illustré ci-dessous :

osm_ligne67

Voir directement la source

 

Si vous le notez bien, la ligne 67 quitte la voie centrale pour rejoindre l’avenue Maginot, avant de tourner au nord par le pont de Strasbourg. Or, le tracé est interrompu le long de cette avenue, la ligne 67 ne la parcourant qu’en partie. Les outils de bases d’OSM ne permettent pas de choisir un segment me semble-t-il. Techniquement, c’est dû au fait que l’entité qui représente l’avenue Maginot est considérée comme une ligne continue. D’ailleurs, on remarque aussi que la ligne 67 semble venir d’abord de l’avenue Maginot, mais ce n’est pas le cas. En fait, la sorte de V à l’envers est aussi un segment d’un seul tenant et l’éditeur qui l’a sélectionné n’a pas pu faire autrement que de le prendre entièrement, même sa section ouest qui n’est pas utilisé en réalité par la ligne 67.

Mes compétences en édition OSM sont trop limitées pour savoir si il est possible de créer le lien manquant. J’ai tenté ma chance avec l’éditeur avancé JOSM mais sans succès.

D’autre part, le format d’export des données est bien particulier. Il définit essentiellement un graphe de noeuds et de relations entre ces noeuds. Je dois admettre n’avoir pas poussé mes recherches pour en tirer les informations sous une forme qui me semblait utilisable pour mes besoins.

Le SIG à la rescousse

Le SIG de Rennes métropole est un service prolifique puisqu’il publie à lui seul près de 30% des données ouvertes proposées sur le portail. Au sein de cette forêt de jeux de données, j’ai pu trouver celui qui me semblait être précisément ce dont j’avais besoin : “Données géographiques du réseau STAR“.

Ce lot données contient les couches géographiques (géodonnées) décrivant le réseau de transport en commun de Rennes Métropole.

Le lot de données contient :
– les itinéraires des lignes principales
– les arrêts physiques
– les arrêts logiques
– la correspondance entre les arrêts physiques et les itinéraires de ligne (fichier CSV)

Les arrêts physiques sont des points à la localisation des arrêts de bus sur les trottoirs. Les arrêts logiques sont des points sur les lignes et représentants les arrêts physiques de la ligne dans les deux sens. Une image vaut mieux qu’un long discours :

Vert: lignes, orange : arrêts logiques, bleus : arrêts physiques

Vert: lignes, orange : arrêts logiques, bleus : arrêts physiques

Les arrêts logiques sont décrits comme étant positionnés sur la ligne. Il me semblait donc évident que la combinaison “lignes + arrêts logiques” allaient enfin répondre à mes besoins. En effet, mon objectif initial était de pouvoir couper les lignes en segments dont les extrémités seraient deux arrêts logiques sur cette ligne.

Sauf que tout n’est jamais si simple…

Ma première action fût de choisir les données au format shapefile. Ce format contient les données géographiques et peut aisément se charger dans la base de données spatiales PostGIS via les outils fournis :

Cette commande a crée une table “star_arret_physique” dans ma base de données spatiales “rennes_sig”. Voici la définition de cette table :

Pour les données d’itinéraires :

Qui produit la description suivante :

Il suffit d’exécuter la même commande sur les données de lignes et on se retrouve alors avec une base de données prêtes à être exploitée. Enfin presque. Si vous regardez bien la déclaration des deux tables, il n’existe pas de clés communes entre elles. La table des arrêts logiques n’offre aucune relation directe avec les itinéraires. Il faut en fait utiliser une table pivot constituée depuis un simple fichier CSV : star_ap_iti. Ce fichier CSV relie les arrêts physiques aux itinéraires.

L’import se passe différement. D’abord créez une table pour recevoir les données :

Puis copiez les données depuis un shell psql :

Maintenant que les données sont dans la base, nous pouvons effectuer les requêtes pour lier les arrêts logiques aux lignes.

L’idée est simple, nous parcourons la table des arrêts physiques pour obtenir les arrêts logiques associés. Puis nous procédons à une jointure avec la table créée précédemment en utilisant le code de l’arrêt physique comme pivot. Finalement, nous ordonnançons les résultats par itinéraire et position de l’arrêt sur cet itinéraire. Ci-dessous un petit extrait des données que nous obtenons :

A ce moment là, je dois avouer, je voulais crier victoire. En effet, il me semblait que j’avais enfin le lien entre les arrêts, les itinéraires la géolocalisation des arrêts et, cerise sur le gâteau, l’ordonnancement des arrêts.

Sauf que tout n’est jamais si simple (bis)…

J’ai en effet rapidement été confronté à un problème. Prenons un exemple simple, la ligne C4 et l’arrêt (logique) Pont de Strasbourg :

line4_zoom1

A une échelle assez grande, on se dit que l’arrêt est effectivement sur la ligne. Mais en zoomant, on se rend compte que non :

line4_zoom16

Cela pose une difficulté, puisque pour calculer la distance entre deux arrêts le long d’une ligne, les outils proposés par PostGIS nécessitent que les points soient contenus par la ligne. Du coup, il est impossible d’appliquer une requête simple.

La solution est de projetter le point représentant l’arrêt sur l’itinéraire via la fonction ST_ClosestPoint, et en reprenant la requête ci-dessus :

La table résultante est l’ensemble des points projetés sur les lignes du réseau.

Une fois cette étape atteinte, il suffit de dérouler l’algorithme pour découper chaque ligne par couple de points et mesurer la longueur du segment. Cela parait simple mais, une fois traduit en SQL, c’est beaucoup moins amusant à lire :

J’avais prévenu, c’est assez hideux mais ça fait le job. Enfin presque…

Sauf que tout n’est jamais si simple (ter)…

Lorsque l’on exécute cette requête, on obtient l’erreur suivante :

En effet, les lignes fournies dans le shapefile par le SIG de Rennes métropole sont en fait des multi-lignes. La plupart peuvent être combinées en lignes continues, mais pas toutes. Or, PostGIS ne sait traiter, dans certaines de ces fonctions, que des lignes continues.

J’aurais pu essayer de charger les données initialement ainsi :

Notez le -S dans la ligne de commande. Mais on obtient alors une erreur confirmant que certaines lignes ne peuvent pas être considérées comme continues :

Un exemple de représentation sur l’itinéraire 6 :

multilines

 

La seule solution que j’ai trouvé est de filtrer les itinéraires que je ne peux pas  combiner en des lignes continues afin de ne pas les traiter du tout. Pour ce faire, il faut modifier la requête géante comme suit :

Notez la présence des appels à la fonction ST_LineMerge qui combine une géométrie à plusieurs lignes en une seule. Malheureusement, cette fonction ne peut pas faire de miracle sur des cas comme celui de la ligne 6.

Et voilà ! J’avais enfin une table décrivant les segments des itinéraires entre chaque arrêts les parcourant. Pfiou !

Conclusion

L’objectif de cet article est de montrer qu’une donnée brute est parfois difficile à utiliser, principalement dans le cadre d’une automatisation de son traitement. Mais l’intérêt réside aussi pour moi dans la réflexion que cela provoque. C’est comme un casse-tête géant.

Malgré cela, je dois admettre que je ne m’attendais pas à autant de complication pour un besoin qui me paraissait plutôt simple. Je ne critique pas la donnée disponible, en revanche il me semble important de voir à quel point ces écueils peuvent ralentir, voir même bloquer l’innovation qui est souvent espérée des données publiques.

Je ne suis pas certain que les agents publics doivent porter la responsabilité de fournir une donnée enrichie comme il en résulterait de mon travail ci-dessus. A mon sens, cela les ferait sortir du cadre de l’opendata. En revanche, cela laisse une porte grande ouverte à celles et ceux qui souhaiteraient se positionner sur l’aggrégation et l’enrichissement des données brutes (comme le font l’IGN ou DataPublica d’une certaine façon).

 

Remerciements

Le SIG de Rennes métropole évidemment qui a toujours été à l’écoute de mes plaintes.


La culture se libère à Rennes Métropole

Posted on

La culture à Rennes Métropole s’est ouverte en cette rentrée 2013 et plusieurs jeux de données ont été présentés lors d’un atelier-conférence autour de l’Open Data vendredi 11 octobre à la Cantine numérique Rennaise. Le collectif était présent et nous allons tenter de faire un petit résumé dans ce billet.

Les jeux de données proposés en accès libre sur le portail Open Data de Rennes Métropole proviennent de différents acteurs de la vie culturelle du territoire rennais : les bibilothèques, les musées, l’espace des sciences, les acteurs associatifs (Trans Musicales) et les acteurs privés (Ouest-France). Ils couvrent des données statistiques, des données dynamiques d’agenda, des données historiques, des données d’annuaires. Tâchons de les passer en revue succintement.

Données agenda

Les agendas culturels rennais étaient des données depuis longtemps désirées, bien avant l’arrivée de l’opendata d’ailleurs. Aujourd’hui deux jeux sont offerts, l’un sous forme XML pour l’agenda des évènements organisés au Champs Libres, l’autre sous forme d’une API pour les évènements culturels dans la région ouest via le portal Infolocale de Ouest-France. Ce sont deux jeux pivots pour la diffusion de la culture rennaise. Notons toutefois qu’Infolocale ne proposent les évènements qu’à jour+1 au plus tard. Gageons que cette limite sera levée afin d’offrir un réel intérêt. Malheureusement, il semblerait que les barrières soient surtout internes à Ouest-France. Il est aussi important de comprendre qu’Ouest-France appose des conditions générales plus ou moins restrictives à la licence OdBL choisie pour la diffusion des données.

Données d’annuaires

Le catalogue des données ouvertes par Rennes Métropole héberge aussi un jeu intéressant provenant de tout le département, l’annuaire des acteurs du spectacle vivant. Ce fichier, au format CSV, est acommpagné d’un fichier texte présentant les informations libérées. Un vrai trésor pour découvrir l’ensemble des acteurs sur tout l’Ille et Vilaine. Il serait intéressant de croiser ce jeu avec le budget de Rennes pour voir si il existe un lien entre la vie des associations de la ville et les subventions allouées chaque année.

Données statistiques

Lorsqu’un acteur ne sait pas quelle donnée publier, il commence facilement par des données statistiques sur l’usage du service qu’il fournit. Loin d’être inintéressante, il s’agit là d’informations pertinentes pour mieux interpréter le rapport des citoyens avec leur environnement culturel. La bibliothèque des Champs Libres avait déjà publiée en 2012 des informations de fréquentation, depuis cet automne nous avons aussi accès aux données de prêts sur l’année depuis 2007. A noter aussi, un jeu d’essai de tous les documents sortis des bibliothèques municipales le 1er octobre 2013.

Le musée des beaux arts de Rennes propose aussi un fichier des prêts de ses oeuvres, bien que celui-ci ne représente qu’une toute partie du fond réellement disponible et prêté. Pour des raisons légales, le musée ne peut publier certaines de ces informations.

Données catalogues

Un jeu très sympathique est le catalogue de tous les artistes passés au festival des Trans Musicales depuis sa création en 1979. Ce jeu a nécessité un grand travail de mémoire de la part des membres historiques de l’association ainsi qu’un appel au public car l’information n’était pas toujours “sûre” (un groupe pouvait avoir été remplacé par un autre par exemple). Un jeu représentatif de l’histoire locale et internationale sur la scène musicale.

 

Au final, la couverture de ces données est d’une grande richesse et les acteurs présents lors de la rencontre de vendredi étaient tous motivés pour en proposer plus. On sent évidemment beaucoup de tatonnement mais une prise de conscience que la culture et l’opendata ne sont pas deux mondes étanches. Il existe des données liées aux services eux-mêmes qui peuvent en dire beaucoup sur leurs utilisations. Bien entendu, nous ne sommes pas ici dans de l’open content cher au mouvement Open GLAM mais ne boudons pas notre plaisir de voir ces acteurs importants faire un pas vers plus d’ouverture.

En guise de cerise sur le gâteau, nous avons eu la joie de présenter quelques travaux du collectif tels que Biblioviz et Kultu Rennes afin de démontrer qu’il était possible de produire des exemples et services sur les données culturelles. Finalement Romain Wenz de la BNF nous a proposé une passionnante revue du service http://data.bnf.fr/. La sémantisation des données et le linked data sont des objectifs à viser pour offrir une nouvelle dimension aux données brutes, mais ce travail requiert des ressources importantes. Il faudra se montrer patient et la communauté devra certainement faire ce travail de liaison à partir des données sources brutes.

Un bel automne pour les données à Rennes Métropole !


Nouvelles données disponibles sur la plateforme open data de Rennes

Posted on

Depuis le 23 février, quatre [UPDATE : cinq] nouveaux lots de données ont été ajoutés sur la plateforme data.rennes-metropole.fr :

Si vous avez une idée d’appli ou de visualisation, si ces données vous évoquent des réflexions, questions ou projets, n’hésitez pas à les proposer sur le wiki ou directement sur ce blog* !

A bientôt,

Auregann

* pour recevoir un accès à l’administration du blog afin de pouvoir écrire et publier des articles, il vous suffit de m’envoyer un mail à auregann chez gmail .com.


Open Data péRennes, par OWNI

Posted on

Cet article a été publié le 21 février par OWNI sous licence Creative Commons-BY-NC-SA. Auteur : Sabine Blanc. Voir la source

OWNI s’est un peu installé à Rennes, première municipalité de France à libérer ses données et à adhérer au mouvement open data. C’était il y a un an et demi. Passé le buzz médiatique, il faut tenir la longueur pour se montrer à la hauteur du défi. Un collectif vient de se monter pour sensibiliser tous les acteurs.

Ce mercredi à Rennes, les mordus de l’open data réunis dans un collectif se retrouvent à la Cantine numérique rennaise sur le thème “politique et citoyens”. Ils se sont réunis pour la première fois en janvier, en complément de l’action de la municipalité, pionnière dans l’ouverture des données en France. Car après le braquage médiatique des projecteurs, l’open data est une course de fond en réseaux combinant acteurs publics, société civile et secteur privé.

Rennes Métropole et la Ville de Rennes ont lancé leur plate-forme en octobre 2010. La ville a une réputation forte en matière d’innovation technique dans le domaine des TIC, ah les premiers pas du Minitel… Qui n’échappe à personne. D’ailleurs, faut-il y voir un symbole, l’open data est rattaché à la direction générale de la communication.

Le microcosme – dont OWNI – est en ébullition devant le spectacle des données libérées,  celles du réseau STAR, le service de transport en commun de Rennes Métropole, et du service LE vélo STAR et les données d’informations pratiques géolocalisées de 1.500 organismes publics et associatifs.

Dans le même temps, un concours d’application est organisé, avec une belle dotation de 50 000 euros, et une participation à l’avenant. Au final, 43 applications et services seront développées par un premier noyau de communautés rassemblant codeurs, professionnels et amateurs. Avec de belles réussites parmi les lauréats, comme Handimap, application pour faciliter le déplacement des handicapés mais aussi… des doublons.

Obstacle financier

Passée la phase de communication enthousiaste donc, “il faut s’inscrire dans la durée, pérenniser la collecte des données et des services, mettre en place des éléments d’animation en privilégiant les usages”, explique Bernadette Kessler, responsable du service innovation numérique qui chapeaute le projet open data. Dans ce sens, une première réunion des collectivités impliquées dans l’open data a d’ailleurs eu lieu au début du mois.

Le développement des applications se heurtent à un obstacle financier. Elles ne sont pas rentables à un si petit échelon. Comme le détaillait Silicon Maniacs :

Dans la capitale bretonne, les applications les plus populaires culminent aujourd’hui à 5 000 téléchargements. Tout juste de quoi espérer quelques centaines d’euros de revenus publicitaire par mois, pour un investissement qui s’élève souvent à plusieurs dizaines de milliers d’euros.

Ce n’est pas tout que les applications soient prévues pour intégrer les données d’autres villes, encore faut-il que des données similaires soient disponibles. Claire Gallon estime qu’il faudrait une douzaine de sets identiques. Or “concernant les données des transports, seul Rennes et Bordeaux les ont libérées”, déplore Bernadette Kessler à titre d’exemple. Le marché est donc en cours de construction, au fur et à mesure que les collectivités locales se lancent. Cet automne, la communauté  urbaine du grand Toulouse, Nantes ou bien encore le conseil général de Saône-et-Loire s’y sont mis, entre autres. (voir la carte complète). Sans oublier le portail national Etalab. D’autres ouvertures sont prévues, La Rochelle, Brest ou le conseil général du Maine-et-Loire, etc.

Fallait-il pour autant attendre que plusieurs villes ouvrent leurs données pour se lancer ? Attention usine à gaz, mieux vaut appliquer les principes de la doocracy, faire plutôt que dire. “Ils auraient mis beaucoup plus de temps”, prévient Claire Gallon, de l’association nantaise LiberTIC, acteur historique du mouvement open data en France issu de la société civile. “La plate-forme régionale se heurte à la difficulté du mille-feuille, cela pose problème si un acteur manque”, rajoute Simon Chignard, vice-président de la Cantine numérique, président de l’association Bug et futur papa d’un livre sur l’open data. Ce qui n’empêche pas de construire une plate-forme locale, “intéressante car elle sert d’outil d’animation”, poursuit Claire Gallon.

Pédagogie

Depuis avril, l’entrepôt des données attend une mise à jour, qui devrait arriver dans les semaines qui viennent. “Sur 300 jeux de données libérés en France, 113 l’ont été à Rennes”, tempère Simon Chignard. N’empêche qu’il faut faire face à deux problèmes. D’un point de vue technique, la mise est forme est longue. Et il faut convaincre les services de  libérer les données, long travail de pédagogie pour expliquer les enjeux et introduire cette nouvelle culture, toute en souplesse et réactivité, avec des nouveaux outils de communication comme les réseaux sociaux. Officiellement, “il n’y a pas plus de problème qu’ailleurs, au contraire, il y a un accord général”, avance Bernadette Kessler. Dans la réalité, c’est un peu plus compliqué, comme l’explique Simon Chignard :

Même en étant pro open data, je comprends leurs craintes. Les services publics n’ont pas envie de se faire taper dessus.

Certaines personnes ont encore en mémoire l’exemple de l’application Check my metro, qui avait donné des frissons à la RATP, au point qu’elle avait demandé à Apple de la retirer de l’Appstore : plus efficace que celle de la RATP, elle permettait aussi de signaler les contrôleurs. “Mais si on ouvre pas, cela se fait justement de façon sauvage” ajoute Simon Chignard.

La question de l’animation de la communauté demeure centrale.“C’est encore en discussion, explique Bernadette Kessler. C’est une grosse organisation et il faut faire le suivi des applications derrière. Ce ne sera pas en 2012 pour des questions de budget et de temps. Pourquoi pas le faire avec une autre ville ou lancer un appel à projet.”“À Washington, ils ont organisé deux concours puis plus rien, détaille Simon Chignard. En revanche, à New York, ils en sont à trois concours. On peut faire des petits challenges, par catégorie, par exemple.”

Pour que l’open data poursuive son essor, il faudrait aussi que les associations et les entreprises jouent le jeu. Or Rennes a fait un choix : ce n’est pas à eux de prendre en charge la sensibilisation de ces acteurs. Bernadette Kessler justifie :

Je ne peux pas me substituer au milieu associatif et au mouvement de l’open data. À Rennes, la société civile n’est pas forcément au fait, il faudrait qu’il y ait un LiberTIC à Rennes.

Prendre le relais

Et ça tombe puisque depuis cet hiver, la société civile prend le relais, sous la forme de ce collectif qui organisera la rencontre de ce mercredi à la Cantine numérique. Il se passe donc un processus inverse à celui observé à Nantes, où une association forte, LiberTIC, dont la notoriété dépasse la région, avait pris les devants. “Une vingtaine de personnes étaient venues à la première réunion. Nous avons lancé des invitations aux élus pour l’événement de mercredi, plusieurs ont répondu”, se réjouit Léa Lacroix. La jeune femme a une double casquette, qu’elle ne mélange pas : face pro, elle effectue un stage au service open data ; face perso, elle s’occupe de l’association.

“Après le concours, “il y a eu un moment de flottement”
, constate Simon Chignard. Le relais est en train d’être pris par des gens qui ne codent pas. Il y a par exemple des gens de l’économie sociale et solidaire.” Et aussi des journalistes. Non pas issus de la presse locale, semble-t-il plus préoccupée par les apéros Facebook géants que sur les données du budget. Des journalistes indépendants vont bientôt s’attaquer à ce nouveau terrain, rassemblés sous le nom de Rennes 1720. Une allusion au grand incendie qui ravagea la ville, prélude forcé à une modernisation. Mieux vaut prendre les devants, bis.

Cet article a été publié le 21 février par OWNI sous licence Creative Commons-BY-NC-SA. Auteur : Sabine Blanc. Voir la source


Atelier VizThink mercredi 25 janvier à la Cantine Numérique

Posted on

Bug organise un atelier VizThink le mercredi 25 janvier à 19h à la Cantine.

Au programme, le témoignage d’un « data journaliste » Jean Abbiatecci, auteur de travaux de visualisation et d’infographie sur www.data-projet.com, les suite des démarches entreprises autour de la visualisation des réseaux de musiciens locaux et des données ouvertes locales, une tentative visualisation de la typologie des projets de consommation collaborative.

Les apéruches VizThink sont des ateliers où chacun est invité à venir avec ses idées, ses questions et ses propositions dans le cadre de la constitution d’un groupe VizThink à Rennes.

Le site data-projet.com

L’évènement sur le site de la Cantine


La carte de l’open data en France mise à jour

Posted on

Je ne vous présente pas LiberTIC, l’association citoyenne nantaise qui œuvre activement pour l’ouverture des données publiques.

L’asso met régulièrement à jour une carte de l’évolution de l’open data en France. La dernière version actualisée est visible et explicitée sur leur blog.

Lors du hackathon organisé à Nantes le 3 décembre pour la journée internationale de l’open data, une équipe s’est penché sur un outil de visualisation interactif de cette carte. C’est toujours un work in progress, mais une première version est en ligne ici : il suffit de cliquer sur les points de la carte pour avoir tout un tas d’informations sur les mouvements open data en France.