Introduction à GeoPandas

Travailler avec des données géospatiales en Python

Joris Van den Bossche

Open source software developer and teacher, GeoPandas maintainer

Formats de données propres au spatial

restaurants = pd.read_csv("datasets/paris_restaurants.csv")
restaurants.head()
                                             type         x          y
0                             Restaurant européen  259641.6  6251867.4
1                Restaurant traditionnel français  259572.3  6252030.2
2                Restaurant traditionnel français  259657.2  6252143.8
3  Restaurant indien, pakistanais et Moyen Orient  259684.4  6252203.6
4                Restaurant traditionnel français  259597.9  6252230.0

Dans la suite du cours :

  • formats de fichiers spatiaux (Shapefile, GeoJSON, GeoPackage, ... )
  • GeoPandas : DataFrames pandas avec prise en charge des données spatiales
Travailler avec des données géospatiales en Python

Importer des données géospatiales avec GeoPandas

import geopandas
countries = geopandas.read_file("countries.geojson")
countries.head()
          name      continent       gdp                            geometry
0  Afghanistan           Asia   64080.0  POLYGON ((61.21 35.65, 62.23 35...
1       Angola         Africa  189000.0  MULTIPOLYGON (((23.90 -11.72, 2...
2      Albania         Europe   33900.0  POLYGON ((21.02 40.84, 21.00 40...
4    Argentina  South America  879400.0  MULTIPOLYGON (((-66.96 -54.90, ...
5      Armenia           Asia   26300.0  POLYGON ((43.58 41.09, 44.97 41...
Travailler avec des données géospatiales en Python

Visualiser rapidement des données spatiales avec GeoPandas

countries.plot()

Travailler avec des données géospatiales en Python

Le GeoDataFrame

countries.head()
          name      continent       gdp                            geometry
0  Afghanistan           Asia   64080.0  POLYGON ((61.21 35.65, 62.23 35...
1       Angola         Africa  189000.0  MULTIPOLYGON (((23.90 -11.72, 2...
2      Albania         Europe   33900.0  POLYGON ((21.02 40.84, 21.00 40...
...
type(countries)
geopandas.geodataframe.GeoDataFrame
Travailler avec des données géospatiales en Python

Le GeoDataFrame

countries.head()
          name      continent       gdp                            geometry
0  Afghanistan           Asia   64080.0  POLYGON ((61.21 35.65, 62.23 35...
1       Angola         Africa  189000.0  MULTIPOLYGON (((23.90 -11.72, 2...
2      Albania         Europe   33900.0  POLYGON ((21.02 40.84, 21.00 40...
...

Un GeoDataFrame représente un jeu de données vectoriel géospatial tabulaire :

  • une colonne « geometry » : contient l'information géométrique
  • autres colonnes : des attributs décrivent chaque géométrie
Travailler avec des données géospatiales en Python

L'attribut « geometry »

countries.geometry
0      POLYGON ((61.21 35.65, 62.23 35...
1      MULTIPOLYGON (((23.90 -11.72, 2...
                      ...                
175    POLYGON ((23.22 -17.52, 22.56 -...
176    POLYGON ((29.43 -22.09, 28.79 -...
Name: geometry, Length: 176, dtype: object
type(countries.geometry)
geopandas.geoseries.GeoSeries
Travailler avec des données géospatiales en Python

DataFrame conscient du spatial

countries.geometry.area
0       63.593500
1      103.599439
2        3.185163
          ...    
174    112.718524
175     62.789498
176     32.280371
Length: 177, dtype: float64
Travailler avec des données géospatiales en Python

Résumé

Un GeoDataFrame est comme un DataFrame pandas :

  • toutes les fonctionnalités des DataFrames pandas classiques fonctionnent

mais il est enrichi pour le spatial :

  • méthode plot()
  • attribut geometry (GeoSeries)
  • attributs et méthodes propres au spatial (p. ex. area)
Travailler avec des données géospatiales en Python

Passons à la pratique !

Travailler avec des données géospatiales en Python

Preparing Video For Download...