Souvenez-vous : dans le tuto précédent, nous avons calculé l’ensoleillement moyen pour chacune des régions françaises et représenté les résultats dans un histogramme. Cette présentation peut certainement être améliorée… Dans ce tuto, nous allons voir comment afficher ces données sur une carte interactive au format html.
Voilà à quoi ressemblera le résultat final :
Vous pouvez accéder à cette carte et la tester vous-même en cliquant ici.
Faire une carte avec Folium : les bases
Folium est un librarie Python permettant de créer assez simplement des cartes interactives d’aspect très professionnel, comparables à celles que vous pourriez créer avec un outil payants de cartographie ou trouver dans certains médias.
Pour ce tuto, vous aurez donc besoin d’installer Folium. Il vous faudra aussi Geopandas.
Ces installations sont faites ? Commençons par créer une carte vierge centrée sur le France. Rien de plus simple :
Vous obtenez une carte comme celle-ci sur laquelle vous pouvez zoomer, dézoomer et vous déplacer librement :
Comment afficher des données sur cette carte ? Pour un exemple simple, commençons par y ajouter un marqueur :
Le marqueur apparait maintenant sur votre carte :
De la même façon, vous pouvez ajouter à peu près tout ce que vous voulez à cette carte : des points, des formes, des images, des graphiques, du html… ou tout ça à la fois !
Dessiner un shapefile sur la carte
Dans notre cas que va-t-on représenter sur notre carte ? On veut dessiner les différentes régions françaises et colorier chacune d’entre-elles avec une couleur correspondant à l’ensoleillement moyen qu’elle reçoit. C’est ce que l’on appelle une carte chloroplèthe.
Pour comprendre le principe, commençons par dessiner une seule région sans nous préoccuper de sa couleur.
Les premières étapes sont les mêmes que dans le tuto précédent :
Télécharger les formes des régions au format shapefile (par exemple ici),
Ouvrir ce fichier avec Geopandas,
Filtrer pour ne garder que les régions de métropole,
Sélectionner la région à représenter sur la carte (pour changer, on va prendre la Normandie).
Nous n’avons pas besoin de toute sles informations contenues dans le geodataframe. Nous allons garder uniquement la colonne geometry (qui contient la forme de la région) et le nom de la région que nous allons mettre en index. Ensuite, nous allons convertir le geodataframe en GeoJSON.
Ça à l’air compliqué ? C’est moins long à faire qu’à expliquer :
Il ne reste maintenant plus qu’à créer une carte vierge puis à y ajouter un chloroplèthe contenant uniquement notre région :
Vous obtenez le résultat suivant :
Pour dessiner l’ensemble des régions, il suffira de reprendre ces différentes étapes en omettant seulement la sélection de la région Normandie :
Réaliser une carte chloroplèthe avec Folium et geopandas
Notre objectif est n’est pas seulement de dessiner les régions, on veut également les colorier en fonction de leur ensoleillement moyen.
Pour cela, reprenons les données d’ensoleillement calculées dans un précédent tutoriel. Si vous ne l’avez pas suivi, vous pouvez télécharger directement le résultat ici.
Tout d’abord, nous allons ouvrir ces données avec Pandas, puis les convertir : l’ensoleillement a été évalué en Joules par mètre carré et par jour mais des kilowattheures par mètre carré seront plus parlant. Enfin, nous allons arrondir ces valeurs à la première décimale.
A partir de ces données, ajoutons une nouvelle colonne contenant une petite chaine de caractères qui pourra servir de légende. Par exemple : “Corse : 4.5kWh/m²”.
Ensuite, nous allons fusionner ce dataframe avec le geodataframe contenant les formes des régions.
Nous pouvons maintenant créer un nouveau chloroplèthe avec ces données :
Une nouvelle fois, il ne reste plus qu’à créer une carte vierge et à y ajouter ce chloroplèthe :
La dernière ligne permet d’enregistrer le résultat dans un fichier html. Ce format rend le partage de la carte sur internet très facile. Vous pouvez y accéder ici, elle pourrait aussi être intégrer dans une page web, etc.
A propos : Callendar est une start-up spécialisée dans le développement de solutions innovantes pour l’évaluation des risques climatiques. Conscients du défi que représente l’adaptation au changement climatique, nous nous efforçons de partager notre expertise au travers d’outils gratuits ou de tutoriels comme celui-ci.