Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ss18:heat_map

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 1920×1080 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.

1)

1) Autor: J. Jüppner
ss18/heat_map.txt · Zuletzt geändert: 2018/08/25 22:14 von jannis_jueppner