<?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>flooding &#8211; Terence Eden’s Blog</title>
	<atom:link href="https://shkspr.mobi/blog/tag/flooding/feed/" rel="self" type="application/rss+xml" />
	<link>https://shkspr.mobi/blog</link>
	<description>Regular nonsense about tech and its effects 🙃</description>
	<lastBuildDate>Tue, 26 May 2026 19:43:37 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://shkspr.mobi/blog/wp-content/uploads/2023/07/cropped-avatar-32x32.jpeg</url>
	<title>flooding &#8211; Terence Eden’s Blog</title>
	<link>https://shkspr.mobi/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title><![CDATA[Putting UK Flooding Alerts Onto Twitter #UKBLC14]]></title>
		<link>https://shkspr.mobi/blog/2014/05/putting-uk-flooding-alerts-onto-twitter-ukblc14/</link>
					<comments>https://shkspr.mobi/blog/2014/05/putting-uk-flooding-alerts-onto-twitter-ukblc14/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Mon, 26 May 2014 11:06:28 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[flooding]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ukblc14]]></category>
		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=10434</guid>

					<description><![CDATA[As part of BlueLightCamp &#039;14, a group of civil servants, hackers, and emergency service workers got together for a weekend of furious creation.  I decided to look at flooding data.  The recent floods in the UK are a brutal remember of the realities of climate change and our poor stewardship of the nation&#039;s waterways.  The UK Government has a large collection of Flooding Data online - including…]]></description>
										<content:encoded><![CDATA[<p>As part of <a href="https://web.archive.org/web/20160407230546/http://thelab.o2.com/2014/05/Hack-Da-Police-and-other-emergency-services-UKBLC14.html">BlueLightCamp '14</a>, a group of civil servants, hackers, and emergency service workers got together for a weekend of furious creation.</p>

<p>I decided to look at flooding data.  The recent floods in the UK are a brutal remember of the realities of climate change and our poor stewardship of the nation's waterways.</p>

<p>The <a href="https://web.archive.org/web/20140315231254/https://flooddata.alphagov.co.uk/">UK Government has a large collection of Flooding Data online</a> - including some very detailed river-by-river data.</p>

<p>Initially, we thought it would be a great idea if every river in the country could Tweet. Telling local residents how high its water levels were and how likely it was to flood.</p>

<p>Unfortunately, the data isn't in brilliant shape.  It's hard to find a reference guide to see what the data mean, where the measuring stations are, and which levels indicated likely flooding.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2014/05/River-Data-fs8.png" alt="River Data" width="948" height="290" class="aligncenter size-full wp-image-10435">

<p>Instead, we settled on something simpler.  There is a <a href="https://web.archive.org/web/20140315231254/https://flooddata.alphagov.co.uk/#3df">3 Day Flooding Forecast XML file</a>.</p>

<p>First, the good news!  We were able to successfully parse the data and get a Twitter bot running which, once per day, publishes a three-day forecast.</p>

<blockquote class="social-embed" id="social-embed-470860661254537216" 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/FloodForecast" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-square" src="data:image/webp;base64,UklGRmgCAABXRUJQVlA4IFwCAAAQCwCdASowADAAPq1GnUmmI6MhMdZt+MAViWYAt+wkjHJ4DpPrBeuV1N0pmmq3m97FUuWbuT+05W571ixHH7CQzdi2iBYB81FB6UbPEsEGEncTLe0uEfxTNovAzyo/uHgAAP73yXyby+7gehmtRMzQPVovw9U/LLCu0jvmfRUCWcBAHlmSF0j9q5iiXgVmV7JVitqh4IRoYu3A4jIKMKVJf74kool+mhK7Fw1VJf1l/D6w3lKhXhkVnp3nB4eN1aNUGQ7RT6FOLGOIVfoDZYSGGdNjmydWhAKTFMGejMDb+rYeimBIWCIbwq2rrZ5hlViPvEagF3jc7NdfCIbm81Sxa6QkIOIDjOxxax+MshTFVCuUUWkUqhWz0mqYTOSmIy2NdtCgvDfcfBslam+hRQKczdJGgyThBJ/az90deZ8XCxD89iT5CFUk/teo9YYwCNA7m7aKz+yS5MjW2fqKuwtHMFuk+MXqYxC8+lc/Kqp7P6n+gnosmRZ9z4GweltT8CuHTTB2y/weS8FuwZeTyF7mDMcqTxi21km4xky1ac+vUMB8A5H4uWZW6krCPDiTN4H5Q52ZSPI/JR7lJ/lBT23hhRUwmK9BeE09Noaf3kU7MfDSpHM+QVHXUFbnSJssO2GgedLqa1u8uePxw2ONp90uwksbj71K2C4p3luIQ40K+7zs0OoIWrcLY+idzuMV7bVP/QSN3o4V3GV+e4KNZGAlL+NGcuqH5RQFh4pxTHUv03kfXjqCBt6yVKFReCpF99nadgyZAx7y7FXAHjO3/MTcCZDMmpBuIjIDFAAA" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">UK Flood Forecast</p>@FloodForecast<br><img src="data:image/webp;base64,UklGRuICAABXRUJQVlA4WAoAAAAQAAAAWQAAWQAAQUxQSOEBAAABkFXbbt1agmAIhmAIYtAyiBnEDBIGDYOEQQ+CawiHQcWgZlB9NPVD+76/ImIC6P9mf43z+h45/Ex4y0Xr88Y/Bd6KdpU9oHHWgXlC4qyDs0dxNzV4cxBB1KR4gKmo0ZLMLWp4Mbao6cXUosYXQ7Oan8z4Yq94K6KA4mwsCnkz4RU0WLijZAOssDwu4+RhXoHDqANpHSVIZVBQaB6TsNKYjPU1pmCVIU7B3QhGCyOuaJcevO3TW0SLROTmffMVk6qquB5ln+Oa++Q1zof0cKKqmj44edO1w+ro3UtbZjpdOyR9L+6M9fSrjenz0XLQ52tbPtHQkJsSVTqpE6pNvXiMUDXXTVUkCKmOSo1Q/YrADfea3HDFO2r2Bka4NNxrvvDWBqkpDQnhu461musEQVOV1H27mlkhSqjYtXGvCIqhupz5rM3Zn7hFYVT2Oc5Zu+Y1xq0okPn/4MJP5d5AcjL9HOLJgz4GUdWDfg50e71ez/CJ/DUy/SyIY3TUEe7y1jug8QiH5kaQYAkN3bD2MYx1GUMFSWjwipRGuYLz8KMo4Uw0PqP8IINeMB7eAoWC8AxkMxR7z0BWg1h7BLLrs6nXD0+mo9h5JjIfxcTruTpC5OO73+v0cWPCdcyx+zU4+ucNAFZQOCDaAAAAEAkAnQEqWgBaAD6xQJZJpyOhoTHfKgDgFglnAMsJn9f5RA9neHFaHPCHQSI1eR9V12wtRy3QA5cP9kU/SRnvQvGNNjncx9YB6Kuo7e/ddDIQAP71a7X9lf//7inBZ9+1bUYtAD/+4H/+ze//7twx0VpJlQAP9a4v5WQ+ueBp9Y03AfiquNTvm13Evju2XcfY+o3HMiK3+95AniJwk3Adjj40hAQ6EHIBHw2AMqn3esgxQUf+wJVshLIRjKbpOQ+On/6AC4/u/dSILuynNzErp6Eq/7wN58bpgAA=" alt="" class="social-embed-badge"> Automated</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">The flood forecast for Wednesday is... <a href="https://twitter.com/3dayflood/status/470860661254537216/photo/1">pic.x.com/kml7fs4vln</a><div class="social-embed-media-grid"><a href="https://pbs.twimg.com/media/BojVRs3IUAAf_Zv.png" class="social-embed-media-link"><img class="social-embed-media" alt="" 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/FloodForecast/status/470860661254537216"><span aria-label="0 likes" class="social-embed-meta">❤️ 0</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="2014-05-26T09:35:04.000Z" itemprop="datePublished">09:35 - Mon 26 May 2014</time></a></footer></blockquote>

<p>The <a href="https://github.com/edent/3dayflood">source-code is available on GitHub</a>.  In order to run it, you'll need 3 things.</p>

<ol>
    <li><a href="https://www.python.org/">Python</a> 2.7.</li>
    <li><a href="https://github.com/tweepy/tweepy">Tweepy</a> - needed to interact with Twitter.</li>
    <li><a href="https://dev.twitter.com/">Twitter Developer Tokens</a> - needed to post to Twitter.</li>
</ol>

<p>Once you've installed Python and Tweepy, and added in your OAuth keys to script, it can be run by simply issuing this command:</p>

<pre>python 3dayflood.py</pre>

<p>Ok, so now the bad news :-)</p>

<p>The data wasn't in a particularly great state.  Let's go through it step-by-step.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2014/05/XML-Data-fs8.png" alt="XML Data" width="569" height="337" class="aligncenter size-full wp-image-10436">

<ul>
    <li>XML - ok, just a minor gripe.  XML is just as easy to work with as JSON, but it's nice to be offered a choice.</li>
    <li>No valid schema - if you're going to use XML, you might as well do it properly!</li>
    <li>Welsh Dates.  The UK Government has a statutory obligation to publish in English and Welsh - I don't have a problem with that.  There is, however, no need to print dates in both languages.  Dates should either be represented as <a href="http://www.w3.org/TR/NOTE-datetime">ISO 8601</a> (2014-05-25T10:30:00+0100) or as a <a href="http://www.unixtimestamp.com/">UNIX Timestamp</a> (1401046863).  That way, the programmer can easily determine the time and, if needed, format it in English, Welsh, French, Esperanto, and Klingon.</li>
    <li>Ideally, each day should be in its own object - rather than split several ways.</li>
    <li>The images... <em>*sigh*</em>... I was expecting that there would be a link to each image.  Nope!  It's a <a href="https://en.wikipedia.org/wiki/Base64">Base64 encoded</a> PNG.  Not terribly hard to decode, true, but not the best way.  They are fairly low resolution, which is a shame.</li>
    <li>The summary stuff is fine:<br><img src="https://shkspr.mobi/blog/wp-content/uploads/2014/05/summary-fs8.png" alt="summary" width="810" height="251" class="aligncenter size-full wp-image-10437"><br> But the next lot of data are rather tangled.</li>
    <li>The model here is "Risk → Day → Area → Region".  This seems somewhat illogical to me.  Surely the user wants to see "Day → Region → Risk"?  The area is fairly inconsequential - I don't care if my county is flooding, just if I am.  The areas seem fairly nebulous and don't conform to any normal geo-spacial coding of which I'm aware.</li>
    <li>Or, perhaps, the model should be "Region → Day → Risk" - that way, rather than searching through each Risk in order to find my local area, I can get a direct forecast for my specific area and ignore everything else.</li>
    <li>Finally, there's no coding on the regions - they should at least have a WOEID, Lat/Long paid, or similar.</li>
</ul>

<p>Here's a quick a dirty look at how I would have structured the data (in JSON).</p>

<pre><code class="language-json">{
    "date" : "2014-05-25T10:30:00+0100",
    "summary" : {
        "english" : "...",
        "cymru"   : "...."
    }
    "days" : [
        {
            "day"     : 1,
            "date"    : "2014-05-25",
            "image"   : "http://example.com/day1.png",
            "regions" : [
                {
                    "name" : "Cambridgeshire",
                    "risk" : "low",
                    "id"   : "123456"
                },
                {...},
                {...}
            ]
        },
        {...},
        {...}
    ]
    "regions" : [
        {
            "name" : "Cambridgeshire",
            "id"   : "123456",
            "days" : [
                {
                    "day"  : 1,
                    "date" : "2014-05-25",
                "risk" : "low"
                },
                {...},
                {...}
            ]
        },
        {...},
        {...}
    ]
    "risks" : [
        {
            "risk" : "low",
            "summary" : {
                "english" : "...",
                "cymru"   : "..."
            }
        },
        {...},
        {...}
    ]
}
</code></pre>

<p>You can <a href="https://github.com/edent/3dayflood">get the code from GitHub</a>. Enjoy!</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=10434&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2014/05/putting-uk-flooding-alerts-onto-twitter-ukblc14/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
