-
Notifications
You must be signed in to change notification settings - Fork 2
Data journalisme
Jusqu'à l'édition 2019, but du jeu du Hyblab est de faire du data-journalisme. On trouve donc dans ce wiki un grande section (celle-ci) dédiée à ce sujet. Depuis 2020, le datajournalisme n'est plus au centre du Hyblab puisque nous traitons de manière plus large les contenus interactifs. Ceci dit, votre récit interactif peut intégrer des visualisations de données et être basée sur des données chiffrées. Les outils présentés ci-dessous peuvent donc encore vous être d'une aide précieuse.
Voici donc quelques ressources générales concernant le journalisme de données :
- Des explications et ressources intéressantes sur le site du Hyblab
- La page Wikipedia dédiée au data-journalisme.
- Une présentation instructive de Pierre Romera.
- Le site web de Pierre Romera.
- Un MOOC (en Anglais) sur le data-journalisme
- Le guide du data-journalisme (livre en licence creative commons)
Le data-journalisme consiste à analyser des données et à présenter (si possible de manière plaisante) cette analyse de données afin d'éclairer le lecteur sur un sujet. Pour que le lecteur ne se sauve pas face à tous ces chiffres, on utilise généralement de jolie visualisations de données (ou data-visualisations). Voyons comment faire tout cela...
Vous trouverez ci après des sites donnant des exemples de data-visualisation ou expliquant quelle visualisation est adaptées à quel usage:
- Le site de David McCandless, l'un des chantres de la visualisation de données. Voir aussi ici une de ses présentations lors d'un TED Talk.
- Quel type de visualisation pour quelles données ?.
- Des exemples intéressants.
- Des exemples de choses à ne pas faire
Il existe des outils sans code (ex: raw, tableau public) et des libraires Javascript. Les deux peuvent être utiles à vos projets. Les outils sans code permettent de réaliser rapidement des maquettes pour se rendre compte de l'adéquation de votre visualisation à votre objectif. Les librairies permettent d'intégrer correctement ces visualisations en prenant en compte tous les éléments de design fournis par les designers.
D3 est une librairie javascript généraliste de visualisation de données. Elle est basée sur un paradigme de manipulation de données un peu particulier, mais qui une fois maîtrisé permet de faire beaucoup de choses de manière très cohérente. L'avantage de cette librairie est qu'elle s'appuie sur les standards du web (HTML, CSSS, SVG). Les connaissance acquises pour manipuler D3 sont donc réutilisables dans d'autres contextes.
Documentation et tutoriels à consulter:
- Le Wiki officiel de D3
- Un tutoriel D3 pour bien comprendre...
- Un livre en ligne qui propose bien plus qu'une simple introduction à D3 (DOM, HTML, CSS, SVG, etc.).
D3js n'est absolument pas la seule librairie de visualisation de données existante. Selon ce que vous souhaitez faire, il peut être plus simple et rapide d'utiliser des librairies plus spécialisées. Vous pourrez trouver des informations sur d'autres outils de data-visualisation (avec ou sans code) ici :
- ProcessingJs est une implémentation d'un langage de programmation visuelle nommé... Processing. Vous écrivez votre code avec Processing (langage très très proche de java) et ProcessingJS se charge de la faire fonctionner dans le navigateur. Il faudra tout de même faire un peu de javascript pour fournir des données à processing (plus de détails ici). On peut maintenant également utiliser p5js...
- Vega est également une librairie intéressante, basée sur une approche déclarative des data-visualisations.
- Un catalogues d'outils pour la data-visualisation (avec ou sans code).
- Une grande collection d'outils avec ou sans code. Pas que des librairies de data-visualisation, mais plein de choses intéressantes.
- Une autre analyse comparative un peu plus exhaustive sur Wikipedia.
Pour faire du data-journalisme, il faut des données... A l'époque du Hyblab data-journalisme, le but du jeu était de travailler à partir de données brutes. Les informations ci-après concernent ce cas de figure qui théoriquement ne devrait (quasi) plus vous concernent pour le Hyblab récits interactifs.
Durant le Hyblab, celles-ci devraient en théorie vous être livrées par votre média partenaire. Mais il peut s'avérer nécessaire de récupérer des données complémentaires !
C'est votre meilleur source de données. La plupart des données ouvertes sont référencées sur http://data.gouv.fr, mais chaque ville (ex: Nantes), région (ex: Loire Atlantique ou entreprise (ex: SNCF) a également parfois son propre site.
Ces données sont disponibles soit sous forme de fichier, soit au moyen d'une API (REST ou autre).
Vous trouverez ici des exemples de projets exploitant des données de l'opendata national (concours Dataconnexions organisé par etalab.
De nombreux sites propose des API (souvent REST) permettant de parcourir (une partie) de leurs données. Il serait illusoire de vouloir en faire une liste exhaustive ici, mais on peut citer:
Le scraping consiste à utilise des outils (logiciels, scripts, etc.) afin de récupérer automatiquement du contenu sur des pages web. Les robots d'indexation des moteurs de recherche sont des scrapers... Cette méthode permet de récupérer des données qui ne serait pas disponible sinon. Attention toutefois à la légalité de votre scraping. Il faut veiller à respecter les règles de copyright et les conditions d'utilisation des sites (ex: Facebook interdit formellement tout outil automatique de collecte de données sur son site).
Infos supplémentaires :
- Page wikipedia dédiée au scraping
- Scrapy : un framework python pour créer facilement des outils de scraping
- Import.io : un service en ligne permettant de transformer des pages webs en données facilement exploitables.
- kimono : un autre outils d'extraction de données à partir de pages web.
Par exemple, Tabula permet d'extraire des données dans des tableaux intégrés dans des documents PDF.
Généralement, les données fournies par votre média ou récoltées directement par vous auront besoin de quelques traitements pour être exploitables. Les opérations suivantes seront certainement nécessaires:
- Nettoyage des données (suppression de champs inutiles, vérification des informations, recoupement avec d'autres bases, etc.). Ceci peut être fait dans un tableur (Excel, Calc), directement dans un SGBD (MySQL, MongoDB) ou avec des outils web spécialisés (import.io, google fusion table, OpenRefine).
- Vous pouvez également souhaiter analyser ces données. Pour cela on peut utiliser des outils génériques tels que R, ou réellement dédiés à la fouille de données tels que: Rapidminer, Orange, Weka ou Tanagra.
- Conversion dans un format "Web friendly" (ex: JSON, XML, etc.).
- Importation dans un SGBD, le plus souvent en passant par un format de données intermédiaire (ex: CSV).
Une fois les données préparées vous aurez certainement à les filtrer en temps réel. Pour cela vous pouvez effectuer des requêtes sur une base de données sur le serveur. Vous pouvez également utiliser une mini base de données directement dans votre navigateur par exemple grâce à TaffyDB. Il existe néanmoins de nombreuses autres solutions.
Pour les données en France, l'IGN est une bonne piste. Une partie de ces données est gratuite et généralement fournie dans des formats peu adaptés au web (ex: Shapefile). Il faudra utiliser un Système d'Information Géographique (SIG) tel que QuantumGIS pour convertir les données dans un format compatible web (Ex: GeoJSON).
On trouve également quelques site avec des données déjà au format GeoJSON. Ici on pourra récupérer les région, département, et communes.
Une autre source de données très importante est OpenStreetMap. A la fois pour ses cartes mais aussi pour ses points l'intérêt et surtout pour son API permettant de requêter et récupérer de nombreuses données. Notez également que le Wiki d'Openstreetmap est une mine d'informations concernant les données pouvant être manipulées et récupérées (en particulier via l'API). Voir également la section outils ci-dessous pour plus d'outils liés à cette base de données.
Attention au poids de ces données géographique qui peut vite devenir important. Il faudra alors ruser pour réduire la taille de ces données.
Attention également au piège des différents référentiels et méthodes de projection (Lambert93, WGS84, etc.). Allez jeter un petit coup d’œil ici pour en savoir plus. Notez également qu'il existe des outils de conversion de données géographiques.
Ce sont principalement des librairies Javascript. Ces outils travaillent généralement avec des services de cartographie en ligne (google maps, open street maps, etc.) et des données externes fournies au format GeoJSON.
- D3js est une libraire de visualisation de données qui a déjà été évoquée dans la partie dédiée aux librairies Javascript conseillées. D3 possède un ensemble d'outils pour afficher / manipuler des données géométrique en prenant en compte la bonne méthode de projection.
- Leafletjs permet de créer / manipuler des cartes et est particulièrement optimisé pour les mobiles.
- Openlayers est également une libraire javascript de création / manipulation de cartes.
- JVectormap permet une manipulation très simple des cartes en SVG + javascript et fournit un bon nombre de fonds de carte pour le monde, les pays, les départements français, etc.
- Mapbox permet d'afficher des cartes et bien plus encore. C'est un produit commercial, mais il fournit un free-tier généreux et ne demande pas de carte bleue à l'inscription :-).
- Vous trouverez également ici une liste de nombreux outils javascript dédiés à la cartographie.
On trouve également des outils intéressant permettant d'explorer les données Openstreetmap et construire des requêtes à utiliser avec son API:
- Overpass turbo et sa documentation
- Here permet de calculer des itinéraire et bien plus
- Openrouteservice permet de calculer des isochrones (points situés à un certain temps de déplacement d'un autre) et des itinéraires
- Query-overpass une API Openstreetmap pour nodejs.