###### tags: `obs` `qgis`
# HOWTO: OpenBikeSensor-Datenanalyse mit QGIS
Dieses HOWTO beschreibt wie man eine OpenBikeSensor-Datenanalyse mit QGIS durchführen kann.
## OpenBikeSensor-Portal
### Daten-Export
* Das Portak öffnen und auf **Export** klicken:
1. Den zu exportierenden Bereich wählen wir als Bounding Box auf der Karte mit zwei Klicks aus.
2. Mit Klick auf **Export** erhalten wir einen Dateidownload. Ggf. mit **Strg+S** als **JSON** abspeichern.
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b068.png)
## QGIS
### Installation
#### Linux
```bash
sudo pip3 install pandas
sudo apt-get install qgis
```
#### Windows
* Installer (MSI) herunterladen und installieren:
* https://qgis.org/en/site/forusers/alldownloads.html#windows
### Bedienfelder einblenden
* **Ansicht -> Bedienfelder**
1. Browser
2. Layer
3. Layergestaltung
4. Statistik
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b069.png)
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b06a.png)
### Projekt anlegen
* Über **Projekt -> Neu** ein neues Projekt anlegen
* **Projekt -> Speichern**
### OpenSteetMap-Karte einbinden
* Im Bedienfeld **Browser** auf der linken Seite **XYZ Tiles -> OpenStreetMap** wählen und in die Layers darunter ziehen. Nun sollte die Weltkarte erscheinen.
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b06b.png)
* Die Karte ist nun bunt:
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b06c.png)
* Rechts im Bedienfelder **Layergestaltung** unter **Layerdarstellung -> Graustufen** auf **Nach Leuchtkraft** stellen.
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b06d.png)
* In der Statusleiste ganz unten rechts auf die Projektion (EPSG:4326) klicken.
* In der Suche 3857 eingeben und **WSG 84 / Pseudo-Mercator, EPSG:3857** auswählen.
> EPSG3857 The most common CRS for online maps, used by almost all free and commercial tile providers. Uses Spherical Mercator projection. Set in by default in Map's crs option.|
* https://gis.stackexchange.com/questions/48949/epsg-3857-or-4326-for-googlemaps-openstreetmap-and-leaflet
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b06e.png)
* Nun sollte die Karte korrekt skaliert sein, wie man es von Online-Karten kennt.
### JSON-Datei importieren
* Die exportierte Datei mittels **Drag & Drop** in den Bereich **Layer** ziehen.
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b06f.png)
* Rechtsklick auf den **Layer -> Auf Layer zoomen** sollte den Kartenausschnitt korrekt anpassen.
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b070.png)
* Die Karte sollte nun alle exportierten Überholmanöver als Punkte auf der Karte anzeigen.
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b071.png)
### Erste Statistik
* "Objekte über Polygon wählen" auswählen
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b072.png)
* Mit Linksklick ein Polygon ziehen...
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b074.png)
* ..und mit Rechtsklick bestätigen (die Auswahl ist nun gelb):
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b064.png)
* Statistik-Ansicht unten links:
1. Layer wählen
2. Datentyp `distance_overtaker` wählen
3. "Nur gewählte Objekte" wählen
* Nun sollte die Statistik für die gewählten Objekte zu sehen sein, z.B. der Median-Überholabstand mit 2,26m:
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b076.png)
### Filter für <1,5m
* Erneut die exportierte Datei mittels **Drag & Drop** in **Layer** ziehen
* **Rechtsklick -> Layer umbennen**
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b077.png)
* Ergebnis:
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b078.png)
* **Rechtsklick -> Filter**
* Alle Abstände **<1,5m** und **>10cm** (um Müll zu filtern)
* `"distance_overtaker" < 1.5 AND "distance_overtaker" > 0.10`
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b065.png)
* Rechtsklick -> Eigenschaften
* Farbe: rot
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b07a.png)
* Wiederholen für **>=1,5m**
* Datei erneut hinzufügen
* Layer umbennnen
* Filter `"distance_overtaker" >= 1.5`
* Statsitik:
1. Layer im Layer-Bereich "<1,5" wählen
2. Punkte mit Polygon auf der KArte wählen
3. Layer im Statistik-Bereich "<1,5" wählen
4. `distance_overtaker` im Statistik-Bereich wählen
5. "Nur gewählte Objekte" im Statistik-Bereich wählen
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b07b.png)
### Attributtabelle
* Datenpunkte mit dem Polgon-Werkzeug wählen
* Attributtabelle öffnen
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b07c.png)
* Fenster konfigurieren:
1. Links unten: **Alle gewählten Objekte**
2. Rechts unten: **Tabellenansicht**
3. Es ist zu sehen, dass **145 Objekte gefiltert** werden
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b07f.png)
### Polygon
* **Layer -> Layer erstellen -> Shapedatei-Layer**
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b080.png)
1. Name: Fackenburger
2. Geometrietyp: Polygon
3. Projekt-KBS wählen (EPSG:3857)
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b081.png)
* Der Layer taucht im Layer-Bedienfeld auf:
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b082.png)
* Polygon erstellen
1. Layer wählen
2. In Leiste den "Stift" wählen um den **Bearbeitungstatus umzuschalten**:
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b083.png)
* Polygonobjekt hinzufügen:
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b084.png)
* Polygon selektieren (mit Linksklick markieren und Ende mit Rechtsklick abschließen)
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b085.png)
* Ein ID wählen, z.B. `1`:
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b086.png)
* Der Layer sollte in der Layer-Ansicht zu finden sein und in der Karte zu sehen sein:
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b087.png)
### Punkte mit Polygon verschneiden
* Voraussetzung:
* Polygon und Punkte-Set existieren
* **Vektor -> Geoverarbeitungswerkzeuge -> Verschneidung**:
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b088.png)
* Verschneidung konfigurieren:
1. Oben: Punkte-Set wählen
2. Unten: Polygon wählen
3. Layer in Datei speichern (**nicht temporär wählen**, da diese sonst verloren gehen!)
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b08f.png)
* Layer der Verschneidung wählen:
* Man sieht, dass nur die Punkte im Bereich des Polgons angezeigt werden:
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b090.png)
* Statsitik:
1. Layer "Verschneidung" wählen
2. Alle Punkte auf der Karte wählen
3. In der Statisik den Layer "Verschneidung" wählen
4. `distance_overtaker` im Statistik-Bereich wählen
5. "Nur gewählte Objekte" im Statistik-Bereich wählen
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b08b.png)
* Filter
* Rechtklick auf **Layer -> Filter**
* ![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b08d.png)
* Alle Punkte wählen und Statistik neu ansehen:
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b08e.png)
## Eigene Felder definieren
* Rechtsklick auf den **Layer -> Eigenschaften**
* Felder
* Feldrechner öffnen:
1. Rechtsklick auf Layer
2. Klick auf Feldrechner
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b093.png)
### Geschwindigkeit in km/h
* Feld erstellen
1. Virtuelles Feld aktivieren
2. Name des Feldes setzen
3. Typ wählen
4. Formel eingeben
5. Speichern
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b094.png)
* Mit Attributtabelle prüfen:
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b095.png)
### Fahrtrichtung in Grad
* Wertebereich: [0,...,6.28]
* Grad ( X / Pi() ) * 180
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b0cd.png)
* Es gilt:
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b0ce.png)
* Quelle: https://www.appliedimage.com/wp-content/uploads/2017/12/nHl1cn-1080x1080.jpeg
* Filter:
* Nord-West-Filter: `"deg" >= 90 AND "deg" <= 180`
* Süd-Ost: `"deg" >= 270 AND "deg" <= 360`
### Datetime
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b096.png)
## Data Plotly
Zum schnellen Generieren von Diagrammen kann die Erweiterung **Data Plotly** verwendet werden.
### Installation
* **Erweiterungen -> Erweiterungen verwalten und installieren**
* Nach `Plotly` suchen und installieren:
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b091.png)
### Verwenden
* Öffnen
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b092.png)
### Hinweis
Wenn man sich bei irgendeiner Konfiguration vertut, dann muss man leider auf **Clear Plot Canvas** klicken und von vorne beginnen. Es kann dadurch etwas fummelig sein.
### Boxplot
* Pinsel:
1. Plot Type: Box Plot
2. Layer wählen
3. Grouping Field leeren
4. `distance_overtaker` wählen
5. Name der Straße setzen
6. Fabre wählen
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b0c7.png)
* Settings:
1. Legende aktivieren
2. Leer lassen oder passen setzen
3. Leer lassen oder "Straße"
4. Überholabstand
5. Auf Create Plot drücken
* Das Ganze für weitere Layer wiederholen
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b0c9.png)
* Ergebnis:
1. Exportieren als HTML
2. Exportieren als PNG
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b0ca.png)
* Schritte für alle weiteren Straßen wiederholen
### Histogramm
1. Plot: Histogramm
2. Den gewünschten Layer wählen
3. Das Feld "distance_overtaker" wählen
4. Einen Titel wählen
5. Eine Fabre wählen
6. Auf **Create Plot** drücken
* Das Ganze für weitere Layer wiederholen
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b0cb.png)
![](https://md.dennis-boldt.de/uploads/94eee249f74dc2ebce6e0b0cc.png)
## Quellen
* QGIS-Tutorial von Opatut:
* https://md.openbikesensor.org/s/WMQX2spew