###### 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.

## 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


### 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.

* Die Karte ist nun bunt:

* Rechts im Bedienfelder **Layergestaltung** unter **Layerdarstellung -> Graustufen** auf **Nach Leuchtkraft** stellen.

* 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

* 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.

* Rechtsklick auf den **Layer -> Auf Layer zoomen** sollte den Kartenausschnitt korrekt anpassen.

* Die Karte sollte nun alle exportierten Überholmanöver als Punkte auf der Karte anzeigen.

### Erste Statistik
* "Objekte über Polygon wählen" auswählen

* Mit Linksklick ein Polygon ziehen...

* ..und mit Rechtsklick bestätigen (die Auswahl ist nun gelb):

* 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:

### Filter für <1,5m
* Erneut die exportierte Datei mittels **Drag & Drop** in **Layer** ziehen
* **Rechtsklick -> Layer umbennen**

* Ergebnis:

* **Rechtsklick -> Filter**
* Alle Abstände **<1,5m** und **>10cm** (um Müll zu filtern)
* `"distance_overtaker" < 1.5 AND "distance_overtaker" > 0.10`

* Rechtsklick -> Eigenschaften
* Farbe: rot

* 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

### Attributtabelle
* Datenpunkte mit dem Polgon-Werkzeug wählen
* Attributtabelle öffnen

* Fenster konfigurieren:
1. Links unten: **Alle gewählten Objekte**
2. Rechts unten: **Tabellenansicht**
3. Es ist zu sehen, dass **145 Objekte gefiltert** werden

### Polygon
* **Layer -> Layer erstellen -> Shapedatei-Layer**

1. Name: Fackenburger
2. Geometrietyp: Polygon
3. Projekt-KBS wählen (EPSG:3857)

* Der Layer taucht im Layer-Bedienfeld auf:

* Polygon erstellen
1. Layer wählen
2. In Leiste den "Stift" wählen um den **Bearbeitungstatus umzuschalten**:

* Polygonobjekt hinzufügen:

* Polygon selektieren (mit Linksklick markieren und Ende mit Rechtsklick abschließen)

* Ein ID wählen, z.B. `1`:

* Der Layer sollte in der Layer-Ansicht zu finden sein und in der Karte zu sehen sein:

### Punkte mit Polygon verschneiden
* Voraussetzung:
* Polygon und Punkte-Set existieren
* **Vektor -> Geoverarbeitungswerkzeuge -> Verschneidung**:

* 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!)

* Layer der Verschneidung wählen:
* Man sieht, dass nur die Punkte im Bereich des Polgons angezeigt werden:

* 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

* Filter
* Rechtklick auf **Layer -> Filter**
* 
* Alle Punkte wählen und Statistik neu ansehen:

## Eigene Felder definieren
* Rechtsklick auf den **Layer -> Eigenschaften**
* Felder
* Feldrechner öffnen:
1. Rechtsklick auf Layer
2. Klick auf Feldrechner

### Geschwindigkeit in km/h
* Feld erstellen
1. Virtuelles Feld aktivieren
2. Name des Feldes setzen
3. Typ wählen
4. Formel eingeben
5. Speichern

* Mit Attributtabelle prüfen:

### Fahrtrichtung in Grad
* Wertebereich: [0,...,6.28]
* Grad ( X / Pi() ) * 180

* Es gilt:

* 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

## 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:

### Verwenden
* Öffnen

### 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

* 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

* Ergebnis:
1. Exportieren als HTML
2. Exportieren als 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


## Quellen
* QGIS-Tutorial von Opatut:
* https://md.openbikesensor.org/s/WMQX2spew