Nun ist es Zeit, dass ihr selbst mit GeoDataFrames Hand anlegt. Achtet dabei immer auf die Datentypen eurer Daten (mit type) und konsultiert dazu Aufbau von GeoDataFrames. Zudem ist Geopandas gut dokumentiert, es lohnt ich diese immer wieder zu konsultieren: geopandas.org
Übung 14.1
Importiere Geopandas und wandle zeckenstiche in eine GeoDataFrame um (zeckenstiche). Vergiss nicht, das Koordinatenbezugssystem festzulegen!
Musterlösung
import pandas as pdimport geopandas as gpd# Übung 14.1zeckenstiche = pd.read_csv("data/zeckenstiche.csv")geom = gpd.points_from_xy( zeckenstiche['x'], # ↘ zeckenstiche['y'] # → die Geometrie Spalte ) zeckenstiche_gpd = gpd.GeoDataFrame( zeckenstiche, # die DataFrame ("Attributtabelle") geometry = geom, # crs =2056# das Koordinatenbezugssystem (EPSG Code))
Übung 14.2
Buffere die Zeckenstiche um eine Distanz von 12 Meter und speichere den Output in der Variabel zeckenstiche_buffer. Visualisiere die gebufferten Punkte mit .explore().
NameError: name 'zeckenstiche_buffer' is not defined
Übung 14.4
Nutze nachstehenden Code um zwei Datensätze im gleichen Plot darzustellen.
Musterlösung
# Nicht interaktiv:from matplotlib import pyplot as pltfig, ax = plt.subplots()zeckenstiche_buffer_outline.plot(ax = ax, color ="green")zeckenstiche_gpd.plot(ax = ax, color ="pink")
ModuleNotFoundError: No module named 'matplotlib'
Musterlösung
# Interaktiv:base = zeckenstiche_buffer_outline.explore(color ="green")zeckenstiche_gpd.explore(m = base, color ="pink")
NameError: name 'zeckenstiche_buffer_outline' is not defined
Übung 14.5
Berechne das “Envelope” von zeckenstiche_gpd anhand der Beispiele in Räumliche Operationen. Speichere den Output als zeckenstiche_envelope.
Hinweis
Denk daran, dass du zuerst noch einen Union machen musst (siehe Räumliche Operationen)
Exportiere zeckenstiche_gpd als “Geopackage” mit dem Namen “zeckenstiche.gpkg”. Lese nochmal Geodatenformate wenn du nicht mehr weisst, wie das geht. Versuche anschliessend, “zeckenstiche.gpkg” wieder einzulesen.