Now that the season is drawing to a close, we can take a look back and see where The Artist has been spending his time this summer thanks to the Arduino geekery that Kris wrote about earlier. I’m going to fill you in on what happens to the data that he collected to create the visual representation that you see on the map.
We decided to visualize this data using the hexagon map (a.k.a. hex map) that you see on the web page. The opacity of each hexagon indicates how frequently it was visited. The darker the hex, the more frequently the artist was there. To bring this information to the eyes and minds of our website visitors, two things have to happen. First, the data is distilled down by “binning” thousands of location records into a few hundred bins that are geographically organized into a hexagon grid spanning the museum campus. To do this, a little trigonometry and algebra is needed to figure out where each bin is and which location records go inside. Some might say that one of the quirky things about me is that I actually really enjoy the process of solving these sorts of problems (I got it from my dad).
And when you implement something that actually works, it feels a little something like this.
The second step is to plot these hexagons on the map when the page is visited. Each hexagon is colored according to the ratio of the number of records within the bin to the total number of records. The range between the minimum number of records in a bin to the maximum number is divided into ten sub-ranges, which are each assigned an opacity. This is done due to the way that the hexes are plotted on the map with the version of the tool we used (Leaflet) at the time, as opposed to assigning the opacity directly. At first we did this division in a linear fashion, but soon realized that once again we needed the power of logarithms to avoid having one or two really opaque hexes in a field of really transparent hexes. Using a logarithmic scale spreads the distribution of opacities out so that more detail can be seen on the map.