Cartographie de Données Géographiques avec Python et Folium
Un guide pour les débutants en visualisation spatiale interactive
La visualisation de données géographiques est un moyen puissant de comprendre et d’analyser des informations spatiales. Python est un langage de programmation populaire pour la science des données et l’analyse, et le package Folium offre une solution conviviale pour créer des cartes interactives. Dans cet article, nous allons explorer différentes techniques de visualisation de données géographiques avec Python et Folium, en utilisant des exemples concrets.
Installation des packages nécessaires
Avant de commencer, assurez-vous d’avoir installé le package Folium en utilisant la commande suivante :
pip install folium
Visualisation des Points
La visualisation des points sur une carte est couramment utilisée pour représenter des emplacements spécifiques. Imaginons que nous ayons une liste de coordonnées GPS pour des magasins dans une ville. Voici comment vous pouvez les afficher sur une carte Folium :
import folium
# Créer une carte centrée sur une position GPS
carte_points = folium.Map(location=[40.7488, -73.9855], zoom_start=13)
# Ajouter des marqueurs pour chaque magasin
folium.Marker([40.7488, -73.9855], popup="Magasin A").add_to(carte_points)
folium.Marker([40.7644, -73.9672], popup="Magasin B").add_to(carte_points)
folium.Marker([40.7449, -73.9873], popup="Magasin C").add_to(carte_points)
# Afficher la carte
carte_points.save("carte_points.html")Dans cet exemple, nous avons créé une carte Folium et ajouté des marqueurs pour chaque magasin avec des coordonnées spécifiques. Les pop-ups fournissent des informations supplémentaires lorsque vous cliquez sur les marqueurs.
Visualisation des Polygones ou Cartes de Choroplèthes
La visualisation des polygones permet de représenter des zones délimitées sur une carte. Cela peut inclure des frontières administratives, des zones de protection environnementale, ou toute autre région géographique que vous souhaitez mettre en évidence. Vous pouvez personnaliser les couleurs et les styles des polygones pour mieux communiquer vos informations.
import folium
# Créer une carte centrée sur une position GPS
carte_polygones = folium.Map(location=[40.7488, -73.9855], zoom_start=13)
# Ajouter des polygones pour les quartiers
folium.Polygon(
locations=[(40.7488, -73.9855), (40.7644, -73.9672), (40.7449, -73.9873)],
color='blue',
fill=True,
fill_color='blue',
fill_opacity=0.4,
popup="Quartier X"
).add_to(carte_polygones)
# Afficher la carte
carte_polygones.save("carte_polygones.html")Dans cet exemple, nous avons utilisé folium.Polygon pour ajouter des polygones représentant les quartiers de la ville. Vous pouvez personnaliser la couleur de remplissage, l'opacité et les pop-ups pour chaque polygone.

Visualisation de la Densité avec des Heatmaps
Les heatmaps sont une technique de visualisation puissante pour représenter la densité des points sur une carte. Folium permet également de créer des heatmaps pour montrer où les points sont concentrés. Supposons que nous ayons des données sur les accidents de la route dans une ville. Voici comment créer une heatmap avec Folium :
import folium
from folium.plugins import HeatMap
# Créer une carte centrée sur une position GPS
carte_heatmap = folium.Map(location=[40.7488, -73.9855], zoom_start=13)
# Générer des données aléatoires pour la densité des accidents
donnees_accidents = [(40.7488 + 0.01 * (2 * random() - 1), -73.9855 + 0.01 * (2 * random() - 1)) for _ in range(100)]
# Ajouter une heatmap pour les accidents
HeatMap(donnees_accidents).add_to(carte_heatmap)
# Afficher la carte
carte_heatmap.save("carte_heatmap.html")Dans cet exemple, nous avons généré des données aléatoires pour représenter la densité des accidents. La fonction HeatMap de Folium crée une heatmap en fonction des coordonnées des accidents.

Création de Cartes Isochrones : Visualisation des Zones Accessibles en Temps Réel
La création de cartes isochrones avec Python et Folium. Les cartes isochrones sont utilisées pour représenter des zones accessibles depuis un point donné dans un certain laps de temps. Cela peut être utile pour la planification de trajets, la recherche d’emplacements pour des services, ou la visualisation de la portée de certaines activités. Pour créer des cartes isochrones, vous pouvez utiliser des services de routage en ligne tels que le service Isochrone de Mapbox ou d’autres fournisseurs similaires.
Voici comment créer une carte isochrone avec Python et Folium en utilisant le service Isochrone de Mapbox :
import folium
import requests
# Coordonnées GPS du point de départ (par exemple, une adresse)
depart = (48.8588443, 2.2943506) # Coordonnées de la Tour Eiffel, Paris
# Clé d'accès au service Isochrone de Mapbox (remplacez par votre propre clé)
mapbox_access_token = 'YOUR_MAPBOX_ACCESS_TOKEN'
# URL du service Isochrone de Mapbox
isochrone_url = f'https://api.mapbox.com/isochrone/v1/mapbox/walking/{depart[1]},{depart[0]}'
# Paramètres de l'isochrone (temps en secondes)
isochrone_params = {
'contours_minutes': [5, 10, 15], # Zones isochrones pour 5, 10 et 15 minutes
'polygons': 'true',
'access_token': mapbox_access_token
}
# Appel au service Isochrone de Mapbox
response = requests.get(isochrone_url, params=isochrone_params)
data = response.json()
# Coordonnées des contours isochrones
contours = [contour['geometry']['coordinates'] for contour in data['features']]
# Créer une carte centrée sur le point de départ
carte_isochrone = folium.Map(location=depart, zoom_start=15)
# Ajouter les contours isochrones à la carte
for i, contour in enumerate(contours):
folium.Polygon(locations=contour, color='blue', fill=True, fill_color='blue', fill_opacity=0.4, popup=f'{i+1} min').add_to(carte_isochrone)
# Afficher la carte isochrone
carte_isochrone.save("carte_isochrone.html")Dans cet exemple, nous utilisons les coordonnées de la Tour Eiffel comme point de départ et le service Isochrone de Mapbox pour calculer les zones isochrones accessibles à pied en 5, 10 et 15 minutes. Les contours isochrones sont ensuite ajoutés à une carte Folium pour une visualisation interactive.
N’oubliez pas de remplacer 'YOUR_MAPBOX_ACCESS_TOKEN' par votre propre clé d'accès à Mapbox. Vous pouvez obtenir une clé d'accès gratuite en créant un compte sur le site Web de Mapbox.
Cette carte isochrone est particulièrement utile pour aider les utilisateurs à comprendre rapidement quelles sont les zones accessibles depuis un point donné dans un certain laps de temps.
Conclusion
La visualisation de données géographiques avec Python et Folium offre un moyen puissant de représenter des informations spatiales de manière interactive. Que vous souhaitiez afficher des points, des polygones, des heatmaps, ou d’autres formes de données géographiques, Folium vous offre une flexibilité considérable pour personnaliser vos cartes en fonction de vos besoins. En utilisant les exemples de ce guide, vous pouvez commencer à explorer et à analyser vos données géographiques de manière plus approfondie.
