Radweganalyse per Smartphone: eine praktische Anwendung

Im Artikel "Radweganalyse per Smartphone" in Ausgabe 35 vom Dezember 2022 beschrieben die Autoren eine Möglichkeit, mittels Smartphone die Qualität von Radwegen zu ermitteln. Im vorliegenden Artikel soll diese Methode nun angewendet und die erhobenen Daten weitergehend analysiert werden.

Hardware Setup

Die Messungen wurden wie im oben genannten Artikel mittels der Software PhyPhox auf einem Xiaomi Smartphone durchgeführt. Da eine "echte" Smartphone-Halterung fürs Fahrrad nicht zur Verfügung stand wurde das Smartphone fix in einem Karton eingepackt und dieser dann auf dem Gepäckträger festgezurrt.

Strecke

Die beispielhaft gefahrene Strecke im Norden von München bietet unterschiedliches Terrain: von Wurzeln durchbrochener Asphalt, kiesbedeckter Feldweg mit Schlaglöchern, neue glatte Asphaltdecke sowie ältere, geflickte Asphaltstraße.

Analysen

Jupyter Notebook

Die Programmiersprache Python hat für diese Art Daten viele Funktionen an Bord und kann einfach mittels externer Bibliotheken erweitert werden. Hinzu kommt, dass mit den Jupyter Notebooks eine komfortable browserbasierte Oberfläche zur Visualisierung zur Verfügung steht.

Sie finden das Jupyter Notebook zusammen mit dem beschriebenen Beispieldatensatz in GitLab. Das Git-Repository ist frei verfügbar und kann mit den üblichen Git-Tools lokal geclont und bearbeitet werden:

GitLab Repository

Wer nur einen schnellen Blick auf die Analysen werfen will kann dies über folgenden Link tun:

Radweganalyse Notebook auf MyBinder

In MyBinder Service ist noch ein weiterer Schritt nötig um die Karte anzuzeigen im Notebook anzuzeigen: klicken Sie auf "View / Activate Command Palette", Suchen Sie nach "Trust" und aktivieren Sie die Funktion "Trust Notebook".

Die Anwendung

Was passiert nun in dem Notebook? Die enthaltene Zip-Datei "whg-forschungszentrum.zip" enthält die Daten eines mittels PhyPhox erstellten Experiments. Das Script liest die Daten des Bewegungs- und des GPS-Sensors aus. Anschließend werden diese wie folgt analysiert und visualisiert:

  1. Als erstes wird ein Histogram der Z-Werte des Bewegungsseonsrs angezeigt.
  2. Die aufgezeichneten Daten beinhalten wesentlich weniger GPS-Points als Bewegungs-Punkte. Deswegen wird über die Bewegungs-Punkte ein wanderndes Fenster von der Größe Anzahl Bewegungs-Punkte / Anzahl Geo-Punkte gelegt. Innerhalb dieses Fensters wird der absolute Maximalwert der Z-Koordinate der enthaltenen Bewegungs-Punkte berechnet und dieser Wert dem entsprechenden Geo-Punkt zugewiesen (siehe unten stehende Grafik). Diese Maximal-Werte dienen als Ausgangspunkt für die weiteren Analysen!
  3. Als nächstes folgt ein Histogram der Maximalwerte
  4. Last not least, eine interaktive Karte auf der alle GPS-Punkte dargestellt werden. Überschreitet der zugewiesene Maximalwert des jeweiligen GPS-Punktes den in der Funktion SensorCode.drawMap als 4. Parameter angegebenen Threshold-Wert, so wird der Punkt rot dargestellt, ansonsten grau.

Die roten Punkte auf der Karte stellen also die größten "Hüpfer" dar die das Smartphone auf dem Weg aufgezeichnet hat.

Haben Sie selber Daten mittels PhyPhox aufgezeichnet, so können Sie sie im ZIP-Format in das laufende Jupyter Notebook hochladen (Seitenleiste links aufklappen, Button "Upload Files"). Das PhyPhox-Experiemnet muss mindestens die Daten des Bewegungssensors (Datei "Accelerometer.csv") sowie die GPS-Daten ("Location.csv") beinhalten. Anschließend ändern Sie am Anfang des Notebooks die folgende Zeile ab:

