Özel mekânsal işlemler uygulama

Python ile Coğrafi Verilerle Çalışma

Joris Van den Bossche

Open source software developer and teacher, GeoPandas maintainer

Python ile Coğrafi Verilerle Çalışma

Her şehrin 50 km içinde toplam nehir uzunluğu?

Tek bir nokta için (cairo):

area = cairo.buffer(50000)

rivers_within_area = rivers.intersection(area)
print(rivers_within_area.length.sum() / 1000)
186.397219642
Python ile Coğrafi Verilerle Çalışma

apply() yöntemi

Series.apply(): Serinin her değerine bir fonksiyon uygular

Series.apply(function, **kwargs)

  • function: Her değere çağrılan fonksiyon; değer ilk argüman olarak geçirilir
  • **kwargs: Fonksiyona iletilen ek argümanlar

Bir GeoSeries için, fonksiyon her geom için function(geom, **kwargs) şeklinde çağrılır

Python ile Coğrafi Verilerle Çalışma

Özel bir mekânsal işlem uygulama

Uygulanacak fonksiyon:

def river_length(geom, rivers):
    area = geom.buffer(50000)
    rivers_within_area = rivers.intersection(area)
    return rivers_within_area.length.sum() / 1000

Tek bir geometri üzerinde çağırma:

river_length(cairo, rivers=rivers)
186.3972196423455

Tüm şehirlere uygulama:

cities.geometry.apply(river_length, rivers=rivers)
Python ile Coğrafi Verilerle Çalışma

Özel bir mekânsal işlem uygulama

Tüm şehirlere uygulama:

cities.geometry.apply(river_length, rivers=rivers)
0        0.000000
1        0.000000
2      106.072198
          ...    
Python ile Coğrafi Verilerle Çalışma

Özel bir mekânsal işlem uygulama

Tüm şehirlere uygulama ve sonucu yeni bir sütuna atama:

cities['river_length'] = cities.geometry.apply(river_length, rivers=rivers)
cities.head()
             name                       geometry  river_length
0    Vatican City    POINT (1386304.6 5146502.5)      0.000000
1      San Marino    POINT (1385011.5 5455558.1)      0.000000
2           Vaduz    POINT (1059390.7 5963928.5)    106.072198
..            ...                            ...           ...
Python ile Coğrafi Verilerle Çalışma

Hadi pratik yapalım!

Python ile Coğrafi Verilerle Çalışma

Preparing Video For Download...