Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
ss18:teilprojekte:datenstruktur [2018/06/14 15:09] zerbian Beschreibung der Puckklasse |
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)) | ||
- | Das Ziel von diesem Zwischenprojekt ist, es eine Datenstruktur zu schaffen, in der die Puckinformationen gespeichert werden und weiterverarbeitet werden können. Dazu haben wir eine Puckklasse geschrieben. Eine Instanz dieser Klasse repräsentiert dann ein Puck auf den Tisch. | + | {{ :ss18:allgemeiner_aufbau_pluto.png?direct&400 |}}((F. Rieber)) |
- | Die Klasse ''Puck'' implementiert die folgenen Methoden: | + | =====Puck==== |
- | ^ Methode ^ Beschreibung ^ | + | Um die Informationen über einen spezifischen Puck zu speichern gibt es eine Klasse Puck. Diese speichert nicht nur die aktuelle Position, sondern 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. |
- | | init() | Konstruktor, initialisiert Attribute| | + | |
- | | str() | Methode für bequeme formatierte ausgabe | | + | =====Frame===== |
- | | len() | Gibt die Länge der History zurück | | + | Das Frame (Dataframe) verwaltet die einzelnen Pucks und regelt die Zugriffe auf die entsprechenden Daten. Somit sind die einzelnen Pucks separiert von dem Rest des Programmes. |
- | | setPos(timestamp,pos) | aktualisiert die aktuelle Puckposition | | + | |
- | | getRadius() | gibt den Radius des Pucks zurück | | + | ====Positionsaktualisierung==== |
- | | getWeight() | gibt die Masse des Pucks zurück | | + | Vereinfachte Darstellung des Positionsaktualisierung der Pucks: |
- | | getPos() | gibt die aktuelle Position zurück ((Die Positio, Geschwindigkeit, usw. werden als Numpy Arrays zurückgegebn, da diese die Vektoroperationen implementieren)| | + | - der Tracker gibt einem speziellen Format eine Sammlung von Positions- und Metadaten zurück |
- | | getPos(timestamp) | gibt die Position zu einem gewählten Zeitpunkt zurück | | + | - das Dataframe nimmt diese an und separiert die Metadaten von den eigentlichen Positionsdaten |
- | | getTime(frame) | gibt den Timestamp aus | | + | - es wird über die Positionsdaten iteriert und dabei die die (neue) Position an die entsprechende Puckinstanz geliefert |
- | | getPositionen() | gibt alle Positionen des Pucks zurück | | + | |
- | | getVelocityVector() | gibt den Geschwindigkeitsvektor des Pucks zurück | | + | ====Tabellenexport der Positionsdaten==== |
- | | getVelocity() | gibt den Geschwindigkeitswert des Pucks zurück | | + | Vereinfachte Darstellung des Exportieren von allen Positionsdaten: |
- | | getPulseVector() | gibt den Impulsvektor zurück | | + | - Das Dataframe iteriert über jeden einzelnen Puck und erhält eine Sammlung aller vergangener Positionsdaten des jeweiligen Puck |
- | | getPulse() | gibt den Impulswert zurück | | + | - die Daten werden zusammengefügt |
+ | - der vollständige Datensatz wird in eine Datei geschrieben. |