Uit Hack42
Ga naar: navigatie, zoeken
k
k
Regel 31: Regel 31:
 
Default voorbeeld:
 
Default voorbeeld:
 
  https://hack42.nl/spacestate/open/openByWeekDayHours.php?timespan=3m&colormap=16  
 
  https://hack42.nl/spacestate/open/openByWeekDayHours.php?timespan=3m&colormap=16  
 +
[[openheatmap_default.png]]
  
 
Blauw en 1 week:
 
Blauw en 1 week:
 
  https://hack42.nl/spacestate/open/openByWeekDayHours.php?timespan=1w&colormap=15
 
  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
 +
<pre>
 +
        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\" \
 +
</pre>
 +
 +
Separating hours
 +
<pre>
 +
  foreach($measurements["data"]["row"] as $row) {
 +
      switch ($row["t"] % 86400) {
 +
          case 82800: $hourOpen[0] += $row["v0"]; break;
 +
          case 0: $hourOpen[1] += $row["v0"]; break;
 +
</pre>
 +
 +
Shifting hours (remove at begin, place at end)
 +
<pre>
 +
  for($i=0;$i<$steps;$i++){
 +
      $element = array_shift($array);
 +
      $array[] = $element;
 +
  }
 +
</pre>
 +
 +
Working with colormap input
 +
<pre>
 +
$mp->colormap->SetMap($colormap);
 +
unset($colormap);
 +
$mp->SetCenterPos(0.5,0.47);
 +
$mp->SetSize(0.75, 0.7);
 +
</pre>
  
 
== Details ==
 
== Details ==
Regel 42: Regel 81:
 
* RRDTool: http://oss.oetiker.ch/rrdtool/doc/rrdgraph.en.html
 
* RRDTool: http://oss.oetiker.ch/rrdtool/doc/rrdgraph.en.html
 
* PHP: http://php.net/in_array
 
* PHP: http://php.net/in_array
 +
 +
__NOTOC__

Versie van 17 mrt 2012 18:32

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 gebeurd 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 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