Bei Cyface leg­en wir großen Wert auf Ver­trauen und max­i­male Trans­parenz. Da Daten­samm­ler, wie wir, sich Ver­trauen hart erar­beit­en müssen, haben wir schon vor einiger Zeit begonnen, von uns entwick­elte Daten­er­fas­sungssoft­ware, unter der GPLv3 Lizenz als Open Source auf Github zur Ver­fü­gung zu stellen. Ins­beson­dere da wir viel Unter­stützung durch öffentliche Förder­pro­gramme erhal­ten, möcht­en wir auf diese Weise der Gemein­schaft etwas zurück geben.

Mit Hil­fe unser­er Open Source Soft­ware ist es sehr ein­fach eine Infra­struk­tur zum Sam­meln von Verkehrs­dat­en aufzuset­zen und zu betreiben.

Derzeit stellen wir vier Kom­po­nen­ten bere­it, die im Fol­gen­den näher beschrieben wer­den. Diese sind:

Datensammler

Der Daten­samm­ler empfängt die Dat­en mobil­er Mess­geräte, die zum Beispiel mit Hil­fe des Android oder iOS SDKs aufgeze­ich­net wor­den sind. Er ist derzeit als Vert.x Anwen­dung imple­men­tiert und schreibt die Dat­en in eine Mon­go Daten­bank, wo sie zur weit­eren Ver­ar­beitung auf­be­wahrt wer­den.

Die Dat­en wer­den über eine REST-artige Schnittstelle emp­fan­gen, die, wie dargestellt, per Ope­nAPI doku­men­tiert ist. Für die Datenüber­tra­gung muss man sich zunächst authen­tifizieren. Die weit­ere Kom­mu­nika­tion wird per JSON Web Token autho­risiert.

Der Daten­samm­ler befind­et sich als Dock­er-Image auf Dock­er-Hub. Weit­ere Infor­ma­tio­nen sind der beiliegen­den Doku­men­ta­tion zu ent­nehmen

Datenerfassung — Software Development Kit (SDK)

Für die bei­den großen mobilen Betrieb­ssys­teme existiert jew­eils ein eigenes SDK. Diese SDKs dienen der Inte­gra­tion der Daten­er­fas­sung in beste­hende mobile Anwen­dun­gen. Beispie­limple­men­tierun­gen sind als Cyface Apps über den Play Store und den App Store ver­füg­bar.

Die SDKs erlauben die Erfas­sung, Spe­icherung und Über­tra­gung der Sen­sor­dat­en des Smart­phones. Derzeit wer­den unter Android die Erfas­sung von GPS, Accelerom­e­ter, Gyroskop und Mag­ne­tome­ter und unter iOS die Erfas­sung von GPS und Accelerom­e­ter unter­stützt.

Die imple­men­tierende Anwen­dung kann auf die erfassten Dat­en zugreifen und den Leben­szyk­lus der Aufze­ich­nung mit Start, Pause, Fort­set­zen und Stop steuern. Über Änderun­gen im Leben­szyk­lus ist ein Pro­tokoll ver­füg­bar. Zusät­zlich kann zu jed­er Mes­sung die gesamte gefahrene Strecke aus­gegeben wer­den.

Basierend auf diesen Funk­tio­nen, lassen sich zum Beispiel Fahrrad­com­put­er, Nav­i­ga­tion­san­wen­dun­gen und Bürg­er­beteili­gungsan­wen­dun­gen erstellen und mit einem Cyface Daten­samm­ler verknüpfen.

Beispielan­wen­dun­gen befind­en sich in den entsprechen­den Stores und kön­nen kosten­frei genutzt wer­den. Wenn man keinen Serv­er auf­set­zen möchte, lassen sich die Mess­dat­en direkt aus der App exportieren. Dies geschieht über die Ansicht aller Mes­sun­gen, die in den fol­gen­den Abbil­dun­gen genauer beschrieben ist.

Datenauswertung — KNIME Nodes

Um die auf dem Smart­phone erfassten Dat­en zu analysieren, trans­formieren und visu­al­isieren ohne einen Daten­samm­ler auf­set­zen zu müssen, ver­wen­den wir bei Cyface die KNIME Ana­lyt­ics Plat­form. Die Dat­en müssen dafür auf dem Smart­phone exportiert und zum Beispiel per USB auf einen PC kopiert wer­den. Der Daten­ex­port wird nur von der Cyface Android App unter­stützt. Zum Lesen der Dat­en stellen wir die Cyface KNIME Knoten zur Ver­fü­gung

Um Dat­en aus einem Cyface Export zu bekom­men ste­ht ein fer­tiger KNIME Arbeitsablauf auf Node­Pit zur Ver­fü­gung.

Testinstallation

Zum Test des gesamten Auf­baus existiert eine Instal­la­tion die über https://s2.cyface.de/api/v2/ ver­füg­bar ist. Die SDKs sind in eine Android und eine iOS — App inte­gri­ert und ste­hen zur Ver­fü­gung um Dat­en auf die Testin­stal­la­tion hochzu­laden.

Zusammenfassung

Weit­ere Infor­ma­tio­nen lassen sich den Doku­men­ta­tio­nen ent­nehmen die den einzel­nen Pro­jek­ten beili­gen. Über Rück­mel­dun­gen und neue auf­bauende Pro­jek­te freuen wir uns jed­erzeit. Falls es Pull Requests zu unseren Pro­jek­ten gibt, wer­den wir diese wohlwol­lend in Betra­cht ziehen.