Extraire les intersections géométriques avec GeoDataFrame.intersection()
Dans le cadre de l’analyse spatiale, il est souvent nécessaire de déterminer la zone commune entre deux ou plusieurs objets géographiques. Cette opération, appelée intersection géométrique, permet d’identifier précisément les parties où les géométries se superposent.
La méthode intersection()
de GeoPandas offre un moyen simple et efficace d’extraire ces zones d’intersection entre les géométries d’un GeoDataFrame
et celles d’un autre objet géométrique (comme un autre GeoDataFrame
, une GeoSeries
ou une géométrie individuelle).
Le résultat est un nouvel objet géométrique représentant la ou les parties communes aux géométries analysées. Cette opération est essentielle pour :
- Délimiter précisément les zones de recouvrement entre différentes couches spatiales
- Calculer des surfaces d’intersection pour des analyses d’impact ou de superposition
- Identifier les points ou zones de chevauchement dans des études environnementales, urbaines ou territoriales
L’utilisation correcte de la méthode intersection()
nécessite que les systèmes de coordonnées des objets en interaction soient compatibles, sinon il faudra préalablement effectuer une transformation avec to_crs()
.
En somme, GeoDataFrame.intersection()
est un outil puissant pour extraire et analyser les relations spatiales entre différentes entités géographiques dans un environnement Python.
Fonctions :
-
GeoDataFrame.intersection()
La méthode GeoDataFrame.intersection() permet de calculer l’intersection géométrique entre chaque géométrie d’un GeoDataFrame et une géométrie ou un autre GeoSeries. Elle retourne les zones communes entre les objets — c’est une opération essentielle en géotraitement (ex : croisement entre limites administratives et zones naturelles).
Importation :
import geopandas as gpd from shapely.geometry import Polygon
Attributs :
Paramètre Type Description Valeur par défaut other
GeoSeries ou GeoDataFrame Objet géospatial avec lequel calculer l’intersection. None
align
bool Si True
, aligne les index entreself
etother
avant intersection.True
Exemple de code :
import geopandas as gpd from shapely.geometry import Polygon import matplotlib.pyplot as plt # Création d'un GeoDataFrame avec un polygone poly1 = Polygon([(0, 0), (2, 0), (2, 2), (0, 2)]) poly2 = Polygon([(1, 1), (3, 1), (3, 3), (1, 3)]) gdf1 = gpd.GeoDataFrame(geometry=[poly1]) gdf2 = gpd.GeoDataFrame(geometry=[poly2]) # Calcul de l'intersection intersection = gdf1.intersection(gdf2.geometry[0]) # Affichage base = gdf1.plot(color='lightblue', edgecolor='black') gdf2.plot(ax=base, color='salmon', edgecolor='black') gpd.GeoSeries(intersection).plot(ax=base, color='green') plt.title("Intersection entre deux polygones") plt.show()
Explication du code :
On crée deux polygones avec une zone de recouvrement.
La méthode.intersection()
permet d’extraire cette zone.
On affiche les deux formes initiales et la zone verte représentant l’intersection.
Avantages :
-
Permet d’extraire les zones communes entre entités spatiales.
-
Très utile pour des opérations comme :
– l’analyse d’impact environnemental,
– la planification urbaine,
– le croisement entre jeux de données géographiques.
-