Bereits zum dritten Mal öffnete die Fachhochschule Nordwestschweiz (FHNW) ihre Tore zur GeoPython-Konferenz. Während dreier Tage trafen sich vom 7. bis 9. Mai Geo-Interessierte aus aller Welt in Muttenz, um über die neuesten Trends und Packages rund um Python zu diskutieren. Da wir bei EBP Python oft auch für Datenanalysen und die Arbeit mit Geodaten einsetzten, war ich für EBP dabei und möchte Ihnen einen Überblick über die Veranstaltung geben.
Räumliche Analysen mit GeoPandas
Martin Christen eröffnete die Konferenz ganz unkonventionell (und sehr sympathisch) mit einer rein analogen Ansprache ohne PowerPoint, Beamer und Co. sowie dem Versprechen, dass die GeoPython 2019 im brandneuen FHNW–Standort stattfinden werde. Pünktlich zum Beginn der ersten Workshops war auf technischer Seite alles wieder bereit und schon stand eine schwierige Entscheidung an: Soll es der Workshop zur Datenanalyse mit GeoPandas werden oder jener zur Erstellung von QGIS-Makros mit PyQGIS?
Ich habe mich für GeoPandas entschieden und diese Wahl keineswegs bereut: Joris Van den Bossche führte nachvollziehbar und verständlich mittels Jupyter Notebooks durch die Funktionalitäten von Shapely, Pandas und GeoPandas. Insbesondere Coderinnen und Coder, die bereits mit der Programmiersprache R gearbeitet haben, werden das hier verwendete GeoDataFrame-Konstrukt wiedererkennen und schätzen. Dieses erlaubt es beispielsweise, räumliche Operationen nicht nur auf einzelne Objekte, sondern gleich auf alle Elemente einer Matrix anzuwenden. Der Workshop behandelte neben den möglichen räumlichen Operationen auch die Visualisierung der Resultate und gab einen guten Überblick über die Möglichkeiten von GeoPandas.
Der GeoPandas Workshop war gespickt mit Übungen zum selbst Programmieren. Die Verzahnung von Theorie- und Code-Blöcken gehört definitiv zu den Hauptvorteilen von Jupyter-Notebooks. Quelle: GeoPython 2018
Nachbarschaftsmatrizen als räumliche Alternative
GeoPandas begegnete den Teilnehmenden dann auch wieder beim Data Science Workshop am Nachmittag. Im Fokus stand dabei allerdings ein anderes Thema, nämlich PySAL. Dieses Package stellt diverse Methoden zur statistischen Auswertung und räumlichen Analyse zur Verfügung. Für Letzteres nutzt PySAL, anders als GeoPandas, Nachbarschaftsmatrizen. Über solche Matrizen wird festgehalten, welche Art von räumlicher Beziehung besteht und wie stark sie ausgeprägt ist.
Beispielsweise lässt sich ausgehend von einem Punktdatensatz die Nachbarschaft mittels Berechnung der Thiessen-Polygone bestimmen, wobei die Distanz der Punkte untereinander auch gleich die Gewichtungsmatrix ergibt. Je nach gewähltem Kriterium resultieren dabei andere Nachbarschaften. Das Rook-Kriterium beispielsweise sieht vor, dass zwei Polygone sich mindestens eine Kante teilen müssen, um als Nachbarn zu gelten (vgl. Rook’s Case in Rasteranalysen). Auf den Nachbarschaftsmatrizen lassen sich räumliche Analysen wie beispielsweise eine Kernel Density Estimation (KDE) sehr schnell und ressourcenschonend berechnen.
Um die Nachbarschaftsmatrix eines Punkt-Datensatzes zu erstellen, werden Thiessen Polygone gebildet (links). Rechts ist die Nachbarschaftsmatrix grafisch dargestellt. Quelle: Levi John Wolf und Serge Rey auf github.
Big Data leicht gemacht
Ein weiterer Schwerpunkt der GeoPython war Machine Learning. Anhand verschiedener Projekte wurde demonstriert, wozu neuronale Netze bereits fähig sind. Beispielsweise um Verspätungen im öffentlichen Verkehr vorherzusagen. Anhand der Echtzeitpositionen der Busse, dem Soll-Fahrplan und weiteren Variablen wie Wetter und Ferienkalender wurde ein Modell trainiert, das als Entscheidungsgrundlage für das Busunternehmen dienen soll. Damit sollen unter anderem die Kundeninformation verbessert oder Extrabusse bei Bedarf möglichst ökonomisch eingesetzt werden.
Ein anderes Projekt verwendete Machine Learning im klassischen Anwendungsfall der Bilderkennung, um zum Klettern geeignete Felswände in unbekannten Gebieten zu entdecken. Wie in den anderen Machine Learning Projekten wurde auch hier eine Kombination aus Pandas, TensorFlow und Keras eingesetzt. Das manuell erstellte Trainingsdatenset wurde in TensorFlow geladen, um den Klassifikator zu trainieren, der anschliessend Luftbildern einen «Klettergebiet» Score zugewiesen hat. Auch wenn der Referent noch keine Gelegenheit fand, sämtliche potenziellen Klettergebiete selbst zu «verifizieren», waren die bisherigen Ergebnisse bereits vielversprechend.
Einen sehr anschaulichen Beitrag zum Themenblock bildete der Vortrag von Google, bei dem die verschiedenen hauseigenen Machine Learning APIs vorgestellt wurden. Anstatt eigene Modelle zu trainieren, kann durch die APIs auf fixfertig trainierte und spezialisierte Modelle zurückgegriffen werden. Diese umfassen beispielsweise Textanalysen, bei denen sowohl der Inhalt als auch die Stimmungslage ausgewertet werden. Auch Google Translator basiert seit einiger Zeit auf einem neuronalen Netzwerk, was gegenüber dem früheren statistischen Modell eine deutliche Verbesserung beim Übersetzen von ganzen Sätzen gebracht habe. Ein besonderes Augenmerk legte der Referent auf die Vision API zur Bilderkennung. So demonstrierte er sehr eindrücklich dessen Fähigkeiten, indem er Fotos vom Eiffelturm in Paris und von dessen Replikat in Las Vegas auswerten liess. Dass der Eiffelturm als solches erkennt wurde, war zugegebenermassen nicht allzu überraschend. Dass aber das Replikat zuverlässig in Las Vegas verortet wurde, obwohl keine anderen baulichen Erkennungsmerkmale im Hintergrund zu sehen sind, war hingegen erstaunlich.
Dies ist nicht der Eiffeltum in Paris, sondern dessen Nachbildung beim Paris Hotel and Casino in Las Vegas. Kein Problem für Google Vision. Quelle: Laurent Picard auf Speaker Deck.
Wissensdurstige aus aller Welt
Dies war mein erster Besuch an der GeoPython. Was mich rückblickend am Meisten erstaunt hat, war, wie international diese Konferenz ist. Nicht nur die Vortragenden kamen aus aller Welt, auch das Publikum war geografisch bunt gemischt. Wie ich in persönlichen Gesprächen mit auswärtigen Teilnehmenden erfahren habe, kommt dies nicht von ungefähr: Im Vergleich zu anderen Python-Veranstaltungen schätzen sie vor allem die sachbezogenen Präsentationen und den Austausch mit gleichgesinnten Fachleuten (ein Faktor, der ja auch das GeoBeer attraktiv macht). So verwundert es dann auch nicht, dass die GeoPython sich ein solches Renommee erarbeitet hat – ziemlich beachtlich für eine erst dreijährige Veranstaltung!
Die GeoPython 2018 endete nach vielen lehrreichen Präsentationen und interessanten Gesprächen. Ich freue mich jedenfalls schon auf die GeoPython 2019.