==== Heatmap ==== === Das Gitterfeld === Wir haben die Heatmap erstellt indem wir ein Gitterfeld erstellt haben und gucken welcher Pucks, zu welcher Zeit in welchen Feldern liegen. Dazu haben wir die Auflösung der Kamera betrachtet, welche in unserem Fall Full HD war, also 1920x1080 Pixel, und haben dieses Feld dann in quadratische Felder mit einer Seitenlänge von 100 Pixeln unterteilt. Wir haben dieses Feld dann, so wie unser Datenset auch, als eine Liste von Listen angelegt und jedes Feld, also jeden Eintrag, mit einer 0 gefüllt. Befand sich ein Puck im Feld, so wurde zu dieser 0 eine 1 dazuaddiert, sodass für jeden Puck und für jeden Frame eine 1 zu einem Feld addiert wurde. Wenn alle Punkte in das Gitterfeld addiert wurden, haben wir eine Matrix mit Einträgen, die der Aufenthaltswahrscheinlichkeit, oder Geschwindigkeitsverteilung entsprechen. Dieses Gitterfeld wurde dann, mit Hilfe der ''heatmap-Funktion'' und dem Paket ''matplotlib'' zu einer Heatmap geplottet. === heatmap-Funktion === liest die folgenden Argumente für die Heatmap ein: * den Datensatz * die Achsenanordnung * den Farbsatz * die Colourbar und ihre Beschriftung * weitere optionale Argumente == Der Datensatz == Unser Datensatz wird aus der Datenstruktur mit dem Paket ''Pickle'' importiert und ist eine Liste von Listen im Stil [[x1,y1,...],[x2,y2,...],...]. Jede Unterliste enthält die Koordinaten von jedem getrackten Puck in einem Frame (ein Koordinatenpaar für den Mittelpunkt des Pucks) und die Hauptlisten sind dementsprechend alle gefilmten Frames. Demzufolge ist die Länge des Datensatzes gleich der Anzahl an Frames, die gefilmt wurden und die Länge einer jeden Unterliste ist die Anzahl der getrackten Pucks. Unseren Datensatz haben wir in der Heatmap als ''all_boxes'' gespeichert. == Die Achsenanordnung == Die Achsenanordnung gibt letztendlich an, wo in der Heatmap der Ursprung ist, da die Heatmaps allerdings die gleiche Ausrichtung wie unser Video haben soll, haben wir an der Axenausrichtung nichts verändert (''ax=ax'') == Der Farbsatz == Der von der Heatmap verwendete Farbsatz, ändert einfach nur die Farben, die beim Erstellen der Heatmap verwendet werden. Wir haben uns für unsere Heatmap für einen eher neutralen Farbstil entschieden und benutzen deshalb den Farbsatz ''gnuplot2_r''. Da bei dem Farbsatz ''gnuplot2'' allerdings die Felder, in denen Pucks am seltensten waren, schwarz wären und die, wo die meisten Pucks waren, weiß, haben wir uns dazu entschieden den Farbsatz noch einmal zu reversen, sodass diese Verhältnisse genau umgedreht sind. == Colourbar == Die Colourbar gibt das Farbspektrum des Farbsatzes wieder und stellt durch die Achsenbeschriftung dar, welches Größenverhältnis zwischen den Feldern der Heatmap besteht. Weiterhin besitzt die Colourbar einen beschreibenden Schriftzug, welcher um 90° gedreht wurde, um den Verlauf der vertikalen Colourbar zu folgen. == Beschriftungen == Sowohl die Colourbar als auch die Heatmap selbst haben spezifische Schriftzüge, welche über mehrere ''if-Schleifen'' von den Eingaben des Nutzers abhängen. So passen sich die Beschriftungen immer an, je nachdem ob die absolute oder die relative Angabe gefragt ist, ob es um einen oder alle Pucks geht oder ob es sich um den Aufenthalt oder die Geschwindigkeit der Pucks handelt. == Optionale Argumente == Optional kann man noch die Reichweite des Farbspektrums, sowie die Grenzen des Datensets festlegen. So könnte man, zum Beispiel, in der Heatmap festlegen, dass bei der relativen Aufenthaltswahrscheinlichkeit, eine Wahrscheinlichkeit von 50% oder mehr immer //schwarz// entspricht, während eine Häufigkeit von 0 bis 2 % //weiß// und so weiter. Da derartige optionale Argumente bei uns allerdings nicht gegeben sind, passt sich die Farbreichweite immer automatisch den betrachteten Werten an. ((Autor: J. Jüppner))