Benutzer-Werkzeuge

Webseiten-Werkzeuge


ss18:teilprojekte:datenstruktur

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
ss18:teilprojekte:datenstruktur [2018/06/14 15:19]
zerbian
ss18:teilprojekte:datenstruktur [2018/08/25 20:54] (aktuell)
zerbian
Zeile 1: Zeile 1:
-===Datenstruktur===+======Datenstruktur====== 
 +Während der Erarbeitungsphase waren wir uns im klaren darüber, dass für unsere Programmstruktur es einen Ort geben muss, wo die Daten der Pucks zentral gespeichert werden. Diese Programmstruktur sorgt dafür, dass die eingelesenen Positionsdaten gepeichert werden, eine sinnvolle Form gebracht werden und in aufbereitetet an die verschiedenen Auswertungsmöglichkeiten "​geschickt"​ werden.((J.Zerbian))
  
-Inputdatenformat!+{{ :​ss18:​allgemeiner_aufbau_pluto.png?​direct&​400 |}}((F. Rieber))
  
-Das Ziel von diesem Zwischenprojekt ist, es eine Datenstruktur zu schaffenin der die Puckinformationen gespeichert werden ​und weiterverarbeitet werden können+=====Puck==== 
 +Um die Informationen über einen spezifischen Puck zu speichern gibt es eine Klasse Puck. Diese speichert nicht nur die aktuelle Positionsondern auch alle vergangenen. Zusätzlich dazu hat der Puck auch Attribute wie Gewicht ​und Radius. Diese Informationen helfen uns zu unserem jetztigen Zeitpunkt nicht weiter, jedoch als wir die Datenstruktur geschreiben haben, haben wir uns gedacht, dass die Information uns später noch helfen würden.
  
-==Puckklasse== +=====Frame===== 
-Dazu haben wir eine Puckklasse geschrieben. Eine Instanz dieser Klasse repräsentiert dann ein Puck auf den Tisch. +Das Frame (Dataframeverwaltet ​die einzelnen ​Pucks und regelt ​die Zugriffe auf die entsprechenden DatenSomit sind die einzelnen ​Pucks separiert von dem Rest des Programmes.
- +
-Die Klasse Puck implementiert die folgenen Methoden: +
-^ Methode ^ Beschreibung ^ +
-| init() | Konstruktor,​ initialisiert Attribute| +
-| str() | Methode für bequeme formatierte ausgabe | +
-| len() | Gibt die Länge der History zurück | +
-| setPos(timestamp,​pos) | aktualisiert die aktuelle Puckposition | +
-| getRadius() | gibt den Radius des Pucks zurück | +
-| getWeight() | gibt die Masse des Pucks zurück | +
-| getPos() | gibt die aktuelle Position zurück ((Die Positio, Geschwindigkeit,​ uswwerden als Numpy Arrays zurückgegebn,​ da diese die Vektoroperationen implementieren)| +
-| getPos(timestamp) | gibt die Position zu einem gewählten Zeitpunkt zurück | +
-| getTime(frame) | gibt den Timestamp aus | +
-| getPositionen() | gibt alle Positionen des Pucks zurück | +
-| getVelocityVector() | gibt den Geschwindigkeitsvektor ​des Pucks zurück | +
-| getVelocity() | gibt den Geschwindigkeitswert des Pucks zurück | +
-| getPulseVector() | gibt den Impulsvektor zurück | +
-| getPulse() | gibt den Impulswert zurück | +
- +
-==Frameklasse== +
-Die Frameklasse verwaltet alle PucksDamit findet unter anderem die Kommunikation zwischen der Trackingsoftware mit einer Instanz der Frameklasse statt. Die Frameklasse empfängt die Daten von der Trackingsoftware in einer bestimmten Form: +
- +
-<​code>​ +
-daten = [timestamp, (identifier,​ [(x1,​y1),​(x2,​y2),​(x3,​y3),​(x4,​y4)]),​ ...] +
-</​code>​+
  
 +====Positionsaktualisierung====
 +Vereinfachte Darstellung des Positionsaktualisierung der Pucks:
 +  - der Tracker gibt einem speziellen Format eine Sammlung von Positions- und Metadaten zurück
 +  - das Dataframe nimmt diese an und separiert die Metadaten von den eigentlichen Positionsdaten
 +  - es wird über die Positionsdaten iteriert und dabei die die (neue) Position an die entsprechende Puckinstanz geliefert
  
 +====Tabellenexport der Positionsdaten====
 +Vereinfachte Darstellung des Exportieren von allen Positionsdaten:​
 +  - Das Dataframe iteriert über jeden einzelnen Puck und erhält eine Sammlung aller vergangener Positionsdaten des jeweiligen Puck
 +  - die Daten werden zusammengefügt
 +  - der vollständige Datensatz wird in eine Datei geschrieben.
ss18/teilprojekte/datenstruktur.1528982373.txt.gz · Zuletzt geändert: 2018/06/14 15:19 von zerbian