Simplifier les géométries avec GeoDataFrame.simplify()
Dans le domaine de la géomatique et de l’analyse spatiale, les géométries peuvent parfois être très complexes, avec un grand nombre de points décrivant des contours détaillés. Cette complexité peut ralentir les traitements et alourdir les fichiers, surtout lors de la visualisation ou du transfert de données.
La méthode simplify()
de GeoPandas permet de réduire la complexité des géométries en diminuant le nombre de sommets tout en conservant la forme générale des objets géographiques. Cela facilite le traitement, l’analyse, et la visualisation des données spatiales.
Le paramètre principal de la méthode est la tolérance, qui définit la distance maximale entre la géométrie originale et la géométrie simplifiée. Une tolérance élevée conduit à une simplification plus importante, tandis qu’une tolérance faible conserve davantage de détails.
Cette simplification est particulièrement utile lorsque :
- On prépare des données pour une visualisation web où la légèreté est cruciale
- On souhaite réduire la taille des fichiers géospatiaux pour le stockage ou le partage
- On accélère les calculs spatiaux qui ne nécessitent pas une grande précision
En résumé, GeoDataFrame.simplify()
est un outil pratique pour optimiser les performances et la maniabilité des données géographiques tout en préservant leur intégrité visuelle globale.
Fonctions :
-
GeoDataFrame.simplify()
La méthode GeoDataFrame.simplify() permet de simplifier la géométrie des objets contenus dans une GeoDataFrame en réduisant le nombre de points, tout en préservant leur forme générale. Elle est utile pour alléger les fichiers géographiques, améliorer les performances d’affichage ou préparer des cartes interactives.
Importation :
import geopandas as gpd
Attributs :
Paramètre Type Description Valeur par défaut tolerance
float Distance maximale autorisée entre l’ancienne géométrie et la simplifiée (plus elle est grande, plus la simplification est forte). None
preserve_topology
bool Indique si la topologie (liens entre formes) doit être conservée. True
Exemple de code :
import geopandas as gpd import matplotlib.pyplot as plt # Chargement d'un GeoDataFrame gdf = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres')) # Création d'une version simplifiée gdf_simplified = gdf.simplify(tolerance=0.1, preserve_topology=True) # Affichage de la version originale et simplifiée fig, ax = plt.subplots(1, 2, figsize=(14, 7)) gdf.plot(ax=ax[0], color='lightblue', edgecolor='black') ax[0].set_title("Original") gdf_simplified.plot(ax=ax[1], color='lightgreen', edgecolor='black') ax[1].set_title("Simplifié") plt.show()
Explication du code :
On charge une carte du monde puis on crée une version simplifiée des géométries à l’aide d’un paramètre
tolerance
.
Les deux cartes (originale et simplifiée) sont affichées côte à côte pour comparaison.
Avantages :
-
Permet de réduire considérablement la taille des fichiers géographiques.
-
Améliore les performances de rendu, notamment en webmapping.
-
Facile à utiliser et à paramétrer.
-