Le Challenge Open Data est un projet d’environ 2 semaines, à faire en début de 3ème année ISI à l’Ensimag. Nous avons fait ce projet en équipe de 5, constituée de Hugo DUPANLOUP, Jérémy GUILLON, Fabien MEYRAT, Enora MORVAN et Nicolau PEREIRA ALFF.
Notre but était de permettre la visualisation de données préalablement choisies pour répondre à une problématique sur le développement durable et la responsabilité sociale. C’est dans cet optique que nous avons choisi de mettre en avant l’intégration du handicap en France, au travers différents graphiques.
Dans notre page Web, nous voulions tout d’abord faire un rapide rappel de la situation du handicap en France, en rappelant la part que prennent les différents handicaps ainsi que la part de la population handicapée française. Nous avons également survolé l’intégration dans le travail. Nous voulions surtout montrer qu’une grande partie de la population française est touchée par le handicap, mais qu’il existe une large diversité d’handicaps, et donc montrer qu’il est nécessaire à la France de s’adapter.
Avec ces chiffres en tête, nous avons voulu mettre en avant dans notre seconde section l’intégration du handicap par l’accessibilité des bâtiments publics. Nous avons décidé de distinguer cette intégration entre les différents départements de la France. Pour cela nous les avons distingués avec différentes couleurs modélisant le score d’intégration des handicapés. Nous voulions permettre de visualiser les scores suivant les critères importants pour l’utilisateur (suivant son type de handicap notamment), donc cette échelle de couleur évoluera suivant l’état du filtre que nous avons mis en place.
Enfin, nous voulions aussi mettre en avant la scolarisation de la population handicapée au cours des dernières années, dans l’enseignement du 1er et 2nd degré. Nous pensons qu’avec ces trois différentes sections, nous permettons d’avoir une bonne vision globale de l’intégration du handicap en France.
Dans la première section, nous présentons des statistiques générales sur le handicap. Pour cela, nous nous sommes basés sur des chiffres de la Charte Nationale Handicap et sur un jeu de données obtenu via l'INSEE. Ce dernier nous permet essentiellement de nous rendre compte de l’intégration du handicap dans les différents secteurs du monde du travail.
Dans la seconde section, nous mettons en avant l'accessibilité des bâtiments en France. Pour cela, nous utilisons des données venant d'AccesLibre. Il s'agit d'une plateforme mise en place par le gouvernement où chaque établissement peut s'enregistrer et décrire ses équipements d'accessibilité. Le données sont disponibles via le portail data.gouv.fr. Ces données contiennent le nom, l'adresse, les coordonnées géographiques et de nombreuses informations sur les équipements (ex: rampe d’accès, places de parking PMR, sanitaires PMR, etc. ). Nous avons aussi utilisé des données sur la population de chaque département fournies par l'INSEE. Les deux jeux de données datent de 2021.
Enfin, pour notre dernière section, nous mettons en lumière l’intégration du handicap dans les écoles françaises (1er et 2nd degré), nous utilisons plusieurs jeux de données, obtenus via Statista et l’INSEE :
Dans la troisième section, ces jeux de données nous permettent de calculer le taux de scolarisation des handicapés en France et aussi de présenter la population scolarisée handicapée qui assiste aux classes ordinaires ou aux classes ULIS (Unités Localisées d’Inclusion Scolaires).
Pour les sections 1 et 3, nous avons traité les données à la main car peu nombreuses et de formats très variés. Les données obtenues ont ensuite été écrites en dur dans les scripts correspondants pour éviter un chargement de ressources extérieures.
Pour la section 2, les données d'AccesLibre étant constituées de plus de 10 000 lignes, nous avons réalisé un script Python. Ce dernier lit le fichier CSV, extrait les données nécessaires et réalise des combinaisons logiques entre les colonnes afin de calculer les scores d'accessibilité du chemin extérieur, de l'entrée, de l'accueil et le score général. Le fichier brut original était très volumineux (environ 4 Mo). En sélectionnant uniquement les colonnes nécessaires et en utilisant des 1 et des 0 pour représenter les booléens au lieu de True et False, nous avons considérablement réduit la taille de ce fichier (1,7 Mo). Le fichier obtenu est aussi un fichier CSV car il s’agit d’un format simple à consulter. La taille restante est principalement due à l'adresse des bâtiments, ce qui ne peut être réduit.
Une difficulté rencontrée lors du traitement du fichier brut est que de nombreuses colonnes sont vides pour certains établissements. Nous avons au cas par cas décidé si une valeur absente devait être considérée comme True ou False. Nous avons généralement pris la valeur la plus pénalisante en termes d'intégration. Par exemple, si un établissement n'a pas déclaré son nombre de sanitaires PMR (Personnes à Mobilité Réduite) , alors nous considérons qu'il n'en a pas.
Le fichier obtenu est téléchargé et chargé par les scripts, générant ainsi un tableau d'objets dont chaque champ correspond à une colonne. Cela nous permet de facilement appliquer les filtres. Les objets respectant les filtres sont ensuite triés par départements (déduits du code postal) afin de calculer le score de ces derniers.
Pour la section 3, les données utilisées sont déjà prêtes pour l'utilisation, nous avons besoin seulement de les écrire dans les scripts. Le seul calcul nécessaire a été le calcul du pourcentage que la population handicapée représente au sein de la population scolarisée.
Pour le calcul du score, nous opérons sur le jeu de données d’AccesLibre. Pour chaque bâtiment référencé, nous calculons un score d’intégration compris entre 0 et 5. Pour ça, nous calculons un score pour chaque colonne (présence ou non d’un type d’aménagement, taille de la porte d’entrée, etc…) et nous en faisons la moyenne.
Pour calculer la note d’un département, nous faisons la somme de la note de tous les bâtiments qu’il contient (et qui correspondent aux filtres définis), divisée par le nombre d’habitants du département (nous supposons qu’une plus grande population a une plus grande part d’handicapés). Nous considérons que plus un département est peuplé, plus il y a besoin d'établissements adaptés.
Nous normalisons ensuite le tout pour obtenir une échelle lisible, le département avec le pire score sera rouge, le meilleur sera vert et les autres suivent une échelle de couleur linéaire passant par le blanc.
Le site est constitué de deux pages: index.html contient le page principale et rapport.html contient notre rapport. Le style commun est défini par style.css. Ils sont placés à la racine du projet, à côté des dossiers suivants :
Les scripts sont divisés selon les 3 sections de la page principale. Nous avons aussi inclus la librairie gérant les limites de la carte car nous avons dû y corriger un bug.
ChartJS permet de générer des graphiques de différentes formes.
Leaflet est une librairie gérant l'affichage de cartes 2D. Elle est organisée en couches. La couche de fond sont des images cartographiques. Une couche supplémentaire est utilisée pour colorer les départements et enfin une dernière couche est utilisée pour positionner les points des établissements.
JQuery nous permet de facilement télécharger les fichiers contenant les données mais aussi de lire des fichiers au format JSON. Cela est nécessaire pour les données géographiques des départements (format GEOJSON).
PapaParse est une librairie pour lire des fichiers au format CSV. On pourrait croire qu'il suffit pour chaque ligne de découper sur les virgules mais en réalité il faut aussi gérer les caractères d'échappements et les colonnes contenant une virgule non séparatrice. C'est pour cela que nous avons choisi d'utiliser une librairie spécialisée dans le CSV.
Personne dans notre équipe n'ayant d'expérience avec ces librairies (hormis JQuery) ou des librairies similaires, nous les avons choisies pour leur popularité, leur maintenance active et leur documentation détaillée.
Nous souhaitions initialement stocker les données CSV et GEOJSON dans un dossier data à la racine du projet mais nous avons fait face à des erreurs CORS (Cross-Origin Resource Sharing). Cette erreur a été corrigée en hébergeant les données sur un dépôt Github externe.
Lorsque nous lançons l’outil GreenIT Analysis, nous obtenons la note de B. Cependant, quand nous le lançons sur notre page une fois rechargée, sans vider le cache, nous obtenons la note de A. C’est un résultat correct. Pour améliorer ce résultat, nous pourrions réduire le nombre de domaines, mais la plupart des critères auxquels nous ne répondons pas sont indépendants du projet, mais propres au serveur.
Pour conclure, nous sommes fiers de notre travail. Le projet était imposé dans un laps de temps très court, et donc c’était un rythme assez intense, mais le sujet que nous avons choisi nous plaisait beaucoup et nous sommes arrivés au résultat que nous espérions.
La prise en main du projet était intéressante, et réfléchir à la manière de mettre en avant les informations de façon simple et efficace nous a permis de réfléchir à plusieurs problématiques auxquelles nous ne pensons pas forcément. Ça nous a offert un autre point de vue sur le développement Web.
Nous aurions tout de même aimé pouvoir approfondir un peu plus le sujet, notamment dans la section 2 avec la carte de la France, pour intégrer plus de paramètres à l’intégration. Nous avions par exemple pensé à prendre en compte le handisport, la part d’embauche, les associations, etc. Malheureusement, nous n’avons pas toujours pu trouver des jeux de données adaptés (pas sur la bonne année, pas à l’échelle de la France, …). Cependant, c’est un axe d’amélioration que nous gardons en tête.
© Copyright Challenge Open Data 2021
DUPANLOUP Hugo GUILLON Jérémy MEYRAT Fabien MORVAN Enora PEREIRA ALFF Nicolau