GeoPandas’a Giriş

Python ile Coğrafi Verilerle Çalışma

Joris Van den Bossche

Open source software developer and teacher, GeoPandas maintainer

Mekansa­le özgü veri biçimleri

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

Kursun devamında:

  • mekansal dosya biçimleri (Shapefile, GeoJSON, GeoPackage, ...)
  • GeoPandas: mekansal veriyi destekleyen pandas dataframeleri
Python ile Coğrafi Verilerle Çalışma

GeoPandas ile mekansal veri içe aktarma

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...
Python ile Coğrafi Verilerle Çalışma

GeoPandas ile mekansal veriyi hızla görselleştirme

countries.plot()

Python ile Coğrafi Verilerle Çalışma

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
Python ile Coğrafi Verilerle Çalışma

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

Bir GeoDataFrame, tablolu bir mekansal vektör veri kümesidir:

  • bir 'geometry' sütunu: geometrileri tutar
  • diğer sütunlar: geometrilerin öznitelikleri
Python ile Coğrafi Verilerle Çalışma

'geometry' özelliği

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
Python ile Coğrafi Verilerle Çalışma

Mekansal farkındalıklı 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
Python ile Coğrafi Verilerle Çalışma

Özet

GeoDataFrame, bir pandas DataFrame’i gibidir:

  • normal pandas DataFrame özellikleri çalışır

ama mekansal işlevlerle güçlendirilmiştir:

  • plot() metodu
  • geometry özniteliği (GeoSeries)
  • mekansa­le özgü öznitelik ve metotlar (örn. area)
Python ile Coğrafi Verilerle Çalışma

Hadi pratik yapalım!

Python ile Coğrafi Verilerle Çalışma

Preparing Video For Download...