Uit Hack42
Ga naar: navigatie, zoeken
Project: Open Heatmap
Schroefje24.png
Schroefje24.png
Schroefje24.png
Schroefje24.png
OpenHeatmap Picture.jpg

Open Heatmap

Naam Open Heatmap
Door Stitch
Status Afgerond
Madskillz rrd, jpgraph, php
Doel / Omschrijving
heatmap met tijden dat Hack42 gemiddeld open is.
Alle Projecten - Project Toevoegen
File:OpenHeatmap_Picture.jpg noez

De grafiek geeft aan wanneer in het verleden Hack42 open is geweest. Hoe vaker de space open is, hoe donkerder dit terug te zien is in de grafiek. De duidelijkste grafiek is van 3 maanden, waarin (op moment van schrijven) te zien is dat Hack42 gemiddeld altijd open is op dinsdag- en vrijdagavond. Ook andere populaire dagen zijn te zien.

De samenstelling van de grafiek gebeurt door een gemiddelde van metingen per uur. Elke 5 seconden wordt er gemeten, dit wordt gemiddeld naar een uur. Deze uren, voor 3 maanden toch al 2000, worden opgeteld verdeeld over de dag. Een 100% score (donkere vlak) kan alleen als in de afgelopen weken, dat uur, de space steeds open was.

Mocht je spontaan langs willen komen, en je hebt geen sleutel? Dan weet je wanneer we er kunnen zijn.

Zie: https://hack42.nl/spacestate/open/

Parameters

Je kan de kleur en periode aanpassen via de parameters timespan en colormap. De volgende zijn aanwezig:

Default voorbeeld:

https://hack42.nl/spacestate/open/openByWeekDayHours.php?timespan=3m&colormap=16 

Openheatmap default.png

Blauw en 1 week:

https://hack42.nl/spacestate/open/openByWeekDayHours.php?timespan=1w&colormap=15

Openheatmap oneweek.png

Insane 4m:

https://hack42.nl/spacestate/open/openByWeekDayHours.php?timespan=4m&colormap=2

Openheatmap insane.png

Code snippets

RRD Export

        rrdtool xport --start $e-$timespan --end $e --step 3600 --maxrows 4242 --enumds \
        DEF:st=../state.rrd:state:AVERAGE \
        CDEF:open=st,1,0,IF \
        XPORT:open:\"isopen\" \

Separating hours

   foreach($measurements["data"]["row"] as $row) {
       switch ($row["t"] % 86400) {
           case 82800: $hourOpen[0] += $row["v0"]; break;
           case 0: $hourOpen[1] += $row["v0"]; break;

Shifting hours (remove at begin, place at end)

   for($i=0;$i<$steps;$i++){
       $element = array_shift($array);
       $array[] = $element;
   }

Working with colormap input

$mp->colormap->SetMap($colormap);
unset($colormap);
$mp->SetCenterPos(0.5,0.47);
$mp->SetSize(0.75, 0.7);

Details

Het is niet perfect, er zitten soms wat gekke waardes in of de schaal klopt niet. Dit komt omdat er allerlei gemiddelden worden gebruikt, en soms iets meer of minder dagen worden opgevraagd. Bij benadering is de grafiek goed, give or take 20%.

Handleidingen