<p><div><div><div><div data-show-faces="false" data-height="21" data-width="100" data-layout="button_count" data-send="true" data-href="https://www.r-bloggers.com/making-world-tile-grid-grids/"></div></div><div></div></div><div></div></div>
<div>
(This article was first published on <strong><a href="https://rud.is/b/2018/06/07/making-world-tile-grid-grids/"> R – rud.is</a></strong>, and kindly contributed to <a rel="nofollow" href="https://www.r-bloggers.com/">R-bloggers)</a> </div>
<p>A colleague asked if I would blog about how I crafted the <a rel="nofollow" href="https://blog.rapid7.com/2018/06/07/vpnfilter-potential-reach/" target="_blank">grid of world tile grids in this post</a> and I accepted the challenge. The technique isn’t too hard as it just builds on the <a rel="nofollow" href="https://policyviz.com/2017/10/12/the-world-tile-grid-map/" target="_blank">initial work</a> by <a rel="nofollow" href="https://twitter.com/jschwabish" target="_blank">Jon Schwabish</a> and a <a rel="nofollow" href="http://www.maartenlambrechts.com/2017/10/22/tutorial-a-worldtilegrid-with-ggplot2.html" target="_blank">handy file</a> made by <a rel="nofollow" href="https://twitter.com/maartenzam" target="_blank">Maarten Lambrechts</a>.</p>
<h3>The Premise</h3>
<p>For this particular use-case, I sifted through our internet scan data and classified a series of device families from their telnet banners then paired that with our country-level attribution data for each IPv4 address. I’m not generally “a fan” of rolling things up at a country level, but since many (most) of these devices are residential or small/medium-business routers, country-level attribution has some merit.</p>
<p>But, I’m also not a fan of country-level choropleths when it comes to “cyber” nor am I wont to area-skewed cartograms since most folks still cannot interpret them. Both of those take up a ton of screen real estate, too, espeically if you have more than one of them. Yet, I wanted to show a map-like structure without resorting to Hilbert IPv4 heatmaps since they are neither very readable by a general audience and become skewed when you have to move up from a 1 pixel == 1 Class C network block.</p>
<p>I think the tile grid is a great compromise since it avoids the “area”and projection skewness confusion that regular global choropleths cause while still preserving geographic &amp; positional proximity. Sure, they’ll take some getting used to by casual readers, but I felt it was the best of all the tradeoffs.</p>
<h3>The Setup</h3>
<p>Here’s the data:</p>
<pre><code>
library(here)
library(hrbrthemes)
library(tidyverse)

wtg &lt;- read_csv(&quot;https://gist.githubusercontent.com/maartenzam/787498bbc07ae06b637447dbd430ea0a/raw/9a9dafafb44d8990f85243a9c7ca349acd3a0d07/worldtilegrid.csv&quot;)

glimpse(wtg)
 
## Observations: 192
## Variables: 11
## $ name            </code></pre>