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 :
- Comparaison ou fusion de plusieurs jeux de données avec des CRS différents
- Calculs de métriques spatiales comme les distances ou les surfaces
- Préparation à la visualisation cartographique avec des projections spécifiques
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 commeNone
.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)
Explication du code :
-
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. -
La méthode
to_crs(epsg=32633)
est utilisée pour transformer les coordonnées duGeoDataFrame
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. -
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 unGeoDataFrame
sans CRS ou dans un CRS inconnu, vous devrez d'abord lui attribuer un CRS avecset_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.
-