<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/rss-style.xsl" type="text/xsl"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	     xmlns:dc="http://purl.org/dc/elements/1.1/"
	   xmlns:atom="http://www.w3.org/2005/Atom"
	     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	  xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>map &#8211; Terence Eden’s Blog</title>
	<atom:link href="https://shkspr.mobi/blog/tag/map/feed/" rel="self" type="application/rss+xml" />
	<link>https://shkspr.mobi/blog</link>
	<description>Regular nonsense about tech and its effects 🙃</description>
	<lastBuildDate>Thu, 11 Sep 2025 07:10:25 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://shkspr.mobi/blog/wp-content/uploads/2023/07/cropped-avatar-32x32.jpeg</url>
	<title>map &#8211; Terence Eden’s Blog</title>
	<link>https://shkspr.mobi/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title><![CDATA[Minimum Viable Clustered-Marker Globe using OpenFreeMap and MapLibre GL]]></title>
		<link>https://shkspr.mobi/blog/2025/01/minimum-viable-clustered-marker-globe-using-openfreemap-and-maplibre-gl/</link>
					<comments>https://shkspr.mobi/blog/2025/01/minimum-viable-clustered-marker-globe-using-openfreemap-and-maplibre-gl/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Tue, 14 Jan 2025 12:34:14 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[OpenBenches]]></category>
		<category><![CDATA[OpenStreetMap]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=55240</guid>

					<description><![CDATA[I love OpenFreeMap it is a quick, easy, and free way to add beautiful maps to your Open Source projects.  With the latest release of MapLibre-GL I wanted to see if there was an easy way to use both to make an interactive globe with clustered markers.  Spoiler alert: yes!  Basic Globe  Here&#039;s a basic example which I&#039;ve trimmed down from this example.    When you load the below code, you&#039;ll get a…]]></description>
										<content:encoded><![CDATA[<p>I love <a href="https://openfreemap.org/">OpenFreeMap</a> it is a quick, easy, and <em>free</em> way to add beautiful maps to your Open Source projects.  With the latest release of <a href="https://maplibre.org/maplibre-gl-js/docs/">MapLibre-GL</a> I wanted to see if there was an easy way to use both to make an interactive globe with clustered markers.</p>

<p>Spoiler alert: yes!</p>

<h2 id="basic-globe"><a href="https://shkspr.mobi/blog/2025/01/minimum-viable-clustered-marker-globe-using-openfreemap-and-maplibre-gl/#basic-globe">Basic Globe</a></h2>

<p>Here's a basic example which I've trimmed down from <a href="https://maplibre.org/maplibre-gl-js/docs/examples/globe-vector-tiles/">this example</a>.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/01/globe.webp" alt="A globe of the planet Earth with labels for countries." width="720" height="714" class="aligncenter size-full wp-image-55241">

<p>When you load the below code, you'll get a globe which you can spin and zoom. Nifty!</p>

<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html&gt;
    &lt;head&gt;
        &lt;title&gt;Globe Projection using OpenFreeMap&lt;/title&gt;
        &lt;meta charset="utf-8"&gt;
        &lt;meta name="viewport" content="width=device-width, initial-scale=1"&gt;
        &lt;link rel="stylesheet" href="https://unpkg.com/maplibre-gl@5.0.0/dist/maplibre-gl.css"&gt;
        &lt;script src="https://unpkg.com/maplibre-gl@5.0.0/dist/maplibre-gl.js"&gt;&lt;/script&gt;
        &lt;style&gt;
            body { margin: 0;padding: 0; }
            html, body, #map { height: 100%; }
        &lt;/style&gt;
    &lt;/head&gt;
    &lt;body&gt;
        &lt;div id="map"&gt;&lt;/div&gt;
        &lt;script type="module"&gt;
            const map = new maplibregl.Map({
                container: "map",
                style: "https://tiles.openfreemap.org/styles/liberty",
                zoom: 2,
                center: [0.123, 51.2345],
                pitch: 0,
                canvasContextAttributes: { antialias: true }
            });

            map.on('style.load', () =&gt; {
                map.setProjection({
                    type: 'globe',
                });
            });
        &lt;/script&gt;
    &lt;/body&gt;
&lt;/html&gt;
</code></pre>

<h2 id="adding-markers"><a href="https://shkspr.mobi/blog/2025/01/minimum-viable-clustered-marker-globe-using-openfreemap-and-maplibre-gl/#adding-markers">Adding Markers</a></h2>

<p>In most respects, this acts like a normal MapLibre GL map.  To add a marker, add this code:</p>

<pre><code class="language-js">const marker = new maplibregl.Marker()
    .setLngLat([12.345, 54.321])
    .addTo(map);
</code></pre>

<h2 id="geojson-clusters"><a href="https://shkspr.mobi/blog/2025/01/minimum-viable-clustered-marker-globe-using-openfreemap-and-maplibre-gl/#geojson-clusters">GeoJSON Clusters</a></h2>

<p>Now for the big one!  On <a href="https://openbenches.org/">OpenBenches</a> we display markers and <em>clusters</em> of markers. On a flat map, it looks like this:</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/01/ob-clusters.webp" alt="Map of Europe. There are big circles on it saying how many markers are inside." width="655" height="655" class="aligncenter size-full wp-image-55243">

<p>We want to turn it into this beauty:</p>

<p></p><div style="width: 620px;" class="wp-video"><video class="wp-video-shortcode" id="video-55240-2" width="620" height="687" preload="metadata" controls="controls"><source type="video/mp4" src="https://shkspr.mobi/blog/wp-content/uploads/2025/01/b169e7bb1cfc045f.mp4?_=2"><a href="https://shkspr.mobi/blog/wp-content/uploads/2025/01/b169e7bb1cfc045f.mp4">https://shkspr.mobi/blog/wp-content/uploads/2025/01/b169e7bb1cfc045f.mp4</a></video></div><p></p>

<p>Here's the code, <a href="https://maplibre.org/maplibre-gl-js/docs/examples/cluster/">adapted from the tutorial</a>:</p>

<pre><code class="language-js">const map = new maplibregl.Map({
    container: "map",
    style: "https://tiles.openfreemap.org/styles/liberty",
    zoom: 2,
    center: [0.123, 51.2345],
    pitch: 0,
    canvasContextAttributes: { antialias: true }
});

map.on('style.load', () =&gt; {
    map.setProjection({
        type: 'globe',
    });
});

//  Load GeoJSON
async function load_GeoJSON() {
    const response = await fetch( "geo.json" )
    var benches_json = await response.json();
    return benches_json;
}

//  Asynchronous function to add custom layers and sources
async function addCustomLayersAndSources() {
    //  Get the data
    var geo_data = await load_GeoJSON();
    //  Load the GeoJSON
    if (!map.getSource('geo_data')) {
        map.addSource('geo_data', {
            type: 'geojson',
            data: geo_data,
            cluster: true,
            clusterMaxZoom: 17, // Max zoom to cluster points on
            clusterRadius: 50 // Radius of each cluster when clustering points (defaults to 50)
        });
    }

    //  Custom point marker
    if ( map.listImages().includes("marker-icon") == false ) {
        var image = await map.loadImage('/marker.png');
        map.addImage('marker-icon', image.data);
    }

    //  Add the clusters
    if (!map.getLayer('clusters')) {
        map.addLayer({
            id: 'clusters',
            type: 'circle',
            source: 'geo_data',
            filter: ['has', 'point_count'],
            paint: {
                // Use step expressions (https://maplibre.org/maplibre-style-spec/expressions/#step)
                // with three steps to implement three types of circles:
                //   * Blue, 20px circles when point count is less than 100
                //   * Yellow, 30px circles when point count is between 100 and 750
                //   * Pink, 40px circles when point count is greater than or equal to 750
                'circle-color': [
                    'step', ['get', 'point_count'],
                        '#51bbd655',
                    100, '#f1f07555',
                    750, '#f28cb155'
                ],
                'circle-radius': [
                    'step', ['get', 'point_count'],
                        20,
                    100, 30,
                    750, 40
                ],
                'circle-stroke-width': [
                    'step', ['get', 'point_count'],
                        1,
                    100, 1,
                    750, 1
                ],
                'circle-stroke-color': [
                    'step', ['get', 'point_count'],
                        '#000',
                    100, '#000',
                    750, '#000'
                ],
            }
        });

        //  Show number of markers in each cluster
        map.addLayer({
            id: 'cluster-count',
            type: 'symbol',
            source: 'geo_data',
            filter: ['has', 'point_count'],
            layout: {
                'text-field': '{point_count_abbreviated}',
                'text-font': ['Noto Sans Regular'],
                'text-size': 25
            }
        });

        //  Show individual markers
        map.addLayer({
            id: 'unclustered-point',
            source: 'geo_data',
            filter: ['!', ['has', 'point_count']],
            type: 'symbol',
            layout: {
                "icon-overlap": "always",
                'icon-image': 'marker-icon',  // Use the PNG image
                'icon-size': .1              // Adjust size if necessary
            }
        });
    }
}

//  Start by drawing the map
map.on('load', async () =&gt; {
    await addCustomLayersAndSources();
});
</code></pre>

<p>Obviously, there's a lot more you can do - but I hope this shows just how quickly you can get a clustermap working on a globe.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=55240&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2025/01/minimum-viable-clustered-marker-globe-using-openfreemap-and-maplibre-gl/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		<enclosure url="https://shkspr.mobi/blog/wp-content/uploads/2025/01/b169e7bb1cfc045f.mp4" length="4330564" type="video/mp4" />

			</item>
		<item>
		<title><![CDATA[You can now buy my South Up, Aotearoa Centred, Equal-Earth Projection Map]]></title>
		<link>https://shkspr.mobi/blog/2023/12/you-can-now-buy-my-south-up-aotearoa-centred-equal-earth-projection-map/</link>
					<comments>https://shkspr.mobi/blog/2023/12/you-can-now-buy-my-south-up-aotearoa-centred-equal-earth-projection-map/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Fri, 01 Dec 2023 12:34:45 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[art]]></category>
		<category><![CDATA[ForSale]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[OCSE]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=48533</guid>

					<description><![CDATA[I&#039;m delighted to announce that I&#039;ve actually finished a project!  Over the last few years, I&#039;ve been designing a custom map.  As per the credo of the &#34;Organization of Cartographers for Social Equality&#34;, this map uses the Equal Earth projection to ensure proportional land-mass size, the South is at the up, and - of course - the globe has been rotated to 150°.  I&#039;ve had it printed and I think it …]]></description>
										<content:encoded><![CDATA[<p>I'm delighted to announce that I've actually finished a project!</p>

<p>Over the last few years, <a href="https://shkspr.mobi/blog/tag/ocse/">I've been designing a custom map</a>.  As per the credo of the "Organization of Cartographers for Social Equality", this map uses the Equal Earth projection to ensure proportional land-mass size, the South is at the up, and - of course - the globe has been rotated to 150°.</p>

<p>I've had it printed and I think it looks glorious!</p>

<h2 id="hanging-on-the-wall"><a href="https://shkspr.mobi/blog/2023/12/you-can-now-buy-my-south-up-aotearoa-centred-equal-earth-projection-map/#hanging-on-the-wall">Hanging on the wall</a></h2>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2023/10/Poster-hung-on-the-wall.jpg" alt="The poster hung on the wall." width="1024" height="768" class="aligncenter size-full wp-image-48722">

<p>You can <a href="https://www.redbubble.com/people/terenceeden/shop">buy these maps from RedBubble</a>.</p>

<h2 id="details"><a href="https://shkspr.mobi/blog/2023/12/you-can-now-buy-my-south-up-aotearoa-centred-equal-earth-projection-map/#details">Details</a></h2>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2023/12/Map-of-Europe-with-Emoji-flags.jpg" alt="Map of Europe with Emoji flags." width="1024" height="768" class="aligncenter size-full wp-image-48729">

<img src="https://shkspr.mobi/blog/wp-content/uploads/2023/12/Map-of-northen-Africa-with-country-labels-in-their-native-script.jpg" alt="Map of northern Africa with country labels in their native script." width="1024" height="768" class="aligncenter size-full wp-image-48727">

<img src="https://shkspr.mobi/blog/wp-content/uploads/2023/12/Map-of-southern-Africa-with-emoji-flags.jpg" alt="Map of southern Africa with emoji flags." width="1024" height="768" class="aligncenter size-full wp-image-48726">

<img src="https://shkspr.mobi/blog/wp-content/uploads/2023/12/Map-of-Island-Nations-with-text-labels.jpg" alt="Map of Island Nations with text labels." width="1024" height="768" class="aligncenter size-full wp-image-48728">

<h2 id="buy"><a href="https://shkspr.mobi/blog/2023/12/you-can-now-buy-my-south-up-aotearoa-centred-equal-earth-projection-map/#buy">Buy</a></h2>

<ul>
<li><a href="https://www.redbubble.com/shop/ap/154196690">Buy the Country Name Map</a></li>
<li><a href="https://www.redbubble.com/shop/ap/154196862">Buy the Emoji Flag Map</a></li>
</ul>

<p>This is a <em>large</em> poster - I recommend buying the 120cm by 60cm version. It needs to be that size in order to make the country names legible.  The cost per poster depends on your locale and whatever promotions RedBubble are doing.</p>

<p>These are <em>not</em> limited editions! I will print off as many as people order. Each one comes with a small inscription in the corner saying what the map is, and some other metadata.</p>

<p>As per below, you can <a href="https://github.com/edent/South-Up-Aotearoa-Centred-Equal-Earth-Projection-Map">download the assets</a> in vector or raster format if you'd like to try printing them yourself.</p>

<h2 id="disclaimer"><a href="https://shkspr.mobi/blog/2023/12/you-can-now-buy-my-south-up-aotearoa-centred-equal-earth-projection-map/#disclaimer">Disclaimer</a></h2>

<p>Maps are contentious. Some countries don't recognise other countries. Some borders are disputed. Some people clamour for reunification, some for secession. Some countries have a name given to them by their colonial oppressors. Some have been renamed by mad tyrants. Some countries have multiple names in different languages. Some are still fighting bloody wars in order to be recognised. Flags also suffer from the same problem.</p>

<p>The good news is that this is <strong>not an official map</strong> - my choices have <em>no</em> geopolitical consequences. The even better news is that the code behind the map is open source - so you can redraw it to your heart's content.</p>

<p>I have used the <a href="https://www.naturalearthdata.com/">borders from Natural Earth</a>, the country names from <a href="https://wiki.openstreetmap.org/wiki/Nominatim/Country_Codes">OpenStreetMap</a>, and flags from <a href="https://github.com/twitter/twemoji">Twemoji</a>. If you dislike any of those, please direct your complaints to them.</p>

<h2 id="bugs"><a href="https://shkspr.mobi/blog/2023/12/you-can-now-buy-my-south-up-aotearoa-centred-equal-earth-projection-map/#bugs">Bugs</a></h2>

<p>There are a few of things which have left me slightly dissatisfied.</p>

<p>By convention, most maps use <a href="https://en.wikipedia.org/wiki/Terrain_cartography#Shaded_relief">Shaded Relief with the light coming from North-West</a>. However, because this map is flipped, it cause an optical illusion which make mountains look like ravines and vice-versa. As noted:</p>

<blockquote><p>Viewing images that do not conform to this convention may show a form of convex–concave ambiguity. 
<a href="https://en.wikipedia.org/wiki/Top-left_lighting">Wikipedia page on "Top-Left" lighting</a></p></blockquote>

<p>If you know how to redrawing or recalculate the shade, please let me know.</p>

<p>Secondly, in their default placement, country names and flags overlap. For example:
<img src="https://shkspr.mobi/blog/wp-content/uploads/2023/10/Overlap.jpg" alt="Map of the Caribbean. All the island names overlap." width="902" height="478" class="aligncenter size-full wp-image-48556"></p>

<p>I manually adjusted the placement to keep labels and flags <em>roughly</em> in the right place without overlapping. I think I was accurate, but if you spot any mistakes - or know how to automate this - please let me know.</p>

<p>Non-Contiguous countries aren't handled well. For example, Alaska is unlabelled because it physically separated from the rest of the USA. The same is true of overseas territories like the Canary Islands and French Guiana.</p>

<p>The various seas, oceans, and other bodies of water aren't labelled.</p>

<p>I'm sure you will spot a few other errors. Either leave a comment here or <a href="https://github.com/edent/South-Up-Aotearoa-Centred-Equal-Earth-Projection-Map">raise an issue on GitHub</a>.</p>

<h2 id="how"><a href="https://shkspr.mobi/blog/2023/12/you-can-now-buy-my-south-up-aotearoa-centred-equal-earth-projection-map/#how">How</a></h2>

<p>This was a multi-stage process - mostly involving R.</p>

<h3 id="background"><a href="https://shkspr.mobi/blog/2023/12/you-can-now-buy-my-south-up-aotearoa-centred-equal-earth-projection-map/#background">Background</a></h3>

<p>The background image comes from "<a href="https://equal-earth.com/physical/">Color terrain art without type halos</a>". It's a TIFF which has been rotated and converted to PNG.</p>

<pre><code class="language-_">mogrify -rotate 180 Equal-Earth-Physical-Relief-No-Halos-150E.tif 
convert Equal-Earth-Physical-Relief-No-Halos-150E.tif EE-SU.png
</code></pre>

<h3 id="country-names"><a href="https://shkspr.mobi/blog/2023/12/you-can-now-buy-my-south-up-aotearoa-centred-equal-earth-projection-map/#country-names">Country Names</a></h3>

<p>Natural Earth only provides country names in English ☹ - but it also provides 2 character ISO codes. So I grabbed the country codes and names from <a href="https://wiki.openstreetmap.org/wiki/Nominatim/Country_Codes">OpenStreetMap</a> and merged them into the data set using R.</p>

<h3 id="the-code"><a href="https://shkspr.mobi/blog/2023/12/you-can-now-buy-my-south-up-aotearoa-centred-equal-earth-projection-map/#the-code">The Code</a></h3>

<p>This produces the country borders and names onto an SVG.</p>

<h3 id="manual-placement"><a href="https://shkspr.mobi/blog/2023/12/you-can-now-buy-my-south-up-aotearoa-centred-equal-earth-projection-map/#manual-placement">Manual placement</a></h3>

<p>I used <a href="https://boxy-svg.com/">Boxy</a> to edit the SVG and place all names in roughly the right place.</p>

<h3 id="conversion"><a href="https://shkspr.mobi/blog/2023/12/you-can-now-buy-my-south-up-aotearoa-centred-equal-earth-projection-map/#conversion">Conversion</a></h3>

<p>Inkscape was used to open the resultant SVG at 72dpi. I then used Gimp to autocrop, canvas expanded to 16000x9000, and saved as an <em>uncompressed</em> PNG.</p>

<p>The Emoji wouldn't import to either Gimp or Inkscape. So I viewed the file in Firefox and then printed it to a PDF. That PDF was cropped using <a href="https://www.ctan.org/pkg/pdfcrop">pdfcrop</a> and then imported to Gimp.</p>

<p>Some print shops require CMYK colour spaces - <code>convert Export.png -colorspace cmyk Print-CMYK.tif</code></p>

<h2 id="copyright"><a href="https://shkspr.mobi/blog/2023/12/you-can-now-buy-my-south-up-aotearoa-centred-equal-earth-projection-map/#copyright">Copyright</a></h2>

<p>All of the <a href="https://equal-earth.com">Equal Earth data has this copyright</a>:</p>

<blockquote><p>The Equal Earth Physical Wall Map is in the public domain. You may use the map any way you like, including modifying the content, reproducing it on any type of media, republishing it, and selling it for profit. Consider the map as yours.
By downloading and using this map you agree that the map author (Tom Patterson) is not legally responsible for any errors that the map may contain. You are solely responsible for all problems that may arise from reuse of the map and its redistribution to third parties. Tom Patterson does not endorse the individuals or organizations that may use the map, nor does he endorse their positions on various issues.</p></blockquote>

<p>It builds on Natural Earth, which is <a href="https://github.com/nvkelso/natural-earth-vector/blob/master/LICENSE.md">also public domain</a>.</p>

<p>The Emoji flags are either <a href="https://github.com/twitter/twemoji/blob/gh-pages/LICENSE-GRAPHICS">CC BY</a> or <a href="https://github.com/twitter/twemoji/blob/gh-pages/LICENSE">MIT</a> - depending on whether you think SVGs are images or code.</p>

<p>In a similar spirit, the code that I've used to create my variation of the map, and the resultant output, is also hereby placed in the public domain. You may treat it as <a href="https://creativecommons.org/publicdomain/zero/1.0/deed.en">CC0</a>.</p>

<p xmlns:cc="http://creativecommons.org/ns#" xmlns:dct="http://purl.org/dc/terms/"><a property="dct:title" rel="cc:attributionURL" href="https://shkspr.mobi/blog/">South Up, Aotearoa Centred, Equal Earth Projection Map</a> by <a rel="cc:attributionURL dct:creator" property="cc:attributionName" href="https://edent.tel/">Terence Eden</a> is marked with <a href="http://creativecommons.org/publicdomain/zero/1.0?ref=chooser-v1" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">CC0 1.0 Universal<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;display:inline;" src="https://mirrors.creativecommons.org/presskit/icons/cc.svg?ref=chooser-v1"><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;display:inline;" src="https://mirrors.creativecommons.org/presskit/icons/zero.svg?ref=chooser-v1"></a></p>

<h2 id="download"><a href="https://shkspr.mobi/blog/2023/12/you-can-now-buy-my-south-up-aotearoa-centred-equal-earth-projection-map/#download">Download</a></h2>

<p>You can <a href="https://github.com/edent/South-Up-Aotearoa-Centred-Equal-Earth-Projection-Map">download all the code and assets from GitHub</a>.</p>

<h2 id="buy"><a href="https://shkspr.mobi/blog/2023/12/you-can-now-buy-my-south-up-aotearoa-centred-equal-earth-projection-map/#buy">Buy</a></h2>

<ul>
<li><a href="https://www.redbubble.com/shop/ap/154196690">Buy the Country Name Map</a></li>
<li><a href="https://www.redbubble.com/shop/ap/154196862">Buy the Emoji Flag Map</a></li>
</ul>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=48533&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2023/12/you-can-now-buy-my-south-up-aotearoa-centred-equal-earth-projection-map/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Running a Shortest Splitline Algorithm on the UK - and other mapping adventures]]></title>
		<link>https://shkspr.mobi/blog/2022/09/running-a-shortest-splitline-algorithm-on-the-uk/</link>
					<comments>https://shkspr.mobi/blog/2022/09/running-a-shortest-splitline-algorithm-on-the-uk/#respond</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sun, 11 Sep 2022 11:34:13 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[algorithms]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[visualisation]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=43474</guid>

					<description><![CDATA[How do you fairly split a country into electoral subdivisions? This is a difficult problem. Whatever you choose, you&#039;ll piss off someone. A politician will be annoyed that their loyal voters are no longer in their district. And voters will be annoyed that they&#039;re now lumped in with people from the wrong side of the tracks.  This is a very human problem.  So let&#039;s ignore all the human aspects and…]]></description>
										<content:encoded><![CDATA[<p>How do you fairly split a country into electoral subdivisions? This is a difficult problem. Whatever you choose, you'll piss off someone. A politician will be annoyed that their loyal voters are no longer in their district. And voters will be annoyed that they're now lumped in with people from the wrong side of the tracks.  This is a very human problem.  So let's ignore all the human aspects and run an impartial<sup id="fnref:impartial"><a href="https://shkspr.mobi/blog/2022/09/running-a-shortest-splitline-algorithm-on-the-uk/#fn:impartial" class="footnote-ref" title="LOL!" role="doc-noteref">0</a></sup> and unbiased<sup id="fnref:unbiased"><a href="https://shkspr.mobi/blog/2022/09/running-a-shortest-splitline-algorithm-on-the-uk/#fn:unbiased" class="footnote-ref" title="Even bigger LOL!" role="doc-noteref">1</a></sup> algorithm on the issue!</p>

<p>The Splitline Algorithm is, conceptually, very simple:</p>

<ol>
<li>Divide the entire map in half based on population.</li>
<li>Repeat (1) for each half.</li>
<li>Once you have reached the target number of voters in each segment, stop.</li>
</ol>

<p>There's an <a href="https://discovery.ucl.ac.uk/id/eprint/10079875/1/Guest2019_Article_GerrymanderingAndComputational.pdf">excellent paper about how to apply this to the USA's districts</a>.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/08/Screenshot-2022-08-26-at-15-10-19-Gerrymandering-and-computational-redistricting-Guest2019_Article_GerrymanderingAndComputational.pdf.png" alt="Actual and computed district maps for Iowa (a, b) and North Carolina (c, d). Computed solutions are shown in green to the right of the actual congressional districts. Darker areas on the map (census tracts) are more densely populated" width="1160" height="1056" class="aligncenter size-full wp-image-43475">

<p>But, I couldn't find anything which applied the algorithm to the UK. So I thought I'd give it a go for fun<sup id="fnref:fun"><a href="https://shkspr.mobi/blog/2022/09/running-a-shortest-splitline-algorithm-on-the-uk/#fn:fun" class="footnote-ref" title="This is a personal blog. I don't work for the Boundary Commission. I do not have the power to enact this." role="doc-noteref">2</a></sup>.</p>

<p>First, start with the <a href="https://www.ons.gov.uk/peoplepopulationandcommunity/populationandmigration/populationestimates/bulletins/annualmidyearpopulationestimates/mid2019#population-age-structure-and-density-for-local-authority-areas">Office for National Statistics' Population Density Map</a></p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/08/population-density.png" alt="Map of England, Scotland, and Wales with population densities." width="600" height="561" class="aligncenter size-full wp-image-43476">

<p>Before we even begin, there are a few obvious issues. Firstly, the map isn't contiguous. So what happens to the Shetland Isles (population 22,000) and the Isle of Wight (population 140,000)? There are, on average, 100,000 people to every MP<sup id="fnref:mp"><a href="https://shkspr.mobi/blog/2022/09/running-a-shortest-splitline-algorithm-on-the-uk/#fn:mp" class="footnote-ref" title="It is, of course, a lot more complicated than that." role="doc-noteref">3</a></sup>. Do Shetland Islanders want to be lumped together with 78k other people from the mainland who might not necessarily share their values? Do the people from the Isle of Wight want to be split in half with one half being tied to non-islanders?</p>

<p>The second (related) issue is NI. I'm not going to get into the long history there<sup id="fnref:derry"><a href="https://shkspr.mobi/blog/2022/09/running-a-shortest-splitline-algorithm-on-the-uk/#fn:derry" class="footnote-ref" title="Go watch the entirely accurate documentary &quot;Derry Girls&quot;." role="doc-noteref">4</a></sup>. But I think it is fair to say that an algorithmic segmentation might cause a few raised eyebrows. So I'm going to concentrate on England, Scotland, and Wales for this section.</p>

<p>Here's a <em>really</em> naïve (and inaccurate) split based on eyeballing it.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/08/Naive-Split-1.png" alt="Map split in two just north of London." width="600" height="531" class="aligncenter size-full wp-image-43478">

<p>Applying the algorithm again, and we can split the area into four equal population parts:</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/08/Naive-Split-2.png" alt="Map split in four, bisecting Manchester and London." width="600" height="531" class="aligncenter size-full wp-image-43477">

<p>Repeat a few hundred times and you have equal population constituencies.</p>

<p>You could slice the country into long horizontal strips. That would be equal - but not necessarily practical.</p>

<p>OK, that's enough mucking around, time to try applying it for real.</p>

<h2 id="getting-the-data"><a href="https://shkspr.mobi/blog/2022/09/running-a-shortest-splitline-algorithm-on-the-uk/#getting-the-data">Getting the data</a></h2>

<p>The first question is what resolution of population do you want? Using country-level population density isn't fine-grained enough. Using existing constituency data is just going to replicate the existing boundaries. Like this:</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/08/chesterfield.png" alt="Squiggly lines showing various boundaries." width="600" height="375" class="aligncenter size-full wp-image-43480">

<p>So... street level?</p>

<p><a href="https://www.ons.gov.uk/peoplepopulationandcommunity/populationandmigration/populationestimates/datasets/measuresofuncertaintyinonslocalauthoritymidyearpopulationestimatesallconfidenceintervals">ONS have local authority level data</a> - which isn't quite granular enough for my purposes.</p>

<p>Instead, I downloaded a <a href="https://data.humdata.org/dataset/united-kingdom-high-resolution-population-density-maps-demographic-estimates">1.2GB CSV from  Data for Good at Meta (previously Facebook)</a>. The data looks like this:</p>

<pre><code class="language-txt">"Lat","Lon","Population"
"50.62069444448494","-2.023750000001619","0.785894169690091"
"54.91486111115504","-1.378472222223325","3.3208914089403367"
"52.725416666708846","0.11152777777786699","1.116925979478443"
"52.72736111115329","0.12402777777787699","1.116925979478443"
"52.779583333375555","0.100694444444525","1.3609065999360417"
</code></pre>

<p>They have a GeoTIFF which renders the whole of the UK like this:</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/08/UK.png" alt="Map of the UK covered with little black dots." width="600" height="724" class="aligncenter size-full wp-image-43482">

<p>Zooming in to Edinburgh, shows the city is well-populated but not the countryside around it.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/08/edinburgh.png" alt="Edinburgh is reasonably densely populated, but the surrounding areas are not." width="1024" height="546" class="aligncenter size-full wp-image-43483">

<p>London, however, is dense. With occasional pockets of emptiness.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/08/London.jpg" alt="London's populuation is dense, but there are empty spots where parks are." width="1024" height="503" class="aligncenter size-full wp-image-43484">

<p>(Notes to self, to make a GeoTIFF into a browseable web map, run:</p>

<p><code>gdal_translate -of VRT -ot Byte -scale population_gbr_2019-07-01.tif temp.vrt</code></p>

<p>Then:</p>

<p><code>gdal2tiles.py temp.vrt</code></p>

<p>Finally, change to the newly generate directory and run <code>python3 -m http.server 9000</code> and - hey presto - web maps!)</p>

<h2 id="python-and-pandas-oh-my"><a href="https://shkspr.mobi/blog/2022/09/running-a-shortest-splitline-algorithm-on-the-uk/#python-and-pandas-oh-my">Python and Pandas Oh My!</a></h2>

<pre><code class="language-python">import pandas as pd
df = pd.read_csv("population_gbr_2019-07-01.csv")
total_population = df['Population'].sum()
</code></pre>

<p>Gets us a total population of 66,336,531. Which looks right to me!  Let's say we want 100,000 people (not voters) per constituency. That'd give us 663 areas - which is about what the UK has in the House of Commons<sup id="fnref:areas"><a href="https://shkspr.mobi/blog/2022/09/running-a-shortest-splitline-algorithm-on-the-uk/#fn:areas" class="footnote-ref" title="Look, OK, it's complicated. There are conventions about The Speaker and all sorts of other electoral gubbins. This is just a fun weekend exercise. Let's not get hung up on it." role="doc-noteref">5</a></sup>.</p>

<p>OK, which way do we want to split these data? <a href="https://rangevoting.org/Splitlining.html">A proposal by Brian Langstraat</a> suggests splitting only in the horizontal and vertical directions.</p>

<p>First, let's sort the data South to North.</p>

<pre><code class="language-python">df = df.sort_values(by = 'Lat', ignore_index = True)
</code></pre>

<p>Which gives us</p>

<pre><code class="language-txt">                Lat       Lon  Population
0         49.864861 -6.399306    0.573312
1         49.868194 -6.393472    0.573312
2         49.874306 -6.369583    0.573312
3         49.884306 -6.342083    0.573312
4         49.886528 -6.341806    0.573312
...             ...       ...         ...
19232801  60.855417 -0.886250    0.109079
19232802  60.855417 -0.885694    0.109079
19232803  60.855417 -0.885417    0.109079
19232804  60.855694 -0.884861    0.109079
19232805  60.855972 -0.884028    0.109079
</code></pre>

<p>Now we need to add up the <code>Population</code> until we reach <code>total_population / 2</code> - that will tell us where to make the first cut.</p>

<pre><code class="language-python">half_population = total_population / 2
index = 0
cumulative_total = 0
for x in df["Population"] :
     if (cumulative_total &gt;= half_population):
             print(str(index))
             break
     else :
             cumulative_total += x
             index += 1
</code></pre>

<p>That tells us that the row which is halfway through the population is 8,399,921.</p>

<pre><code class="language-python">df.iloc[8399921]
</code></pre>

<p>Gives us a Latitude of 52.415417 - which is <a href="https://www.google.com/maps/place/52%C2%B024'55.5%22N+0%C2%B000'00.0%22E">Huntington</a>. So a properly bisected map of the UK's population looks like:</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/08/UK-Split-1.png" alt="Map of the UK with a black line just below Birmingham." width="630" height="1088" class="aligncenter size-full wp-image-43490">

<p>50% of the population live above the black line, 50% live below it.</p>

<p>Let's take the top half and split it vertically.</p>

<pre><code class="language-python">df = df[8399921:]
df = df.sort_values(by = 'Lon', ignore_index = True)
total_population = df['Population'].sum()
half_population = total_population / 2
index = 0
cumulative_total = 0
for x in df["Population"] :
     if (cumulative_total &gt;= half_population):
             df.iloc[index]
             break
     else :
             cumulative_total += x
             index += 1
</code></pre>

<p>Which gives us 52.675972,-2.082917 - <a href="https://www.google.com/maps/place/52%C2%B040'33.5%22N+2%C2%B004'58.5%22W">an industrial estate in Wolverhampton</a>.</p>

<p>In this map, 25% of the total population live to the East of the black line, and 25% to the West:
<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/08/UK-Split-2.png" alt="A map split in two." width="630" height="851" class="aligncenter size-full wp-image-43491"></p>

<p>And this is where we start to see one of the problems with the naïve splitting algorithm. A chunk of Aberdeen has been sliced off from its neighbours. We can see that there will be a likely constituency of Shetlands, a bit of Aberdeen, and a slice of North-East England. These may not share common needs!</p>

<p>Straight-line slicing bisects otherwise "natural" groupings of people. Sure, gerrymandering is bad - but this sort of divvying up makes for the strangest bedfellows.</p>

<h2 id="shortest-splitline"><a href="https://shkspr.mobi/blog/2022/09/running-a-shortest-splitline-algorithm-on-the-uk/#shortest-splitline"><em>Shortest</em> Splitline</a></h2>

<p>The <a href="https://rangevoting.org/SplitLR.html">Shortest Splitline Algorithm</a> doesn't is similar to the above but, rather than restricting itself to vertical and horizontal lines, looks for the line with the shortest distance which contains 50% of the population.</p>

<h2 id="a-different-approach-south-up-algorithm"><a href="https://shkspr.mobi/blog/2022/09/running-a-shortest-splitline-algorithm-on-the-uk/#a-different-approach-south-up-algorithm">A Different Approach - South Up Algorithm</a></h2>

<p>Let's just start at the bottom left of the map and work our way up.</p>

<p>Here's the South West (Scilly Isles not shown<sup id="fnref:Scilly"><a href="https://shkspr.mobi/blog/2022/09/running-a-shortest-splitline-algorithm-on-the-uk/#fn:Scilly" class="footnote-ref" title="Sorry Scilly Isles! I had a lovely holiday there. You should go visit!" role="doc-noteref">6</a></sup>.):</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/08/South-West-Tip-fs8.png" alt="The South West most tip of the UK." width="800" height="600" class="aligncenter size-full wp-image-43493">

<p>Let's plot everything, just to make sure the data are all there:</p>

<pre><code class="language-python">import matplotlib.pyplot as plt
df.plot(x="Lon", y="Lat", kind="scatter", c="black")
plt.show()
</code></pre>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/08/Blobby-UK.png" alt="A blobby and squished outline of the UK." width="640" height="480" class="aligncenter size-full wp-image-43496">

<p>OK! Let's grab the first 100,000 people.</p>

<pre><code class="language-python">df = df.sort_values(by = ['Lat', 'Lon'], ignore_index=True)
target = 100000
index = 0
cumulative_total = 0
for x in df["Population"] :
     if (cumulative_total &gt;= target):
             df.iloc[index]
             break
     else :
             cumulative_total += x
             index += 1

area = df[:index]

area.plot(x="Lon", y="Lat", kind="scatter", c="black")
plt.show()
</code></pre>

<p>Which results in:</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/08/SW-Tip-Blob.png" alt="South West tip of England and Scilly Isle rendered in black blobs." width="640" height="480" class="aligncenter size-full wp-image-43498">

<p>Hurrah! Scillies and South West England! Exactly 100,000 people live in that area.</p>

<p>Let's do the next few in different colours</p>

<pre><code class="language-python">df = df.sort_values(by = ['Lat', 'Lon'], ignore_index=True)
df['Colour'] = pd.Series(dtype="U") # Add a Unicode string column for colour
target = 100000
index = 0
cumulative_total = 0

#   There is probably a much more efficient way to do this loop
for x in df["Population"] :
     if (cumulative_total &lt;= target):
             df.Colour.iloc[index] = "mistyrose"
     elif (cumulative_total &gt; target and cumulative_total &lt;= target * 2):
             df.Colour.iloc[index] = "peru"
     elif (cumulative_total &gt; target * 2 and cumulative_total &lt;= target * 3):
             df.Colour.iloc[index] = "mediumpurple"
     elif (cumulative_total &gt; target * 3 and cumulative_total &lt;= target * 4):
             df.Colour.iloc[index] = "olivedrab"
     elif (cumulative_total &gt; target * 4):
             break
     cumulative_total += x
     index += 1

area = df[:index]

area.plot(x="Lon", y="Lat", kind="scatter", c="Colour")
plt.show()
</code></pre>

<p><img src="https://shkspr.mobi/blog/wp-content/uploads/2022/08/Horizontal-Stripes-1.png" alt="A striped map of South West England. " width="1024" height="630" class="aligncenter size-full wp-image-43500">
That's (mostly) going South to North, so we get those unnatural looking stripes which have weird incongruent chunks.</p>

<h2 id="bubble-split-algorithm"><a href="https://shkspr.mobi/blog/2022/09/running-a-shortest-splitline-algorithm-on-the-uk/#bubble-split-algorithm">Bubble Split Algorithm</a></h2>

<p>Rather than drawing lines, let's use a "Bubble Split" approach. Starting in, for example, the most South Westerly point in the dataset and then growing to its neighbours until it hits a population of 100,000.</p>

<p>This will use's <a href="https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.KDTree.html?highlight=kdtree">SciPy's KDTree Algorithm</a></p>

<pre><code class="language-python">from scipy import spatial
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
df = pd.read_csv("population_gbr_2019-07-01.csv")
df = df.sort_values(by = ['Lat', 'Lon'], ignore_index=True)
points = df[["Lat", "Lon"]].to_numpy()
kdtree = spatial.KDTree(points)

# To find the nearest neighbour of a specific point:
kdtree.query( [59.1,-6.2] )[1]

counter = 1
population = 0
target = 100

while (population &lt;= target):
   nearest_index = kdtree.query( [59.1,-6.2], [counter] )[1]
   population += df.loc[nearest_index, "Population"].values[0]
   counter += 1

population
</code></pre>

<p>Looping through is <em>very</em> slow and crawls to a halt after a few thousand iterations. So let's cheat. This grabs the nearest million points and finds their total population.</p>

<pre><code class="language-python">nearest_million = kdtree.query( [59.1,-6.2], 1000000 )[1]
df["Population"].iloc[ nearest_million ].sum()
</code></pre>

<p>There's no way to iterate through the results, so its easiest to grab a bunch and iterate through that instead.</p>

<pre><code class="language-python">counter = 0
population = 0 
target = 100000

while (population &lt;= target):
    end     = (counter + 1) * 10000
    start   =  counter * 10000
    population += df["Population"].iloc[ nearest_million[start:end] ].sum()
    print("On " + str(end) + " Pop: " + str(population))
    counter += 1
</code></pre>

<p>These can now be plotted using:</p>

<pre><code class="language-python">indices = kdtree.query( [59.1,-6.2], end )[1]
to_plot = df.iloc[ indices ]
</code></pre>

<p>KDTrees are not designed to be altered - so deleting nodes from them is impossible.  Instead, the nodes have to be deleted from the data, and then a new KDTree constructed.</p>

<pre><code class="language-python">index_to_delete = kdtree.query( [59.1,-6.2], end )[1]
df = df.drop(index = index_to_delete)
points = df[["Lat", "Lon"]].to_numpy()
kdtree = spatial.KDTree(points)
</code></pre>

<h2 id="bounding-boxes"><a href="https://shkspr.mobi/blog/2022/09/running-a-shortest-splitline-algorithm-on-the-uk/#bounding-boxes">Bounding Boxes</a></h2>

<p>Drawing a box around some points is useful. It provides a geographic border and also means we don't need to worry about map colouring algorithms.</p>

<p>For this, we'll use <a href="https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.ConvexHull.html">SciPy's ConvexHull</a> algorithm:</p>

<pre><code class="language-python">import matplotlib.pyplot as plt
from scipy.spatial import ConvexHull, convex_hull_plot_2d
import numpy as np

indices = kdtree.query( [x,y], end )[1]

area = df.iloc[ indices ]

s_array = area[["Lat", "Lon"]].to_numpy()
hull = ConvexHull(s_array)
plt.plot(s_array[:,0], s_array[:,1], 'o') # Remove this to only display the hull

for simplex in hull.simplices:
    plt.plot(s_array[simplex, 0], s_array[simplex, 1], 'k-')

plt.show()
</code></pre>

<p>Here's the result - can you spot what I did wrong?
<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/08/Bounding-Box.png" alt="A bounding box surrounding the Scilly Isles and South West England." width="540" height="657" class="aligncenter size-full wp-image-43502"></p>

<h2 id="putting-it-all-together"><a href="https://shkspr.mobi/blog/2022/09/running-a-shortest-splitline-algorithm-on-the-uk/#putting-it-all-together">Putting it all together</a></h2>

<p>This scrap of code reads the data, sorts it, constructs a KDTree, starts at the South West tip, finds the 100,000 people nearest to that point, and draws a bounding box around them:</p>

<pre><code class="language-python">#   Import the libraries
import pandas as pd
import matplotlib.pyplot as plt
from scipy import spatial
from scipy.spatial import ConvexHull, convex_hull_plot_2d
import numpy as np

#   Read the data
df = pd.read_csv("population_gbr_2019-07-01.csv")

#   Sort the data
df = df.sort_values(by = ['Lat', 'Lon'], ignore_index=True)

#   Create KDTree
points = df[["Lat", "Lon"]].to_numpy()
kdtree = spatial.KDTree(points)

#   Most South Westerly Point
sw_lat, sw_lon = points[0]

#   Get first 100,000 people
counter = 0
population = 0 
increment = 5000
target = 100000

while (population &lt;= target):
    end     = (counter + 1) * increment
    start   =  counter * increment
    population += df["Population"].iloc[ nearest_million[start:end] ].sum()
    print("On " + str(end) + " Pop: " + str(population))
    counter += 1

#   Get the index numbers of the points with 100,000 people
indices = kdtree.query( [sw_lat, sw_lon], end )[1]

#   A separate DataFrame for drawing
to_plot = df.iloc[ indices ]

#   Flip Lat &amp; Lon, because Lon is the X Co-ord, Lat is Y Co-ord
plot_array = to_plot[["Lon", "Lat"]].to_numpy()

#   Calculate the bounding box
hull = ConvexHull(plot_array)

#   Plot the points
plt.plot(plot_array[:,0], plot_array[:,1], 'o') # Remove this to only display the hull

#   Draw the hull
for simplex in hull.simplices:
    plt.plot(plot_array[simplex, 0], plot_array[simplex, 1], 'k-')

#   Display the plot
plt.show()
</code></pre>

<p>Which produces: 
<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/08/Quick-SW-BB-fs8.png" alt="A bounding box showing the Scilies and the South West of England." width="949" height="557" class="aligncenter size-full wp-image-43513"></p>

<p>Running that a few more times gives this (sorry for chopping off the Scilly Isles):</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/08/Three-fs8.png" alt="South Western tip of England split into three." width="1024" height="507" class="aligncenter size-full wp-image-43514">

<p>Can you see why I call this "Bubble Split"?</p>

<p>Already we can see the limits to this approach. The orange-coloured subdivision has a little incongruent bit across the estuary of the River Fal.</p>

<p>Here's the (hugely inefficient and slow) code to generate 40 areas of roughly 100,000 people:</p>

<pre><code class="language-python">#   Import the libraries
import pandas as pd
import matplotlib.pyplot as plt
from scipy import spatial
from scipy.spatial import ConvexHull, convex_hull_plot_2d
import numpy as np

def get_100k_people(df, nearest_million) :
    counter = 0
    population = 0 
    increment = 1000
    target = 100000

    while (population &lt;= target):
        end     = (counter + 1) * increment
        start   =  counter * increment
        population += df["Population"].iloc[ nearest_million[start:end] ].sum()
        #print("On " + str(end) + " Pop: " + str(population))
        counter += 1

    return end

def plot_hull(df, indices) :
    #   A separate DataFrame for drawing
    to_plot = df.iloc[ indices ]

    #   Flip Lat &amp; Lon, because Lon is the X Co-ord, Lat is Y Co-ord
    plot_array = to_plot[["Lon", "Lat"]].to_numpy()

    #   Calculate the bounding box
    #hull = ConvexHull(plot_array)

    #   Plot the points
    plt.plot(plot_array[:,0], plot_array[:,1], 'o', markersize=1) # Remove this to only display the hull

    #   Draw the hull
    #for simplex in hull.simplices:
    #    plt.plot(plot_array[simplex, 0], plot_array[simplex, 1], 'k-')

#   Read the data
df = pd.read_csv("population_gbr_2019-07-01.csv")

#   Sort the data
df = df.sort_values(by = ['Lat', 'Lon'], ignore_index=True)

for areas in range(40):
    #   Create KDTree
    points = df[["Lat", "Lon"]].to_numpy()
    kdtree = spatial.KDTree(points)

    #   Most South Westerly Point
    sw_lat, sw_lon = points[0]

    #   Get the nearest 1 million points
    nearest_million = kdtree.query( [sw_lat, sw_lon], 1000000 )[1]

    #   How many points contain a cumulative total of 100k people
    end = get_100k_people(df, nearest_million)

    #   Get the index numbers of those points
    indices = kdtree.query( [sw_lat, sw_lon], end )[1]

    #    Draw
    plot_hull(df, indices)

    #   Delete used Indices
    df = df.drop(index = indices)
    df = df.reset_index(drop = True)

#   Display the plot
plt.show()
</code></pre>

<h2 id="other-choices"><a href="https://shkspr.mobi/blog/2022/09/running-a-shortest-splitline-algorithm-on-the-uk/#other-choices">Other Choices</a></h2>

<p>I made the rather arbitrary choice to start in the South West and proceed Northwards.  What if, instead, we start with the point with the lowest population density and work upwards.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/08/popmap586-fs8.png" alt="Map of the UK covered in coloured shapes." width="2716" height="2063" class="aligncenter size-full wp-image-43518">

<p>Here's a video of the sequence:</p>

<p></p><div style="width: 620px;" class="wp-video"><video class="wp-video-shortcode" id="video-43474-5" width="620" height="472" preload="metadata" controls="controls"><source type="video/mp4" src="https://shkspr.mobi/blog/wp-content/uploads/2022/08/small-to-large.mp4?_=5"><a href="https://shkspr.mobi/blog/wp-content/uploads/2022/08/small-to-large.mp4">https://shkspr.mobi/blog/wp-content/uploads/2022/08/small-to-large.mp4</a></video></div><p></p>

<p>As you can see, it starts off pretty well, but the final few areas are randomly distributed throughout the map. I kinda like the idea of a meta-constituency of small villages. But I'm not sure if that's practical!</p>

<p>This next video starts with the highest population density and works downwards:</p>

<p></p><div style="width: 620px;" class="wp-video"><video class="wp-video-shortcode" id="video-43474-6" width="620" height="472" preload="metadata" controls="controls"><source type="video/mp4" src="https://shkspr.mobi/blog/wp-content/uploads/2022/09/large-to-small.mp4?_=6"><a href="https://shkspr.mobi/blog/wp-content/uploads/2022/09/large-to-small.mp4">https://shkspr.mobi/blog/wp-content/uploads/2022/09/large-to-small.mp4</a></video></div><p></p>

<blockquote class="social-embed" id="social-embed-1563886338704920576" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><blockquote class="social-embed" id="social-embed-1563883241785987072" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/edent" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRkgBAABXRUJQVlA4IDwBAACQCACdASowADAAPrVQn0ynJCKiJyto4BaJaQAIIsx4Au9dhDqVA1i1RoRTO7nbdyy03nM5FhvV62goUj37tuxqpfpPeTBZvrJ78w0qAAD+/hVyFHvYXIrMCjny0z7wqsB9/QE08xls/AQdXJFX0adG9lISsm6kV96J5FINBFXzHwfzMCr4N6r3z5/Aa/wfEoVGX3H976she3jyS8RqJv7Jw7bOxoTSPlu4gNbfXYZ9TnbdQ0MNnMObyaRQLIu556jIj03zfJrVgqRM8GPwRoWb1M9AfzFe6Mtg13uEIqrTHmiuBpH+bTVB5EEQ3uby0C//XOAPJOFv4QV8RZDPQd517Khyba8Jlr97j2kIBJD9K3mbOHSHiQDasj6Y3forATbIg4QZHxWnCeqqMkVYfUAivuL0L/68mMnagAAA" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Terence Eden is on Mastodon</p>@edent</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody"><small class="social-embed-reply"><a href="https://twitter.com/edent/status/1563840173317693440">Replying to @edent</a></small>Here's the reverse.<br>Start at the most densely populated point.<br>Draw a randomly coloured shape around the ~100,000 nearest people.<br>Find the next most dense point which hasn't already been drawn.<br>Repeat ~650 times.<br>This would be a *terrible* system for creating constituencies. <a href="https://twitter.com/edent/status/1563883241785987072/video/1">pic.x.com/uqifiakbmp</a><div class="social-embed-media-grid"><video class="social-embed-video" controls="" src="https://video.twimg.com/ext_tw_video/1563882539550494728/pu/vid/946x720/LCUepGpBRfu45xAK.mp4?tag=12" poster="data:image/webp;base64,UklGRggLAABXRUJQVlA4IPwKAABQhQCdASqoAgUCPrVWplAnJCQioHM5IOAWiWlu4XaxGsIPmP6sf07tT/uP858cfA952kv3FfxD7Q/l/Y92R/CjUC9bf4Pe5c+8wL13+a/7jwQ/570E71n9d4jfz72AP5b/g/+v6hOff6g9g39cetqGaBbUzy8Xgl/Ggg5LvmhvBVzBW0XzRfTBW0N8byv52/nb+dvyeB3HJd80X0t9Aak8FWhLF1/jRxYD+DK+Drnw0pchKJb6m1K9LSlsa49SWnRkbSIZPRf13o5H5qOShGqNUao1RqjVGqNUao1RqjJeb7XHfD4V/jPgiVwMTywzfVcYkxJiTEmJMSYkxJiTEmJMPZUrsDHYm5Nybk3JuTcm5Nybk3JuTVjDCShU3JuTcm5Nybk3JuTcm5NybgcZWwH0m1NqbU2ptTam1NqbU2ptTX2M1/lwZUXqVxhjDGGMMYYwxhjDGGMMYYwoFxp8VhYgE4Oyxx0wwNT2HrVqLbZuzdm7N2bs3Zuzdm7N2bps0i7CRcYkxJiTEmJMSYkxJiTEmJMPZUSGTIEmJMSYkxJiTEmJMSYkxJiRKWH1SuMMYYwxhjDGGMMYYwxhjDGFAv/cxXGJMSYkxJiTEmJMSYkxJiTD2T+FbN0gUyfaUptULucpjht5dPbsTcm5Nybk3JuTcm5Nybk3JqxcWAjFm9TuKRA1RqjVGqNUao1RqjVGqNUahmCy1K4wxhjDGGMMYYwxhjDGGMMYUC/9zFcYkxJiTEmJMSYkxJiTEmJMPZUSGTIEmJMSYkxJiTEmJMSYkxJiRKTZtmn+F0ebgd6Hk3L9nDi22bs3Zuzdm7N2bs3Zuzdm6bL7W8HxqnsWpU5R0EW2zdm7N2bs3Zuzdm7N2bs3TZpXUyQNUao1RqjVGqNUaggM6XjbG2MaT+lfv4lxLiXEuJcS4lxLiXEuJcSDn4GHEsuJcS4lxLiXEuJcS4lxLiWjJ+7/OYifI8dXAaoDeooI1RqjVGqNUao1RqjVGqNUILjGNYIrbgk1e+TIDBg6mi7E3JuTcm5Nybk3JuTcm5NyasYYO5yi22bs3Zuzdm7N2bs3Zuzdm6bNIx7+LY2xtjbG2NsbY2xtjbG2Nr68Vl0X5xLiXEuJcS4lxLiXEuJcS4Qk62V1qzfDiWXEuJcS4lxLiXEuJcS4lxLRk+kuR0Fc8rhk+MFh9QJj8eGY02UC+JUugl+BhBVtDeCnwX19fnkLjQQclskuuyQpXCDktu89Sq2cMYB5oIORWGXcngHmgKwxa0YJAaBhwCFFj18kmU5UDeCMySnAgzCZ0J98ca98TUNWhQWLPXx17r3EBayXaY6TBNRcAc8XxIvSU/+gdA6Byv6sL93XUrJwNk3AEKjGa6FZ4JcBNvn4pnqTaYMcYMlUDPC+I/JIGMvXDU2ptTam1NqbU2ptTam1NqbU2ptTamugAP7/qv92WYBObbRCh9WKgA/KXZ/rM62Az+sp8imBTc27y8ei4iA/m3ebc7LxzbvLx6OxyajNudmpr827y8ejscmosdunyJjNu8vHo7HJTQfx8OGQs/I2T6xpb83R4G8JYTUlK8cfOKr/gsa0AID7Bgci7KnVjsc5g5H2Gbfn2NB2V2PCR/UcwadHw/vzmtPpaiiEZ0hZIFyGQbsQjHZw9SOSftUm9bTg7tlv+/UeKp5dDxb6NWEez8Yx9V1e4Pi/OxP5Luufu+4/qOAtglMOtsK4UA6Q4eCFinV48PSOzP0X3dYj9hU2nG1RBCkIBYBdie/7deTOTYQhcB4lsPq90G55zVXm4l7NWX8/BARp+AH3JCqJ0avrJF9EhyxtvZjmsALIhS9gABm0dBEt+91+3YeKAxdkCAABIVNMul7rGRQRNN96FWYnWJjSKm5FZbZO+JgB3wirPcwTzEIhP/tDTotK7b2UwAV4e7xkSza+EIXwxUM2b/qK9Tr8dZ1EmVX8Gs30TtgoppMyRK/wCE/u8b2/pEPp2H39sWVtzML/f5TdSDCNH9aqwmzZ6P+kSX7YRmobey44FBxZozS4vgw2fjp9kVRvp2w+nmWLZmXqg9JxInit6qLX2Yzu6KSAAAAAAAAAM1cPh5sz9lyq57+8NTI4k2M4FDmkjX4ePxOC9fQvx0xlMQJzkZ+dhXgWd4D3EQd4MFCtCW3K7JrYiqeOsOK7falYGSbLSEzHh1G6FqMlWGWVG6CP99QqnlFVydrYDD4HxUGLLV90N894z+I3bFlU6AOjyh7HBsQDNhPb4MKpuF+YE7pKv4SDwwxLjhy1W9nNVKAddAIIbAAAAAAAAAACEss3h6Jqux4hwy/iaAmBJMEUwDnQMyVvIx5vP9MmkzkPB6swkFvM1epxKBij1B8/9FM53qP/Oxhn/T9LXaiAvj+WGfw3xaxhDmWS+W1y4k8m5YRXDIStX2uE2M4hC06/mYhA7kNRKraoWZwR7/Ib0sdegFDoA84rC7SjopZs0ZUcjOhyNHbxuzewaKIypkiJKPi+BQRPt9BWLKphQAALgAAgMaS3r6cYREx6NPOZqGIfiBccEQAAAv/IJxChfEnrgDBT75PDBSTz7wqKkQKCUDvol4EAvzJxtpdqbTfRYDuLsNjjlX9A8DGraNzA1W6l66kcAJ7oojxdT/9i26aPK3gU7FvWPHly2lcakK95Lx+bfQK2BscUqqsJqjWzeKJhi9UhkXuVnjbuonnZwQVY9BFp03+nzQMOdgCngIgJzcav7Bm4naXrumO1efkbE54eh0aQCWQd54JhQAAAAAAACUNJRJUA5c7WHQHvjxpNSYADyv+Q0V/aEw/FO+O6g/nHg1PIjZ1RW0r2xuIzEzNvk5Cpm2V3hgiqU/ZmK7aEKTWlK32V+nNwXhyYVGwMjiHJh/vxF0maWXnxfDUZGiIPBbZ20t3oX0fUWr5ztVAtsD5qaTtFA+WlIxydSP7RPJH8+e5tNrHM6cE9Py8m/OOKfAbvsTiQtjW4VobhVkOQyahSZE0MfJMD5e/mIwoGjewkl4eqcblQr4DBrorfLg3/+TpFwG0zrFBbefkw6Y/7n1pnUqaqYbN/wJw0s4iU7/ztvoDmaEzjj/m5hobg0RvqIAN1hHbR71+DX4xYjaGVxlCVJ+lPXVEVeBtMvfq70iLb2PpBcVYfm3FvmBtdeHEqhMiHTljvNkR+maGwwSn3PQ/gOO7bRgB880t00+5Z5veJJuKXckuBECAqEbA0lyMIa9h9tKfb1srCDqhza4782BmHpWt/xJDLI81GLqc4I1IS34QeIPJTj3xnbX5jljRRDeVdv+1DVscOJPU7TNhreK+tKHUGjnirX+JuNGFKawGujZDlo5V/E/BPDBscsD1kcI34s86oOmNtbD+DcDEBVdVhH1JfNEK0XB92ZIqoNDHik9E5r7UC9rW0hXtnMN29gdt7zkA1pESBR3O7GXle8LBraqqTISfObPGMNctmXk5TGLTdm1I8GuS2O2ofQh58yIHauPrvH3E+pz/af/zPNR70S4ZoNiIyAcMfegCNHy+H8uaLbjrLPO6cRMX0+fspd5VDKtWCr+eYk+HkfgDsh1Qpmvn6cM2tcV/zDoXuJUUitvfeiaEkmEmnGA1DW9GygDVKnU3bcENB4jQFIRYFjh8l8vwEdcfF+eLkfGreXY+ieKh0OW2fWdzYhhw+2RfpvwMWNSqF2qLeadhwR++1J9LbD/cHp3kzyfS1SHpXrWso2Ok6DQtMaXiKJwXcFkBwGDFDJ8gYM96BPmk5v6WfasoSArQAAAAA" width="550"></video></div></section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/edent/status/1563883241785987072"><span aria-label="4 likes" class="social-embed-meta">❤️ 4</span><span aria-label="0 replies" class="social-embed-meta">💬 0</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2022-08-28T13:36:35.000Z" itemprop="datePublished">13:36 - Sun 28 August 2022</time></a></footer></blockquote><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/edent" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRkgBAABXRUJQVlA4IDwBAACQCACdASowADAAPrVQn0ynJCKiJyto4BaJaQAIIsx4Au9dhDqVA1i1RoRTO7nbdyy03nM5FhvV62goUj37tuxqpfpPeTBZvrJ78w0qAAD+/hVyFHvYXIrMCjny0z7wqsB9/QE08xls/AQdXJFX0adG9lISsm6kV96J5FINBFXzHwfzMCr4N6r3z5/Aa/wfEoVGX3H976she3jyS8RqJv7Jw7bOxoTSPlu4gNbfXYZ9TnbdQ0MNnMObyaRQLIu556jIj03zfJrVgqRM8GPwRoWb1M9AfzFe6Mtg13uEIqrTHmiuBpH+bTVB5EEQ3uby0C//XOAPJOFv4QV8RZDPQd517Khyba8Jlr97j2kIBJD9K3mbOHSHiQDasj6Y3forATbIg4QZHxWnCeqqMkVYfUAivuL0L/68mMnagAAA" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Terence Eden is on Mastodon</p>@edent</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody"><small class="social-embed-reply"><a href="https://twitter.com/edent/status/1563883241785987072">Replying to @edent</a></small>Here are the two different approaches. Click for massive.<br><br>Left starts at the lowest density.<br>Right starts at the highest density.<br><br>Fascinating to see where they diverge, and which bits look more "natural".<br>Anyway, go play with maps, data, &amp; algorithms. It's fun! <a href="https://twitter.com/edent/status/1563886338704920576/photo/1">pic.x.com/dpcbsbymsb</a><div class="social-embed-media-grid"><a href="https://pbs.twimg.com/media/FbQJst0WYAYd7TD.png" class="social-embed-media-link"><img class="social-embed-media" alt="A map of the UK divided up into coloured blobs." src="data:image/webp;base64,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"></a><a href="https://pbs.twimg.com/media/FbQJu2sX0AEvGX-.jpg" class="social-embed-media-link"><img class="social-embed-media" alt="A map of the UK divided up into slightly differently shaped coloured blobs." src="data:image/webp;base64,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"></a></div></section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/edent/status/1563886338704920576"><span aria-label="4 likes" class="social-embed-meta">❤️ 4</span><span aria-label="1 replies" class="social-embed-meta">💬 1</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2022-08-28T13:48:53.000Z" itemprop="datePublished">13:48 - Sun 28 August 2022</time></a></footer></blockquote>

<p>NB, there's no guarantee that the generated images will have dimensions be divisible by two - so here's some hacky <code>ffmpeg</code> code to crop the images!
<code>ffmpeg -framerate 1 -pattern_type glob -i '*.png' -c:v libx264 -r 30 -pix_fmt yuv420p -vf "crop=trunc(iw/2)*2:trunc(ih/2)*2" output.mp4</code></p>

<p>Or, to scale the video to 1280 wide
<code>ffmpeg -framerate 1 -pattern_type glob -i '*.png' -c:v libx264 -r 30 -pix_fmt yuv420p -vf scale=1280:-2 output.mp4</code></p>

<h2 id="algorithms-arent-neutral"><a href="https://shkspr.mobi/blog/2022/09/running-a-shortest-splitline-algorithm-on-the-uk/#algorithms-arent-neutral">Algorithms aren't neutral</a></h2>

<p>It's tempting to think that computer code is neutral. It isn't. Even something as seemingly innocuous as choosing a starting point can cause radical change. It may be aesthetically pleasing to draw straight lines on maps - but it can cause all sorts of tension when communities are divided, or combined, against their will<sup id="fnref:empire"><a href="https://shkspr.mobi/blog/2022/09/running-a-shortest-splitline-algorithm-on-the-uk/#fn:empire" class="footnote-ref" title="See, for example, the entire history of colonialism." role="doc-noteref">7</a></sup>.</p>

<p>It's a fun exercise to take population density data and play around with it algorithmically. It shows the power and the limitations of automated decision making.</p>

<div id="footnotes" role="doc-endnotes">
<hr aria-label="Footnotes">
<ol start="0">

<li id="fn:impartial">
<p>LOL!&nbsp;<a href="https://shkspr.mobi/blog/2022/09/running-a-shortest-splitline-algorithm-on-the-uk/#fnref:impartial" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:unbiased">
<p>Even bigger LOL!&nbsp;<a href="https://shkspr.mobi/blog/2022/09/running-a-shortest-splitline-algorithm-on-the-uk/#fnref:unbiased" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:fun">
<p>This is a personal blog. I don't work for the Boundary Commission. I do not have the power to enact this.&nbsp;<a href="https://shkspr.mobi/blog/2022/09/running-a-shortest-splitline-algorithm-on-the-uk/#fnref:fun" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:mp">
<p>It is, of course, a <em>lot</em> more complicated than that.&nbsp;<a href="https://shkspr.mobi/blog/2022/09/running-a-shortest-splitline-algorithm-on-the-uk/#fnref:mp" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:derry">
<p>Go watch the entirely accurate documentary "Derry Girls".&nbsp;<a href="https://shkspr.mobi/blog/2022/09/running-a-shortest-splitline-algorithm-on-the-uk/#fnref:derry" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:areas">
<p>Look, OK, it's complicated. There are conventions about The Speaker and all sorts of other electoral gubbins. This is just a fun weekend exercise. Let's not get hung up on it.&nbsp;<a href="https://shkspr.mobi/blog/2022/09/running-a-shortest-splitline-algorithm-on-the-uk/#fnref:areas" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:Scilly">
<p>Sorry Scilly Isles! I had a lovely holiday there. You should go visit!&nbsp;<a href="https://shkspr.mobi/blog/2022/09/running-a-shortest-splitline-algorithm-on-the-uk/#fnref:Scilly" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:empire">
<p>See, for example, the entire history of colonialism.&nbsp;<a href="https://shkspr.mobi/blog/2022/09/running-a-shortest-splitline-algorithm-on-the-uk/#fnref:empire" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

</ol>
</div>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=43474&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2022/09/running-a-shortest-splitline-algorithm-on-the-uk/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://shkspr.mobi/blog/wp-content/uploads/2022/08/small-to-large.mp4" length="2822535" type="video/mp4" />
<enclosure url="https://shkspr.mobi/blog/wp-content/uploads/2022/09/large-to-small.mp4" length="1439837" type="video/mp4" />
<enclosure url="https://video.twimg.com/ext_tw_video/1563882539550494728/pu/vid/946x720/LCUepGpBRfu45xAK.mp4?tag=12" length="1430719" type="video/mp4" />

			</item>
		<item>
		<title><![CDATA[Reprojecting Satellite Maps]]></title>
		<link>https://shkspr.mobi/blog/2021/08/reprojecting-satellite-maps/</link>
					<comments>https://shkspr.mobi/blog/2021/08/reprojecting-satellite-maps/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Mon, 02 Aug 2021 11:03:35 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[OCSE]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=39737</guid>

					<description><![CDATA[Regular readers know, I&#039;m Creating an &#34;Organization of Cartographers for Social Equality&#34; map. I&#039;ve already had some success using an existing NZ Centric, Equal Earth Map.  And I&#039;ve programmatically created a correctly projected map with R.  But is it possible to do this with Satellite imagery? YES!  Install gdal  For this to work, you&#039;ll need GDAL - the Geospatial Data Abstraction Library.…]]></description>
										<content:encoded><![CDATA[<p>Regular readers know, I'm <a href="https://shkspr.mobi/blog/2019/11/creating-an-organization-of-cartographers-for-social-equality-map-with-openstreetmap/">Creating an "Organization of Cartographers for Social Equality" map</a>. I've already had some success using an existing <a href="https://shkspr.mobi/blog/2021/07/south-up-equal-earth-map/">NZ Centric, Equal Earth Map</a>.  And I've programmatically <a href="https://shkspr.mobi/blog/2021/07/south-up-equal-earth-projection-in-r/">created a correctly projected map with R</a>.</p>

<p>But is it possible to do this with Satellite imagery? YES!</p>

<h2 id="install-gdal"><a href="https://shkspr.mobi/blog/2021/08/reprojecting-satellite-maps/#install-gdal">Install <code>gdal</code></a></h2>

<p>For this to work, you'll need <a href="https://gdal.org/"><code>GDAL</code> - the Geospatial Data Abstraction Library</a>. They're a handy set of tools for getting and manipulating maps.</p>

<h2 id="get-the-data"><a href="https://shkspr.mobi/blog/2021/08/reprojecting-satellite-maps/#get-the-data">Get the data</a></h2>

<p><a href="https://dataspace.copernicus.eu/explore-data/data-collections/sentinel-data/sentinel-2">Sentinel-2 launched in 2015</a>:</p>

<blockquote><p>The Copernicus Sentinel-2 mission comprises a constellation of two polar-orbiting satellites placed in the same sun-synchronous orbit, phased at 180° to each other. It aims at monitoring variability in land surface condition</p></blockquote>

<p>You can browse the maps on <a href="https://s2maps.eu/"></a><a href="https://s2maps.eu/">https://s2maps.eu/</a> and - best of all - the images are licenced under Creative Commons!</p>

<p>To download the data, run:</p>

<pre><code class="language-bash">gdal_translate -of JPEG -outsize 1600 900 \
   "WMS:https://tiles.maps.eox.at/?SERVICE=WMS&amp;VERSION=1.1.1&amp;REQUEST=GetMap&amp;LAYERS=s2cloudless-2019&amp;SRS=EPSG:4326&amp;BBOX=-180.000000,-90.000000,180.000000,90.000000&amp;FORMAT=image/jpeg&amp;TILESIZE=256&amp;OVERVIEWCOUNT=17&amp;MINRESOLUTION=0.0000053644180298&amp;TILED=true" \
   1600x900.jpeg
</code></pre>

<p>That downloads the map in EPSG:4326 projection, saves a JPG, and an XML file with metadata.</p>

<p>To see which different versions of the data are available, run:</p>

<pre><code class="language-bash">gdalinfo "WMS:https://tiles.maps.eox.at/?SERVICE=WMS&amp;"
</code></pre>

<p>See <a href="https://gis.stackexchange.com/questions/372425/download-sentinel-2-wms-layer-using-gdal/372441">this StackOverflow answer</a> for details.</p>

<h2 id="re-project-the-data"><a href="https://shkspr.mobi/blog/2021/08/reprojecting-satellite-maps/#re-project-the-data">Re-project the data</a></h2>

<p>OK, we now have the data in WGS84 format. Let's squish it around into a different projection. In this case, <a href="https://proj.org/operations/projections/cea.html">Equal Area Cylindrical (cea)</a>, centred roughtly on New Zealand, and South side up:</p>

<pre><code class="language-bash">gdalwarp -s_srs EPSG:4326 \
 -t_srs "+proj=cea +lon_0=146 +x_0=0 +y_0=0 +lat_ts=45 +ellps=WGS84 +datum=WGS84 +units=m +no_defs +axis=wsu" \
 -r near \
 -of PNG \
 1600x900.jpg out.png
</code></pre>

<h3 id="result"><a href="https://shkspr.mobi/blog/2021/08/reprojecting-satellite-maps/#result">Result</a></h3>

<p><a href="https://shkspr.mobi/blog/wp-content/uploads/2021/07/map.jpeg"><img src="https://shkspr.mobi/blog/wp-content/uploads/2021/07/map.jpeg" alt="South up satellite photo." width="1642" height="821" class="aligncenter size-full wp-image-39743"></a>
Click to embiggen.</p>

<p>🄯 CC BY-NC-SA "Sentinel-2 cloudless - <a href="https://s2maps.eu">https://s2maps.eu</a> by EOX IT Services GmbH (Contains modified Copernicus Sentinel data 2020)"</p>

<h2 id="other-sources"><a href="https://shkspr.mobi/blog/2021/08/reprojecting-satellite-maps/#other-sources">Other Sources</a></h2>

<p>There are a few other sources you can use.</p>

<p><a href="https://www.naturalearthdata.com/downloads/50m-raster-data/">Natural Earth</a> provides great imagery.
<a href="https://shkspr.mobi/blog/wp-content/uploads/2021/07/Natural-Earth-reprojected.jpeg"><img src="https://shkspr.mobi/blog/wp-content/uploads/2021/07/Natural-Earth-reprojected.jpeg" alt="Colourful map of the world." width="1024" height="648" class="aligncenter size-full wp-image-39744"></a></p>

<p><a href="https://worldview.earthdata.nasa.gov">NASA's World View</a> gives realtime-ish satelite images.
<a href="https://shkspr.mobi/blog/wp-content/uploads/2021/07/NASA-1024.jpeg"><img src="https://shkspr.mobi/blog/wp-content/uploads/2021/07/NASA-1024.jpeg" alt="Satellite view of the earth." width="1024" height="620" class="aligncenter size-full wp-image-39745"></a></p>

<p><a href="https://eos.com/blog/free-satellite-imagery-sources/">More resources on the EOS blog</a>.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=39737&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2021/08/reprojecting-satellite-maps/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Force Directed Graph of the London Tube Map - including CrossRail!]]></title>
		<link>https://shkspr.mobi/blog/2021/02/force-directed-graph-of-the-london-tube-map-including-crossrail/</link>
					<comments>https://shkspr.mobi/blog/2021/02/force-directed-graph-of-the-london-tube-map-including-crossrail/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sun, 14 Feb 2021 12:30:13 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[Open Data]]></category>
		<category><![CDATA[tfl]]></category>
		<category><![CDATA[tube]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=38123</guid>

					<description><![CDATA[Force Directed Graphs of the London Underground have been done many times before - but I think I&#039;m the first person to add the new Elizabeth Line (CrossRail).  I&#039;ve also created a JSON graph of all of London&#039;s rail services - including DLR, Trams, C2C, ThamesLink etc.  Demo     Play with it yourself Grab the code from GitLab I&#039;ve also created a version with every London station and train line.  …]]></description>
										<content:encoded><![CDATA[<p>Force Directed Graphs of the London Underground have been done many times before - but I think I'm the first person to add the new Elizabeth Line (CrossRail).</p>

<p>I've also created <a href="https://gitlab.com/edent/force-directed-london-tube-map/-/blob/master/TfL%20Graph.json">a JSON graph of all of London's rail services</a> - including DLR, Trams, C2C, ThamesLink etc.</p>

<h2 id="demo"><a href="https://shkspr.mobi/blog/2021/02/force-directed-graph-of-the-london-tube-map-including-crossrail/#demo">Demo</a></h2>

<iframe title="Force Directed Graph of London Underground - including CrossRail - using D3." width="620" height="349" src="https://www.youtube.com/embed/gclRxDKlCEY?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>

<ul>
<li><a href="https://edent.gitlab.io/force-directed-london-tube-map/force.html">Play with it yourself</a></li>
<li><a href="https://gitlab.com/edent/force-directed-london-tube-map/">Grab the code from GitLab</a></li>
<li>I've also created a version with <a href="https://edent.gitlab.io/force-directed-london-tube-map/full.html"><em>every</em> London station and train line</a>.</li>
</ul>

<h2 id="limitations"><a href="https://shkspr.mobi/blog/2021/02/force-directed-graph-of-the-london-tube-map-including-crossrail/#limitations">Limitations</a></h2>

<ul>
<li>This is a quick weekend hack - don't expect polished code or performance!</li>
<li>"Overlapping" lines don't show. So where a route is served by multiple lines, you'll only see one of them.</li>
<li>Zoom is a bit shonky.</li>
<li>Relies on an older version of D3 (V5).</li>
</ul>

<h2 id="background"><a href="https://shkspr.mobi/blog/2021/02/force-directed-graph-of-the-london-tube-map-including-crossrail/#background">Background</a></h2>

<p>Drawing the Tube map as a graph is a popular pastime. See these prior arts:</p>

<ul>
<li>"<a href="http://blogs.casa.ucl.ac.uk/2011/09/01/force-directed-graph-of-tube-lines/">Force-directed graph of tube lines</a>" by Martin Zaltz Austwick (2011)</li>
<li>"<a href="https://www.researchgate.net/figure/The-London-Underground-map-with-a-focus-on-Green-Park-created-using-the-method-described_fig2_320371151">Graph Drawing by Weighted Constraint Relaxation</a>" (2017)</li>
<li>"<a href="https://www.linkedin.com/pulse/what-would-london-tube-map-look-like-data-scientist-designed-mcnulty/">What would the London Tube Map look like if Data Scientists designed it?</a>" by Keith McNulty (2018)</li>
<li>"<a href="https://neo4j.com/blog/going-underground-graphing-pathfinding-london-tube-lines/">Going Underground: Graphing and Pathfinding London Tube Lines</a>" by Joe Depeau (2019)</li>
<li>And many others.</li>
</ul>

<p>I forked some code from <a href="https://gist.github.com/mapio/53fed7d84cd1812d6a6639ed7aa83868">Massimo Santini</a>.</p>

<p>Chris Bell maintains an excellent <a href="https://www.doogal.co.uk/london_stations.php">CSV of all London stations and their connections</a></p>

<p>The official colours for each line can be found in <a href="https://web.archive.org/web/20210214123302/https://content.tfl.gov.uk/tfl-colour-standards-issue04.pdf">TfL's colour branding guide</a> and in hex versions at <a href="https://oobrien.com/2012/01/tube-colours/">Oliver O'Brien's site</a>.</p>

<h2 id="whats-next"><a href="https://shkspr.mobi/blog/2021/02/force-directed-graph-of-the-london-tube-map-including-crossrail/#whats-next">What's next</a></h2>

<p>Possible ideas - feel free to <a href="https://gitlab.com/edent/force-directed-london-tube-map/">contribute on GitLab</a>.</p>

<ul>
<li>Experiment with different layout algorithms.</li>
<li>Weight links according to speed, distance, business, or some other metric.</li>
<li>Better colour options for non-TfL lines.</li>
<li>More efficient code.</li>
</ul>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=38123&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2021/02/force-directed-graph-of-the-london-tube-map-including-crossrail/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
	</channel>
</rss>
