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