Transformer les coordonnées avec GeoDataFrame.to_crs() 

En géomatique et analyse spatiale, les systèmes de coordonnées jouent un rôle fondamental. Chaque jeu de données géographiques est associé à un système de projection ou de référence spatiale, appelé CRS (Coordinate Reference System). Pour effectuer des analyses cohérentes ou combiner plusieurs sources de données, il est souvent nécessaire de transformer les géométries d’un système de coordonnées à un autre.

La bibliothèque GeoPandas permet cette opération via la méthode to_crs() appliquée à un GeoDataFrame. Elle permet de reprojeter les données spatiales dans un nouveau système de coordonnées de manière simple et rapide.

Par exemple, on peut convertir des coordonnées en degrés décimaux (WGS84, EPSG:4326) vers un système métrique local (comme UTM) pour effectuer des mesures de distances ou de surfaces plus précises.

L’utilisation de to_crs() est particulièrement utile dans les cas suivants :

En transformant les géométries tout en conservant les autres colonnes intactes, to_crs() facilite un travail spatial rigoureux et conforme aux normes de projection géographique.

Fonctions :

  • GeoDataFrame.to_crs()

    La méthode GeoDataFrame.to_crs() permet de transformer les coordonnées géographiques d’un GeoDataFrame dans un autre système de référence de coordonnées (CRS - Coordinate Reference System). Cela est utile pour effectuer des calculs géospatiaux ou pour standardiser les données selon un CRS spécifique.

    Importation :

    import geopandas as gpd

    Attributs :

    Paramètre Type Description Valeur par défaut
    crs str, dict ou pyproj.CRS Système de référence de coordonnées (CRS) cible dans lequel les géométries doivent être transformées. None
    epsg int Code EPSG du CRS cible. Utilisé si crs est défini comme None. None
    always_xy bool Si True, force l'utilisation des coordonnées cartésiennes (X, Y), même pour les systèmes géographiques. False

    Exemple de code :

    import geopandas as gpd
    from shapely.geometry import Point
    
    # Création d’un GeoDataFrame avec un système de coordonnées géographiques (WGS84)
    gdf = gpd.GeoDataFrame({
        'id': [1, 2, 3],
        'geometry': [Point(0, 0), Point(1, 1), Point(2, 2)],
        'name': ['A', 'B', 'C']
    }, crs="EPSG:4326")  # WGS84 (Latitude/Longitude)
    
    # Transformation des coordonnées en un CRS projeté (par exemple, UTM)
    gdf_transformed = gdf.to_crs(epsg=32633)  # UTM zone 33N
    
    # Affichage du GeoDataFrame après transformation du CRS
    print(gdf_transformed)
    Résultat du code

    Explication du code :

    1. Un GeoDataFrame est créé avec un système de référence de coordonnées (CRS) basé sur le système WGS84 (EPSG:4326), qui est un système de coordonnées géographiques couramment utilisé pour la latitude et la longitude.

    2. La méthode to_crs(epsg=32633) est utilisée pour transformer les coordonnées du GeoDataFrame en un autre CRS, ici le système de projection UTM zone 33N (EPSG:32633), qui est un système de coordonnées projetées utilisé pour des calculs plus précis sur de petites zones géographiques.

    3. Le GeoDataFrame résultant possède des coordonnées projetées selon le CRS spécifié, et il peut être utilisé pour des calculs géospatiaux précis ou pour l'affichage sur des cartes dans ce CRS.

    Remarque importante :

    • Avant de transformer les coordonnées d'un GeoDataFrame, il est essentiel que celui-ci ait déjà un CRS défini. Si vous avez un GeoDataFrame sans CRS ou dans un CRS inconnu, vous devrez d'abord lui attribuer un CRS avec set_crs().

    • L'utilisation de codes EPSG est courante pour spécifier des CRS, mais vous pouvez aussi utiliser une chaîne de caractères ou un dictionnaire décrivant le CRS cible.