Pengantar GeoPandas

Bekerja dengan Data Geospasial di Python

Joris Van den Bossche

Open source software developer and teacher, GeoPandas maintainer

Format data khusus spasial

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

Di sisa kursus ini:

  • format berkas spasial (Shapefile, GeoJSON, GeoPackage, ...)
  • GeoPandas: pandas DataFrame dengan dukungan data spasial
Bekerja dengan Data Geospasial di Python

Mengimpor data geospasial dengan 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...
Bekerja dengan Data Geospasial di Python

Visualisasi cepat data spasial dengan GeoPandas

countries.plot()

Bekerja dengan Data Geospasial di Python

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
Bekerja dengan Data Geospasial di Python

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

GeoDataFrame merepresentasikan dataset vektor geospasial tabular:

  • kolom 'geometry': menyimpan informasi geometri
  • kolom lain: atribut yang menjelaskan tiap geometri
Bekerja dengan Data Geospasial di Python

Atribut '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
Bekerja dengan Data Geospasial di Python

DataFrame sadar spasial

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
Bekerja dengan Data Geospasial di Python

Ringkasan

GeoDataFrame mirip dengan pandas DataFrame:

  • semua fitur DataFrame pandas biasa tetap berfungsi

tetapi ditambah fungsi spasial:

  • metode plot()
  • atribut geometry (GeoSeries)
  • atribut dan metode khusus spasial (mis. area)
Bekerja dengan Data Geospasial di Python

Ayo berlatih!

Bekerja dengan Data Geospasial di Python

Preparing Video For Download...