Regrouper et fusionner des géométries avec GeoDataFrame.dissolve()
En analyse géospatiale, il est souvent utile de regrouper des entités ayant une caractéristique commune et de fusionner leurs géométries en une seule entité. La méthode dissolve()
de GeoPandas permet précisément cette opération, en agrégant les géométries selon une ou plusieurs colonnes attributaires.
Cette méthode fonctionne comme une combinaison d’une opération de regroupement (groupby) suivie d’une fusion géométrique. Elle est particulièrement adaptée pour :
- Créer des zones agrégées par catégorie, comme des régions regroupant plusieurs communes
- Réduire la complexité géométrique en fusionnant des polygones contigus partageant un attribut commun
- Préparer des données simplifiées pour des analyses ou visualisations à plus grande échelle
Lors de l’appel à dissolve()
, on spécifie la colonne ou la liste de colonnes selon lesquelles regrouper les entités. Le résultat est un nouveau GeoDataFrame
où chaque ligne correspond à un groupe avec une géométrie unique issue de la fusion des géométries du groupe.
En plus de la fusion spatiale, dissolve()
permet aussi d’agréger les données attributaires via des fonctions d’agrégation (comme la somme, la moyenne, etc.), ce qui enrichit l’analyse.
Ainsi, GeoDataFrame.dissolve()
est un outil puissant pour synthétiser, simplifier et analyser des données géographiques par regroupement thématique et fusion spatiale.
Fonctions :
-
GeoDataFrame.dissolve()
La méthode GeoDataFrame.dissolve() permet de fusionner les géométries d’un GeoDataFrame en regroupant les lignes selon une valeur d’un champ commun (par exemple une région ou un pays). Elle réalise une opération géospatiale d’union des géométries et peut également agréger d’autres colonnes avec une fonction d’agrégation (somme, moyenne, etc.).
Importation :
import geopandas as gpd
Attributs :
Paramètre Type Description Valeur par défaut by
str ou array Nom de la colonne sur laquelle regrouper les géométries (clé de regroupement). None
aggfunc
str ou fonction Fonction d’agrégation appliquée aux autres colonnes (ex : 'sum'
,'mean'
).'first'
as_index
bool Définit si la colonne de regroupement devient l’index du résultat. True
Exemple de code :
import geopandas as gpd import matplotlib.pyplot as plt # Chargement d’un GeoDataFrame avec les pays gdf = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres')) # Fusion des géométries par continent dissolved = gdf.dissolve(by='continent') # Affichage du résultat dissolved.plot(edgecolor='black', cmap='Set3') plt.title('Fusion des pays par continent') plt.show()
Explication du code :
On regroupe les géométries des pays selon leur continent avec
dissolve(by='continent')
.
Le résultat est une carte où chaque continent est représenté par une seule géométrie.
Avantages :
-
Simplifie et regroupe les données spatiales.
-
Très utile pour regrouper des entités administratives (ex : départements → régions).
-
Permet aussi d’agréger des données statistiques associées.
-