@ -367,16 +367,25 @@ Beim Empfang eines Advertising-Pakets wird geprüft, ob das Paket von einem der
## Auswertung
## Auswertung
Die Auswertung der Testmessungen wird auf dem Computer und nicht auf dem Smartphone durchgeführt. Dies erlaubt es auch im Nachhinein, mit ein und der selben Messung unterschiedlichste Modelle zu betrachten. Außerdem müssen Messungen nicht wegen eventueller Programmierfehler wiederholt werden.
Die Auswertung der Messreihen wird auf dem Computer durchgeführt. Dies bietet im Gegensatz zur direkten Auswertung auf dem Smartphone den Vorteil, auch im Nachhinein Änderungen an der Auswertung vorzunehmen. Als Programmiersprache kommt Python zum Einsatz, welche eine Vielzahl an Bibliotheken zur Arbeit mit großen Datenmenge und zur wissenschaftlichen Auswertung bereithält. Im Anhang dieser Arbeit befindet sich eine Liste der verwendeten Bibliotheken und deren Versionen.
Als Programmiersprache kommt Python zum Einsatz. Python bietet eine Vielzahl an Bibliotheken zur Arbeit mit großen Datenmengen und zur wissenschaftlichen Auswertung. Tabelle \ref{tab:libraries} zeigt eine Auflistung der eingesetzten Bibliotheken und eine kurze Beschreibung.
In einem ersten Schritt werden die Daten eingelesen und bereinigt. Zur Bereinigung werden die ersten \SI{5}{\second} und die letzten \SI{10}{\second} der Messreihe entfernt um den Einfluss durch die Bedienung des Smartphones aus den Messreihen zu beseitigen. Danach werden alle Messdaten von Geräten die nicht an der Messung beteiligt waren entfernt. Bei der Übermittlung der Daten werden nicht vorhandene Messdaten mit einer 0 initialisiert. Dies würde bei Berechnungen jedoch zu Fehlern führen, daher werden alle 0 Werte aus den eingelesenen Daten gelöscht.
| Library | Bedeutung |
Um mit den Daten einfacher Arbeiten zu können und eine bessere Übersicht zu erhalten, werden die Spalten aus Tabelle \ref{tab:datastore} umgeformt. Hierzu wird der real gemessene Referenzpunkt ermittelt und in der neuen Spalte ``realPosition`` gespeichert. Die Referenz Entfernung sowie die $scPower$ zu dem jeweiligen Beacon wird ermittelt und in den Spalte ``deviceDistance`` und ``scPower`` abgelegt.
| -------- | ---------- |
| | |
Im letzten Schritt werden überflüssige Spalten gelöscht. Tabelle \ref{tab:dataclean} zeigt die vorhandenen Spalten nach dem Einlesen.
: Verwendete Python libraries zur Auswertung der Messdaten. \label{tab:libraries}
| Spalte | Beschreibung |
| --------- | ----------------------- |
| Time | Empfangszeitpunkt als Unix-Zeitstempel |
| Test | Benutzerdefinierter Name des durchgeführten Tests |
| Device | \ac{mac}-Adresse des Beacon |
| RSSI | Vom Smartphone ermittelter \ac{rssi}-Wert |
| scPower | Ermittelter \ac{rssi}-Referenzwert der benachbarten Beacon auf \SI{1}{\meter} |
| deviceDistance | Physisch ermittelte Entfernung zwischen dem Beacon und Smartphone |
| realPosition | x,y Koordinaten des Smartphones, ermittelt durch die deviceDistance |
: Spaltenübersicht der Messreihen nach dem einlesen der Daten. \label{tab:dataclean}
- 5 sekunden zu beginn und 10 sekunden zum ende werden von den Messdaten verworfen! (mögliche einflüsse durch Human)