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 :

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 entre self et other 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()
    Résultat du code

    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.