Module geopandas
Lorsque les données présents dans notre Dataframe représentent une entité géographique (tel que des coordonnées, une zone géographique, un trajet), ce genre de données peut être visualisé sur une carte.
Deux types de représentations existent pour cette catégorie de données :
a) Matriciel (Raster): une grille de points représentant l'information géospatiale. Cette représentation est utilisée pour les images satellite.
b) Vectoriel : une liste de points discrètes représentant l'information géospatiale. Cette représentation est utilisée dans Google Map par exemple.

Dans ce cours, nous allons manipuler la représentation vectoriel où une donnée peut être : a) Un point , b) Une ligne (liste de deux points ou plus), c) Un polygone (ligne fermée), d) multi-polygone.

Ainsi, selon cette logique, la valeur d'une colonne peux être une liste de points/polygones représentant une entité géo-spatiale.
Des formats de fichier spécifiques ont été développés pour ce genre de Dataset (ShapeFile, GeoJson, GeoPackage). En outre, le module pandas a été étendu pour ce genre de Dataframe dans un module nommé geopandas.
Comme pandas, geopandas propose une méthode read_file permetant de lire un Dataset. Le code suivant crée un objet GeoDataFrame à partir du fichier . shp (ShapeFile) :
import geopandas as gpd
gdf=gpd.read_file("./gpd/DEC_lands.shp")
gdf.head()

Un GeoDataframe étend l'objet Dataframe avec de nouvelles méthodes et fonctionnalités. Particulièrement, la colonne geometry est un colonne particulière qui comporte les données géométriques à tracer.
La méthode plot() de l'objet GeoDataframe permet simplement de tracer les objets géospatiales présentes dans la colonne geometry .
gdf.plot()

Un attribut important de l'objet GeoDataframe est le crs (Coordinate Reference System) qui représente le système de coordonnées géographiques. Pour identifier des emplacements exacts à la surface de la Terre, nous utilisons un système de coordonnées géographiques. Par exemple, essayez de rechercher 35.91801, 0.06266 sur Google Maps. Ces deux chiffres indiquent un endroit exact : Salamandre, Mostaganem, en Algérie. Les deux nombres sont des coordonnées définies par le CRS. Même si la Terre est une sphère tridimensionnelle, nous utilisons un système de coordonnées bidimensionnel de longitude (lignes verticales allant du nord au sud) et de latitude (lignes horizontales allant d'est en ouest) pour identifier une position dans la surface de la Terre.
Dans ce GeoDataframe, le système de coordonnées géographiques utilisé est EPSG:26918. Mais celui-ci peut être changé en réaffectant l'attribut .crs de l'objet GeoDataframe.
gdf.crs
<Projected CRS: EPSG:26918>
Name: NAD83 / UTM zone 18N
Axis Info [cartesian]:
- E[east]: Easting (metre)
- N[north]: Northing (metre)
Area of Use:
- name: North America - between 78°W and 72°W - onshore and offshore. Canada - Nunavut; Ontario; Quebec. United States (USA) - Connecticut; Delaware; Maryland; Massachusetts; New Hampshire; New Jersey; New York; North Carolina; Pennsylvania; Virginia; Vermont.
- bounds: (-78.0, 28.28, -72.0, 84.0)
Coordinate Operation:
- name: UTM zone 18N
- method: Transverse Mercator
Datum: North American Datum 1983
- Ellipsoid: GRS 1980
- Prime Meridian: Greenwich
Un changement de CRS avec la méthode to_crs() introduit automatiquement une translation des coordonnées dans la colonne geometry. vers le nouveau système de coordonnées. Par exemple, initialement les valeurs de la colonne geometry sont les suivants :
gdf.geometry.head()
0 POLYGON ((486093.245 4635308.586, 486787.235 4...
1 POLYGON ((491931.514 4637416.256, 491305.424 4...
2 POLYGON ((486000.287 4635834.453, 485007.550 4...
3 POLYGON ((541716.775 4675243.268, 541217.579 4...
4 POLYGON ((583896.043 4909643.187, 583891.200 4...
Name: geometry, dtype: geometry
Après la translation vers le CRS EPSG:2263, les coordonnées dans la colonne geometry change ainsi que les informations affichées par l'attribut crs (le CRS EPSG:26918 initiale utilise l'unité mètre, après la translation vers EPSG:2263 l'unité utilisée est le pieds [foot] )
gdf.to_crs("EPSG:2263",inplace=True)
display(gdf.crs)
display(gdf.geometry.head())
<Projected CRS: EPSG:2263>
Name: NAD83 / New York Long Island (ftUS)
Axis Info [cartesian]:
- X[east]: Easting (US survey foot)
- Y[north]: Northing (US survey foot)
Area of Use:
- name: United States (USA) - New York - counties of Bronx; Kings; Nassau; New York; Queens; Richmond; Suffolk.
- bounds: (-74.26, 40.47, -71.8, 41.3)
Coordinate Operation:
- name: SPCS83 New York Long Island zone (US Survey feet)
- method: Lambert Conic Conformal (2SP)
Datum: North American Datum 1983
- Ellipsoid: GRS 1980
- Prime Meridian: Greenwich
0 POLYGON ((666192.710 622596.170, 668463.483 62...
1 POLYGON ((685435.256 629296.292, 683388.604 63...
2 POLYGON ((665907.220 624325.765, 662658.515 62...
3 POLYGON ((850286.928 751592.839, 848658.643 75...
4 POLYGON ((997977.275 1519931.685, 997961.628 1...
Name: geometry, dtype: geometry
Syntaxe : Installation
Pour installer geopandas, il suffit d’exécuter. La version 0.14.4 est particulièrement plus utile pour le cours et TP de ce module :
pip install geopandas==0.14.4