Aangepaste ruimtelijke bewerkingen toepassen

Werken met georuimtelijke data in Python

Joris Van den Bossche

Open source software developer and teacher, GeoPandas maintainer

Werken met georuimtelijke data in Python

Totale rivierlengte binnen 50 km van elke stad?

Voor één punt (cairo):

area = cairo.buffer(50000)

rivers_within_area = rivers.intersection(area)
print(rivers_within_area.length.sum() / 1000)
186.397219642
Werken met georuimtelijke data in Python

De methode apply()

Series.apply(): voer een functie uit op elk waarde-element van de Series

Series.apply(function, **kwargs)

  • function: de functie die op elke waarde wordt aangeroepen; de waarde gaat als eerste argument mee
  • **kwargs: extra argumenten voor de functie

Voor een GeoSeries wordt de functie aangeroepen als function(geom, **kwargs) voor elke geom in de GeoSeries

Werken met georuimtelijke data in Python

Een aangepaste ruimtelijke bewerking toepassen

De toe te passen functie:

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

Functie aanroepen op één geometrie:

river_length(cairo, rivers=rivers)
186.3972196423455

Toepassen op alle steden:

cities.geometry.apply(river_length, rivers=rivers)
Werken met georuimtelijke data in Python

Een aangepaste ruimtelijke bewerking toepassen

Toepassen op alle steden:

cities.geometry.apply(river_length, rivers=rivers)
0        0.000000
1        0.000000
2      106.072198
          ...    
Werken met georuimtelijke data in Python

Een aangepaste ruimtelijke bewerking toepassen

Toepassen op alle steden en resultaat aan nieuwe kolom toewijzen:

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

Laten we oefenen!

Werken met georuimtelijke data in Python

Preparing Video For Download...