archiveFile = "whg-forschungszentrum.zip"

Statt der enthaltenen Zip-Datei geben Sie den Namen Ihrer Zip-Datei an und lassen das Notebook anschließend über den Menüpunkt "Run / Run all cells" alle Zellen neu berechnen.

Wer weitergehendes Interesse an dem Python-Code hat: die meiste Arbeit wird im Modul "SensorCode.py" verrichtet. Neben dem Jupyter-Notebook gibt es das Script "batch-analysis.py" welches eine ganze Reihe an Zip-Dateien im PhyPhox-Format analysiert und unterschiedlichste Analysen und Ausgaben tätigt. Dieses Script gibt die errechneten Maximal-Werte zusammen mit dem GPS-Koordinaten in unterschiedlichster Form aus. Unter anderem auch als einfache CSV-Datei, die als Grundlage der Analyse im nächsten Artikel dient.

Geographical Information System

Die oben gezeigte Analyse der aufgezeichneten Daten mittels Python ist sehr flexible, mit wenigen Zeilen Code lässt sich problmelos an eigene Fragestellungen und Datenbestände anpassen. Allerdings muss es nicht immer Programmcode sein: die mittels Python berechneten und den GPS-Punkten zugeordneten "Maximalen Werte" können auch in fertiger Software analysiert werden (oben beschrieben CSV-Datei).

Ein sehr umfangreiches Programm zur Analyse geographischer Daten ist QuantumGIS. In dieses wird die CSV-Datei mit Maximalwerten und GPS-Koordinaten als "Layer" eingeladen. Ein weiterer Layer zeigt im Hintergrund die OSM-Karte an.

In den Eigenschaften des Layers finden sich unter "Symbolisierung" nun vielfältige Möglichkeiten, die GPS-Punkte aufgrund ihrer Maximal-Werte einzufärben. Es lohnt sich, hier die unterschiedlichen mathematischen Klassifizierungen und Visualisierungen auszprobieren.

Ergebnis

Wie sieht es nun aber aus mit unserem Beispieldatensatz? Im folgenden einige Screenshots der in Quantum GIS angelegten Analyse. Die einzelnen GPS-Punkte sind nach ihrem Maximalwert eingefärbt - je dunkler, desto kleiner der Wert, über verschiedene Rottöne geht es dann bis hin zu einem fast weißen Farbton (siehe auch Screenshot oben). Es wurde der Algorithmus "Gleiches Intervall" mit 10 Klassen gewählt.

Der erste Ausschnitt zeigt einige hellere Punkte - also "holprigeren" Weg - beim Umfahren einer Straßenmündung. Hier sind jeweils zwei größere Bordsteine im Spiel, die für das Verwackeln einiger GPS-Punkte sorgen:

Der zweite Abschnitt beginnt mit einer kleinen Steigung - auch diese ist gut sichtbar durch einige hellere Punkte. Danach folgt ein kiesbedeckter Feldweg, der sich generell gut fahren läßt aber durchgehend kleinere "Wackler" zeigen sich in etwas helleren Punkten.

Last not least - ganz neu asphaltierter Weg. Hier finden sich fast ausschließlich dunkle Punkte was auf eine ruhige und ungestörte Fahrt hinweist:

Fazit

Die Radweganalyse mit dem Smartphone funktioniert. Mittels der PhyPhox-App lassen sich die Daten der Smartphone-Sensoren leicht kombiniert aufzeichnen und zur Weiterverarbeitung bequem exportieren. Dabei sind die hier gezeigten Analysen via Python oder QuantumGIS nur als Beispiele gedacht. Weitere Algorithmen, Visualisierungen oder Parametrisierungen eröffnen nahezu unendliche Möglichkeiten zur Auswertung der Sensor-Daten.