Introductie tot GeoPandas

Werken met georuimtelijke data in Python

Joris Van den Bossche

Open source software developer and teacher, GeoPandas maintainer

Ruimtelijke dataformaten

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

In de rest van de cursus:

  • ruimtelijke bestandsformaten (Shapefile, GeoJSON, GeoPackage, ...)
  • GeoPandas: pandas DataFrames met ondersteuning voor ruimtelijke data
Werken met georuimtelijke data in Python

Georuimtelijke data importeren met 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...
Werken met georuimtelijke data in Python

Snel ruimtelijke data visualiseren met GeoPandas

countries.plot()

Werken met georuimtelijke data in Python

De 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
Werken met georuimtelijke data in Python

De 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...
...

Een GeoDataFrame is een tabel met georuimtelijke vectordata:

  • een kolom 'geometry' met de geometrie-informatie
  • andere kolommen: attributen die elke geometrie beschrijven
Werken met georuimtelijke data in Python

Het 'geometry'-attribuut

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
Werken met georuimtelijke data in Python

Ruimtelijk bewuste DataFrame

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
Werken met georuimtelijke data in Python

Samenvatting

Een GeoDataFrame lijkt op een pandas DataFrame:

  • alle functies van een gewone pandas DataFrame werken

maar met extra ruimtelijke features:

  • plot()-methode
  • geometry-attribuut (GeoSeries)
  • ruimtelijke attributen en methoden (bijv. area)
Werken met georuimtelijke data in Python

Laten we oefenen!

Werken met georuimtelijke data in Python

Preparing Video For Download...