PageSourceSearch

https://oobrien.com/

html oobrien.com collected 2026-10-02 06:00:55 UTC 253,784 bytes, 2,240 lines download raw bytes

1<!DOCTYPE html>
2
3<html class="no-js" lang="en-GB">
4
5	<head>
6
7		<meta charset="UTF-8">
8		<meta name="viewport" content="width=device-width, initial-scale=1.0">
9
10		<link rel="profile" href="https://gmpg.org/xfn/11">
11
12		<title>O.O&#039;Brien &#8211; Thoughts on urban mobility services, digital cartography and data visualisation.</title>
13<meta name='robots' content='max-image-preview:large' />
14<link rel='dns-prefetch' href='//www.googletagmanager.com' />
15<link rel='dns-prefetch' href='//pagead2.googlesyndication.com' />
16<link rel='dns-prefetch' href='//fundingchoicesmessages.google.com' />
17<link rel="alternate" type="application/rss+xml" title="O.O&#039;Brien &raquo; Feed" href="https://oobrien.com/feed/" />
18<link rel="alternate" type="application/rss+xml" title="O.O&#039;Brien &raquo; Comments Feed" href="https://oobrien.com/comments/feed/" />
19<script data-api-url="https://oobrien.com/wp-json/wordpress-popular-posts" data-debug="0" data-lang="0" data-post="0" data-sampling-rate="100" data-sampling="0" data-token="f7e47ec4f6" id="wpp-js" src="https://oobrien.com/wordpress/wp-content/plugins/wordpress-popular-posts/assets/js/wpp.min.js?ver=7.4.2"></script>
19
20<style id="wp-img-auto-sizes-contain-inline-css">
21img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
22/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
23</style>
24<style id="wp-emoji-styles-inline-css">
25
26	img.wp-smiley, img.emoji {
27		display: inline !important;
28		border: none !important;
29		box-shadow: none !important;
30		height: 1em !important;
31		width: 1em !important;
32		margin: 0 0.07em !important;
33		vertical-align: -0.1em !important;
34		background: none !important;
35		padding: 0 !important;
36	}
37/*# sourceURL=wp-emoji-styles-inline-css */
38</style>
39<style id="wp-block-library-inline-css">
40:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
40--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
41
42/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */
43</style>
44<style id="wp-block-heading-inline-css">
45h1:where(.wp-block-heading).has-background,h2:where(.wp-block-heading).has-background,h3:where(.wp-block-heading).has-background,h4:where(.wp-block-heading).has-background,h5:where(.wp-block-heading).has-background,h6:where(.wp-block-heading).has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg}
46/*# sourceURL=https://oobrien.com/wordpress/wp-includes/blocks/heading/style.min.css */
47</style>
48<style id="wp-block-image-inline-css">
49.wp-block-image>a,.wp-block-image>figure>a{display:inline-block}.wp-block-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom}@media not (prefers-reduced-motion){.wp-block-image img.hide{visibility:hidden}.wp-block-image img.show{animation:show-content-image .4s}}.wp-block-image[style*=border-radius] img,.wp-block-image[style*=border-radius]>a{border-radius:inherit}.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-image.aligncenter{text-align:center}.wp-block-image.alignfull>a,.wp-block-image.alignwide>a{width:100%}.wp-block-image.alignfull img,.wp-block-image.alignwide img{height:auto;width:100%}.wp-block-image .aligncenter,.wp-block-image .alignleft,.wp-block-image .alignright,.wp-block-image.aligncenter,.wp-block-image.alignleft,.wp-block-image.alignright{display:table}.wp-block-image .aligncenter>figcaption,.wp-block-image .alignleft>figcaption,.wp-block-image .alignright>figcaption,.wp-block-image.aligncenter>figcaption,.wp-block-image.alignleft>figcaption,.wp-block-image.alignright>figcaption{caption-side:bottom;display:table-caption}.wp-block-image .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-image .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-image .aligncenter{margin-left:auto;margin-right:auto}.wp-block-image :where(figcaption){margin-bottom:1em;margin-top:.5em}.wp-block-image.is-style-circle-mask img{border-radius:9999px}@supports ((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-image.is-style-circle-mask img{border-radius:0;-webkit-mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-mode:alpha;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}}:root :where(.wp-block-image.is-style-rounded img,.wp-block-image .is-style-rounded img){border-radius:9999px}.wp-block-image figure{margin:0}.wp-lightbox-container{display:flex;flex-direction:column;position:relative}.wp-lightbox-container img{cursor:zoom-in}.wp-lightbox-container img:hover+button{opacity:1}.wp-lightbox-container button{align-items:center;backdrop-filter:blur(16px) saturate(180%);background-color:rgba(90,90,90,.25);border:none;border-radius:4px;cursor:zoom-in;display:flex;height:20px;justify-content:center;opacity:0;padding:0;position:absolute;right:16px;text-align:center;top:16px;width:20px;z-index:100}@media not (prefers-reduced-motion){.wp-lightbox-container button{transition:opacity .2s ease}}.wp-lightbox-container button:focus-visible{outline:3px auto rgba(90,90,90,.25);outline:3px auto -webkit-focus-ring-color;outline-offset:3px}.wp-lightbox-container button:hover{cursor:pointer;opacity:1}.wp-lightbox-container button:focus{opacity:1}.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){background-color:rgba(90,90,90,.25);border:none}.wp-lightbox-overlay{box-sizing:border-box;
49cursor:zoom-out;height:100vh;left:0;overflow:hidden;position:fixed;top:0;visibility:hidden;width:100%;z-index:100000}.wp-lightbox-overlay .wp-lightbox-close-button{align-items:center;cursor:pointer;display:flex;font-family:inherit;gap:8px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 4px;position:absolute;right:calc(env(safe-area-inset-right) + 16px);top:calc(env(safe-area-inset-top) + 16px);z-index:5000000}.wp-lightbox-overlay .wp-lightbox-close-button:focus,.wp-lightbox-overlay .wp-lightbox-close-button:hover,.wp-lightbox-overlay .wp-lightbox-close-button:not(:hover):not(:active):not(.has-background){background:none;border:none}.wp-lightbox-overlay .wp-lightbox-close-button:has(.wp-lightbox-close-text:not([hidden])) .wp-lightbox-close-icon svg{height:1em;width:1em}.wp-lightbox-overlay .wp-lightbox-close-icon svg{display:block}.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{align-items:center;bottom:16px;cursor:pointer;display:flex;font-family:inherit;gap:4px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 8px;position:absolute;z-index:2000002}.wp-lightbox-overlay .wp-lightbox-navigation-button-next[hidden],.wp-lightbox-overlay .wp-lightbox-navigation-button-prev[hidden]{display:none}@media (min-width:960px){.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{bottom:50%;transform:translateY(-50%)}}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:not(:hover):not(:active):not(.has-background),.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:not(:hover):not(:active):not(.has-background){background:none;border:none;padding:0 8px}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg{display:block;height:1.5em;width:1.5em}.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{left:calc(env(safe-area-inset-left) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-button-next{right:calc(env(safe-area-inset-right) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-icon svg{vertical-align:middle}.wp-lightbox-overlay .lightbox-image-container{height:var(--wp--lightbox-container-height);left:50%;overflow:hidden;position:absolute;top:50%;transform:translate(-50%,-50%);transform-origin:top left;width:var(--wp--lightbox-container-width);z-index:2000001}.wp-lightbox-overlay .wp-block-image{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;margin:0;position:relative;transform-origin:0 0;width:100%;z-index:3000000}.wp-lightbox-overlay .wp-block-image img{height:var(--wp--lightbox-image-height);min-height:var(--wp--lightbox-image-height);min-width:var(--wp--lightbox-image-width);width:var(--wp--lightbox-image-width)}.wp-lightbox-overlay .wp-block-image figcaption{display:none}.wp-lightbox-overlay button{background:none;border:none}.wp-lightbox-overlay .scrim{background-color:#fff;height:100%;opacity:.9;position:absolute;width:100%;z-index:2000000}.wp-lightbox-overlay.active{visibility:visible}@media not (prefers-reduced-motion){.wp-lightbox-overlay.active{animation:turn-on-visibility .25s both}.wp-lightbox-overlay.active img{animation:turn-on-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active){animation:turn-off-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active) img{animation:turn-off-visibility .25s both}.wp-lightbox-overlay.zoom.active{animation:none;opacity:1;visibility:visible}.wp-lightbox-overlay.zoom.active .lightbox-image-container{animation:lightbox-zoom-in .4s}.wp-lightbox-overlay.zoom.active .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.active .scrim{animation:turn-on-visibility .4s forwards}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active){animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container{animation:lightbox-zoom-out .4s}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .scrim{animation:turn-off-visibility .4s forwards}}
49@keyframes show-content-image{0%{visibility:hidden}99%{visibility:hidden}to{visibility:visible}}@keyframes turn-on-visibility{0%{opacity:0}to{opacity:1}}@keyframes turn-off-visibility{0%{opacity:1;visibility:visible}99%{opacity:0;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes lightbox-zoom-in{0%{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale))}to{transform:translate(-50%,-50%) scale(1)}}@keyframes lightbox-zoom-out{0%{transform:translate(-50%,-50%) scale(1);visibility:visible}99%{visibility:visible}to{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale));visibility:hidden}}
50/*# sourceURL=https://oobrien.com/wordpress/wp-includes/blocks/image/style.min.css */
51</style>
52<style id="wp-block-list-inline-css">
53ol,ul{box-sizing:border-box}:root :where(.wp-block-list.has-background){padding:1.25em 2.375em}
54/*# sourceURL=https://oobrien.com/wordpress/wp-includes/blocks/list/style.min.css */
55</style>
56<style id="wp-block-paragraph-inline-css">
57.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg}
58/*# sourceURL=https://oobrien.com/wordpress/wp-includes/blocks/paragraph/style.min.css */
59</style>
60<style id="wp-block-video-inline-css">
61.wp-block-video{box-sizing:border-box}.wp-block-video video{height:auto;vertical-align:middle;width:100%}@supports (position:sticky){.wp-block-video [poster]{-o-object-fit:cover;object-fit:cover}}.wp-block-video.aligncenter{text-align:center}.wp-block-video :where(figcaption){margin-bottom:1em;margin-top:.5em}
62/*# sourceURL=https://oobrien.com/wordpress/wp-includes/blocks/video/style.min.css */
63</style>
64
65<style id="classic-theme-styles-inline-css">
66/*! This file is auto-generated */
67.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
68/*# sourceURL=/wp-includes/css/classic-themes.min.css */
69</style>
70
71<style id="global-styles-inline-css">
72:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--accent: #e22658;--wp--preset--color--primary: #000000;--wp--preset--color--secondary: #6d6d6d;--wp--preset--color--subtle-background: #dbdbdb;--wp--preset--color--background: #ffffff;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,
720) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 18px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 26.25px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-size--normal: 21px;--wp--preset--font-size--larger: 32px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-accent-color{color: var(--wp--preset--color--accent) !important;}.has-primary-color{color: var(--wp--preset--color--primary) !important;}.has-secondary-color{color: var(--wp--preset--color--secondary) !important;}.has-subtle-background-color{color: var(--wp--preset--color--subtle-background) !important;}.has-background-color{color: var(--wp--preset--color--background) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-accent-background-color{background-color: var(--wp--preset--color--accent) !important;}.has-primary-background-color{background-color: var(--wp--preset--color--primary) !important;}.has-secondary-background-color{background-color: var(--wp--preset--color--secondary) !important;}.has-subtle-background-background-color{background-color: var(--wp--preset--color--subtle-background) !important;}.has-background-background-color{background-color: var(--wp--preset--color--background) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-accent-border-color{border-color: var(--wp--preset--color--accent) !important;}.has-primary-border-color{border-color: var(--wp--preset--color--primary) !important;}.has-secondary-border-color{border-color: var(--wp--preset--color--secondary) !important;}.has-subtle-background-border-color{border-color: var(--wp--preset--color--subtle-background) !important;}.has-background-border-color{border-color: var(--wp--preset--color--background) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
72.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}.has-normal-font-size{font-size: var(--wp--preset--font-size--normal) !important;}.has-larger-font-size{font-size: var(--wp--preset--font-size--larger) !important;}
73/*# sourceURL=global-styles-inline-css */
74</style>
75
76<link rel='stylesheet' id='wordpress-popular-posts-css-css' href='https://oobrien.com/wordpress/wp-content/plugins/wordpress-popular-posts/assets/css/wpp.css?ver=7.4.2' media='all' />
77<link rel='stylesheet' id='twentytwenty-style-css' href='https://oobrien.com/wordpress/wp-content/themes/twentytwenty/style.css?ver=3.2' media='all' />
78<style id="twentytwenty-style-inline-css">
79.color-accent,.color-accent-hover:hover,.color-accent-hover:focus,:root .has-accent-color,.has-drop-cap:not(:focus):first-letter,.wp-block-button.is-style-outline,a { color: #e22658; }blockquote,.border-color-accent,.border-color-accent-hover:hover,.border-color-accent-hover:focus { border-color: #e22658; }button,.button,.faux-button,.wp-block-button__link,.wp-block-file .wp-block-file__button,input[type="button"],input[type="reset"],input[type="submit"],.bg-accent,.bg-accent-hover:hover,.bg-accent-hover:focus,:root .has-accent-background-color,.comment-reply-link { background-color: #e22658; }.fill-children-accent,.fill-children-accent * { fill: #e22658; }:root .has-background-color,button,.button,.faux-button,.wp-block-button__link,.wp-block-file__button,input[type="button"],input[type="reset"],input[type="submit"],.wp-block-button,.comment-reply-link,.has-background.has-primary-background-color:not(.has-text-color),.has-background.has-primary-background-color *:not(.has-text-color),.has-background.has-accent-background-color:not(.has-text-color),.has-background.has-accent-background-color *:not(.has-text-color) { color: #ffffff; }:root .has-background-background-color { background-color: #ffffff; }body,.entry-title a,:root .has-primary-color { color: #000000; }:root .has-primary-background-color { background-color: #000000; }cite,figcaption,.wp-caption-text,.post-meta,.entry-content .wp-block-archives li,.entry-content .wp-block-categories li,.entry-content .wp-block-latest-posts li,.wp-block-latest-comments__comment-date,.wp-block-latest-posts__post-date,.wp-block-embed figcaption,.wp-block-image figcaption,.wp-block-pullquote cite,.comment-metadata,.comment-respond .comment-notes,.comment-respond .logged-in-as,.pagination .dots,.entry-content hr:not(.has-background),hr.styled-separator,:root .has-secondary-color { color: #6d6d6d; }:root .has-secondary-background-color { background-color: #6d6d6d; }pre,fieldset,input,textarea,table,table *,hr { border-color: #dbdbdb; }caption,code,code,kbd,samp,.wp-block-table.is-style-stripes tbody tr:nth-child(odd),:root .has-subtle-background-background-color { background-color: #dbdbdb; }.wp-block-table.is-style-stripes { border-bottom-color: #dbdbdb; }.wp-block-latest-posts.is-grid li { border-top-color: #dbdbdb; }:root .has-subtle-background-color { color: #dbdbdb; }body:not(.overlay-header) .primary-menu > li > a,body:not(.overlay-header) .primary-menu > li > .icon,.modal-menu a,.footer-menu a, .footer-widgets a:where(:not
79(.wp-block-button__link)),#site-footer .wp-block-button.is-style-outline,.wp-block-pullquote:before,.singular:not(.overlay-header) .entry-header a,.archive-header a,.header-footer-group .color-accent,.header-footer-group .color-accent-hover:hover { color: #e20842; }.social-icons a,#site-footer button:not(.toggle),#site-footer .button,#site-footer .faux-button,#site-footer .wp-block-button__link,#site-footer .wp-block-file__button,#site-footer input[type="button"],#site-footer input[type="reset"],#site-footer input[type="submit"] { background-color: #e20842; }.social-icons a,body:not(.overlay-header) .primary-menu ul,.header-footer-group button,.header-footer-group .button,.header-footer-group .faux-button,.header-footer-group .wp-block-button:not(.is-style-outline) .wp-block-button__link,.header-footer-group .wp-block-file__button,.header-footer-group input[type="button"],.header-footer-group input[type="reset"],.header-footer-group input[type="submit"] { color: #f7f7f7; }#site-header,.footer-nav-widgets-wrapper,#site-footer,.menu-modal,.menu-modal-inner,.search-modal-inner,.archive-header,.singular .entry-header,.singular .featured-media:before,.wp-block-pullquote:before { background-color: #f7f7f7; }.header-footer-group,body:not(.overlay-header) #site-header .toggle,.menu-modal .toggle { color: #000000; }body:not(.overlay-header) .primary-menu ul { background-color: #000000; }body:not(.overlay-header) .primary-menu > li > ul:after { border-bottom-color: #000000; }body:not(.overlay-header) .primary-menu ul ul:after { border-left-color: #000000; }.site-description,body:not(.overlay-header) .toggle-inner .toggle-text,.widget .post-date,.widget .rss-date,.widget_archive li,.widget_categories li,.widget cite,.widget_pages li,.widget_meta li,.widget_nav_menu li,.powered-by-wordpress,.footer-credits .privacy-policy,.to-the-top,.singular .entry-header .post-meta,.singular:not(.overlay-header) .entry-header .post-meta a { color: #686868; }.header-footer-group pre,.header-footer-group fieldset,.header-footer-group input,.header-footer-group textarea,.header-footer-group table,.header-footer-group table *,.footer-nav-widgets-wrapper,#site-footer,.menu-modal nav *,.footer-widgets-outer-wrapper,.footer-top { border-color: #d3d3d3; }.header-footer-group table caption,body:not(.overlay-header) .header-inner .toggle-wrapper::before { background-color: #d3d3d3; }
80/*# sourceURL=twentytwenty-style-inline-css */
81</style>
82<link rel='stylesheet' id='twentytwenty-fonts-css' href='https://oobrien.com/wordpress/wp-content/themes/twentytwenty/assets/css/font-inter.css?ver=3.2' media='all' />
83<link rel='stylesheet' id='twentytwenty-print-style-css' href='https://oobrien.com/wordpress/wp-content/themes/twentytwenty/print.css?ver=3.2' media='print' />
84<script data-wp-strategy="defer" defer id="twentytwenty-js-js" src="https://oobrien.com/wordpress/wp-content/themes/twentytwenty/assets/js/index.js?ver=3.2"></script>
84
85
86<!-- Google tag (gtag.js) snippet added by Site Kit -->
87<!-- Google Analytics snippet added by Site Kit -->
vendor: 80 bytes, lines 87-88
87
88<script id="google_gtagjs-js" src="https://www.googletagmanager.com/gtag/js?id=
88GT-KTBBGSV
vendor: 18 bytes, line 88
88" async></script>
89<script id="google_gtagjs-js-after">
90window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}
91gtag("set","linker",{"domains":["oobrien.com"]});
92gtag("js", new Date());
93gtag("set", "developer_id.dZTNiMT", true);
94gtag("config", "GT-KTBBGSV");
95//# sourceURL=google_gtagjs-js-after
96</script>
96
97<link rel="https://api.w.org/" href="https://oobrien.com/wp-json/" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://oobrien.com/wordpress/xmlrpc.php?rsd" />
98<meta name="generator" content="WordPress 7.1.2" />
99<link type="text/css" rel="stylesheet" href="https://oobrien.com/wordpress/wp-content/plugins/category-specific-rss-feed-menu/wp_cat_rss_style.css" />
100<meta name="generator" content="Site Kit by Google 1.188.0" />            <style id="wpp-loading-animation-styles">@-webkit-keyframes bgslide{from{background-position-x:0}to{background-position-x:-200%}}@keyframes bgslide{from{background-position-x:0}to{background-position-x:-200%}}.wpp-widget-block-placeholder,.wpp-shortcode-placeholder{margin:0 auto;width:60px;height:3px;background:#dd3737;background:linear-gradient(90deg,#dd3737 0%,#571313 10%,#dd3737 100%);background-size:200% auto;border-radius:3px;-webkit-animation:bgslide 1s infinite linear;animation:bgslide 1s infinite linear}</style>
101            
101<script>
102document.documentElement.className = document.documentElement.className.replace( 'no-js', 'js' );
103//# sourceURL=twentytwenty_no_js_class
104</script>
104
105
106<!-- Google AdSense meta tags added by Site Kit -->
107<meta name="google-adsense-platform-account" content="ca-host-pub-2644536267352236">
108<meta name="google-adsense-platform-domain" content="sitekit.withgoogle.com">
109<!-- End Google AdSense meta tags added by Site Kit -->
110<style>.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style><style id="custom-background-css">
111body.custom-background { background-color: #ffffff; }
112</style>
113
114<!-- Google AdSense snippet added by Site Kit -->
115<script async crossorigin="anonymous" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3486529756444295&#038;host=ca-host-pub-2644536267352236"></script>
115
116
117<!-- End Google AdSense snippet added by Site Kit -->
118
119<!-- Google AdSense Ad Blocking Recovery snippet added by Site Kit -->
120<script async src="https://fundingchoicesmessages.google.com/i/pub-3486529756444295?ers=1" nonce="zQwEBj6FapUiEG8B8xxXSQ"></script>
120<script nonce="zQwEBj6FapUiEG8B8xxXSQ">(function() {function signalGooglefcPresent() {if (!window.frames['googlefcPresent']) {if (document.body) {const iframe = document.createElement('iframe'); iframe.style = 'width: 0; height: 0; border: none; z-index: -1000; left: -1000px; top: -1000px;'; iframe.style.display = 'none'; iframe.name = 'googlefcPresent'; document.body.appendChild(iframe);} else {setTimeout(signalGooglefcPresent, 0);}}}signalGooglefcPresent();})();</script>
120
121<!-- End Google AdSense Ad Blocking Recovery snippet added by Site Kit -->
122
123<!-- Google AdSense Ad Blocking Recovery Error Protection snippet added by Site Kit -->
124<script>(function(){'use strict';function aa(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}}var ba="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a};
125function ea(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;b<a.length;++b){var c=a[b];if(c&&c.Math==Math)return c}throw Error("Cannot find global object");}var fa=ea(this);function ha(a,b){if(b)a:{var c=fa;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];if(!(e in c))break a;c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&ba(c,a,{configurable:!0,writable:!0,value:b})}}
126var ia="function"==typeof Object.create?Object.create:function(a){function b(){}b.prototype=a;return new b},l;if("function"==typeof Object.setPrototypeOf)l=Object.setPrototypeOf;else{var m;a:{var ja={a:!0},ka={};try{ka.__proto__=ja;m=ka.a;break a}catch(a){}m=!1}l=m?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null}var la=l;
127function n(a,b){a.prototype=ia(b.prototype);a.prototype.constructor=a;if(la)la(a,b);else for(var c in b)if("prototype"!=c)if(Object.defineProperties){var d=Object.getOwnPropertyDescriptor(b,c);d&&Object.defineProperty(a,c,d)}else a[c]=b[c];a.A=b.prototype}function ma(){for(var a=Number(this),b=[],c=a;c<arguments.length;c++)b[c-a]=arguments[c];return b}
128var na="function"==typeof Object.assign?Object.assign:function(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c];if(d)for(var e in d)Object.prototype.hasOwnProperty.call(d,e)&&(a[e]=d[e])}return a};ha("Object.assign",function(a){return a||na});/*
129
130 Copyright The Closure Library Authors.
131 SPDX-License-Identifier: Apache-2.0
132*/
133var p=this||self;function q(a){return a};var t,u;a:{for(var oa=["CLOSURE_FLAGS"],v=p,x=0;x<oa.length;x++)if(v=v[oa[x]],null==v){u=null;break a}u=v}var pa=u&&u[610401301];t=null!=pa?pa:!1;var z,qa=p.navigator;z=qa?qa.userAgentData||null:null;function A(a){return t?z?z.brands.some(function(b){return(b=b.brand)&&-1!=b.indexOf(a)}):!1:!1}function B(a){var b;a:{if(b=p.navigator)if(b=b.userAgent)break a;b=""}return-1!=b.indexOf(a)};function C(){return t?!!z&&0<z.brands.length:!1}function D(){return C()?A("Chromium"):(B("Chrome")||B("CriOS"))&&!(C()?0:B("Edge"))||B("Silk")};var ra=C()?!1:B("Trident")||B("MSIE");!B("Android")||D();D();B("Safari")&&(D()||(C()?0:B("Coast"))||(C()?0:B("Opera"))||(C()?0:B("Edge"))||(C()?A("Microsoft Edge"):B("Edg/"))||C()&&A("Opera"));var sa={},E=null;var ta="undefined"!==typeof Uint8Array,ua=!ra&&"function"===typeof btoa;var F="function"===typeof Symbol&&"symbol"===typeof Symbol()?Symbol():void 0,G=F?function(a,b){a[F]|=b}:function(a,b){void 0!==a.g?a.g|=b:Object.defineProperties(a,{g:{value:b,configurable:!0,writable:!0,enumerable:!1}})};function va(a){var b=H(a);1!==(b&1)&&(Object.isFrozen(a)&&(a=Array.prototype.slice.call(a)),I(a,b|1))}
134var H=F?function(a){return a[F]|0}:function(a){return a.g|0},J=F?function(a){return a[F]}:function(a){return a.g},I=F?function(a,b){a[F]=b}:function(a,b){void 0!==a.g?a.g=b:Object.defineProperties(a,{g:{value:b,configurable:!0,writable:!0,enumerable:!1}})};function wa(){var a=[];G(a,1);return a}function xa(a,b){I(b,(a|0)&-99)}function K(a,b){I(b,(a|34)&-73)}function L(a){a=a>>11&1023;return 0===a?536870912:a};var M={};function N(a){return null!==a&&"object"===typeof a&&!Array.isArray(a)&&a.constructor===Object}var O,ya=[];I(ya,39);O=Object.freeze(ya);var P;function Q(a,b){P=b;a=new a(b);P=void 0;return a}
135function R(a,b,c){null==a&&(a=P);P=void 0;if(null==a){var d=96;c?(a=[c],d|=512):a=[];b&&(d=d&-2095105|(b&1023)<<11)}else{if(!Array.isArray(a))throw Error();d=H(a);if(d&64)return a;d|=64;if(c&&(d|=512,c!==a[0]))throw Error();a:{c=a;var e=c.length;if(e){var f=e-1,g=c[f];if(N(g)){d|=256;b=(d>>9&1)-1;e=f-b;1024<=e&&(za(c,b,g),e=1023);d=d&-2095105|(e&1023)<<11;break a}}b&&(g=(d>>9&1)-1,b=Math.max(b,e-g),1024<b&&(za(c,g,{}),d|=256,b=1023),d=d&-2095105|(b&1023)<<11)}}I(a,d);return a}
136function za(a,b,c){for(var d=1023+b,e=a.length,f=d;f<e;f++){var g=a[f];null!=g&&g!==c&&(c[f-b]=g)}a.length=d+1;a[d]=c};function Aa(a){switch(typeof a){case "number":return isFinite(a)?a:String(a);case "boolean":return a?1:0;case "object":if(a&&!Array.isArray(a)&&ta&&null!=a&&a instanceof Uint8Array){if(ua){for(var b="",c=0,d=a.length-10240;c<d;)b+=String.fromCharCode.apply(null,a.subarray(c,c+=10240));b+=String.fromCharCode.apply(null,c?a.subarray(c):a);a=btoa(b)}else{void 0===b&&(b=0);if(!E){E={};c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split("");d=["+/=","+/","-_=","-_.","-_"];for(var e=
1370;5>e;e++){var f=c.concat(d[e].split(""));sa[e]=f;for(var g=0;g<f.length;g++){var h=f[g];void 0===E[h]&&(E[h]=g)}}}b=sa[b];c=Array(Math.floor(a.length/3));d=b[64]||"";for(e=f=0;f<a.length-2;f+=3){var k=a[f],w=a[f+1];h=a[f+2];g=b[k>>2];k=b[(k&3)<<4|w>>4];w=b[(w&15)<<2|h>>6];h=b[h&63];c[e++]=g+k+w+h}g=0;h=d;switch(a.length-f){case 2:g=a[f+1],h=b[(g&15)<<2]||d;case 1:a=a[f],c[e]=b[a>>2]+b[(a&3)<<4|g>>4]+h+d}a=c.join("")}return a}}return a};function Ba(a,b,c){a=Array.prototype.slice.call(a);var d=a.length,e=b&256?a[d-1]:void 0;d+=e?-1:0;for(b=b&512?1:0;b<d;b++)a[b]=c(a[b]);if(e){b=a[b]={};for(var f in e)Object.prototype.hasOwnProperty.call(e,f)&&(b[f]=c(e[f]))}return a}
137function Da(a,b,c,d,e,f){if(null!=a){if(Array.isArray(a))a=e&&0==a.length&&H(a)&1?void 0:f&&H(a)&2?a:Ea(a,b,c,void 0!==d,e,f);else if(N(a)){var g={},h;for(h in a)Object.prototype.hasOwnProperty.call(a,h)&&(g[h]=Da(a[h],b,c,d,e,f));a=g}else a=b(a,d);return a}}
138function Ea(a,b,c,d,e,f){var g=d||c?H(a):0;d=d?!!(g&32):void 0;a=Array.prototype.slice.call(a);for(var h=0;h<a.length;h++)a[h]=Da(a[h],b,c,d,e,f);c&&c(g,a);return a}function Fa(a){return a.s===M?a.toJSON():Aa(a)};function Ga(a,b,c){c=void 0===c?K:c;if(null!=a){if(ta&&a instanceof Uint8Array)return b?a:new Uint8Array(a);if(Array.isArray(a)){var d=H(a);if(d&2)return a;if(b&&!(d&64)&&(d&32||0===d))return I(a,d|34),a;a=Ea(a,Ga,d&4?K:c,!0,!1,!0);b=H(a);b&4&&b&2&&Object.freeze(a);return a}a.s===M&&(b=a.h,c=J(b),a=c&2?a:Q(a.constructor,Ha(b,c,!0)));return a}}function Ha(a,b,c){var d=c||b&2?K:xa,e=!!(b&32);a=Ba(a,b,function(f){return Ga(f,e,d)});G(a,32|(c?2:0));return a};function Ia(a,b){a=a.h;return Ja(a,J(a),b)}function Ja(a,b,c,d){if(-1===c)return null;if(c>=L(b)){if(b&256)return a[a.length-1][c]}else{var e=a.length;
138if(d&&b&256&&(d=a[e-1][c],null!=d))return d;b=c+((b>>9&1)-1);if(b<e)return a[b]}}function Ka(a,b,c,d,e){var f=L(b);if(c>=f||e){e=b;if(b&256)f=a[a.length-1];else{if(null==d)return;f=a[f+((b>>9&1)-1)]={};e|=256}f[c]=d;e&=-1025;e!==b&&I(a,e)}else a[c+((b>>9&1)-1)]=d,b&256&&(d=a[a.length-1],c in d&&delete d[c]),b&1024&&I(a,b&-1025)}
139function La(a,b){var c=Ma;var d=void 0===d?!1:d;var e=a.h;var f=J(e),g=Ja(e,f,b,d);var h=!1;if(null==g||"object"!==typeof g||(h=Array.isArray(g))||g.s!==M)if(h){var k=h=H(g);0===k&&(k|=f&32);k|=f&2;k!==h&&I(g,k);c=new c(g)}else c=void 0;else c=g;c!==g&&null!=c&&Ka(e,f,b,c,d);e=c;if(null==e)return e;a=a.h;f=J(a);f&2||(g=e,c=g.h,h=J(c),g=h&2?Q(g.constructor,Ha(c,h,!1)):g,g!==e&&(e=g,Ka(a,f,b,e,d)));return e}function Na(a,b){a=Ia(a,b);return null==a||"string"===typeof a?a:void 0}
140function Oa(a,b){a=Ia(a,b);return null!=a?a:0}function S(a,b){a=Na(a,b);return null!=a?a:""};function T(a,b,c){this.h=R(a,b,c)}T.prototype.toJSON=function(){var a=Ea(this.h,Fa,void 0,void 0,!1,!1);return Pa(this,a,!0)};T.prototype.s=M;T.prototype.toString=function(){return Pa(this,this.h,!1).toString()};
141function Pa(a,b,c){var d=a.constructor.v,e=L(J(c?a.h:b)),f=!1;if(d){if(!c){b=Array.prototype.slice.call(b);var g;if(b.length&&N(g=b[b.length-1]))for(f=0;f<d.length;f++)if(d[f]>=e){Object.assign(b[b.length-1]={},g);break}f=!0}e=b;c=!c;g=J(a.h);a=L(g);g=(g>>9&1)-1;for(var h,k,w=0;w<d.length;w++)if(k=d[w],k<a){k+=g;var r=e[k];null==r?e[k]=c?O:wa():c&&r!==O&&va(r)}else h||(r=void 0,e.length&&N(r=e[e.length-1])?h=r:e.push(h={})),r=h[k],null==h[k]?h[k]=c?O:wa():c&&r!==O&&va(r)}d=b.length;if(!d)return b;
142var Ca;if(N(h=b[d-1])){a:{var y=h;e={};c=!1;for(var ca in y)Object.prototype.hasOwnProperty.call(y,ca)&&(a=y[ca],Array.isArray(a)&&a!=a&&(c=!0),null!=a?e[ca]=a:c=!0);if(c){for(var rb in e){y=e;break a}y=null}}y!=h&&(Ca=!0);d--}for(;0<d;d--){h=b[d-1];if(null!=h)break;var cb=!0}if(!Ca&&!cb)return b;var da;f?da=b:da=Array.prototype.slice.call(b,0,d);b=da;f&&(b.length=d);y&&b.push(y);return b};function Qa(a){return function(b){if(null==b||""==b)b=new a;else{b=JSON.parse(b);if(!Array.isArray(b))throw Error(void 0);G(b,32);b=Q(a,b)}return b}};function Ra(a){this.h=R(a)}n(Ra,T);var Sa=Qa(Ra);var U;function V(a){this.g=a}V.prototype.toString=function(){return this.g+""};var Ta={};function Ua(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)};function Va(a,b){b=String(b);"application/xhtml+xml"===a.contentType&&(b=b.toLowerCase());return a.createElement(b)}function Wa(a){this.g=a||p.document||document}Wa.prototype.appendChild=function(a,b){a.appendChild(b)};/*
143
144 SPDX-License-Identifier: Apache-2.0
145*/
146function Xa(a,b){a.src=b instanceof V&&b.constructor===V?b.g:"type_error:TrustedResourceUrl";var c,d;(c=(b=null==(d=(c=(a.ownerDocument&&a.ownerDocument.defaultView||window).document).querySelector)?void 0:d.call(c,"script[nonce]"))?b.nonce||b.getAttribute("nonce")||"":"")&&a.setAttribute("nonce",c)};function Ya(a){a=void 0===a?document:a;return a.createElement("script")};function Za(a,b,c,d,e,f){try{var g=a.g,h=Ya(g);h.async=!0;Xa(h,b);g.head.appendChild(h);h.addEventListener("load",function(){e();d&&g.head.removeChild(h)});h.addEventListener("error",function(){0<c?Za(a,b,c-1,d,e,f):(d&&g.head.removeChild(h),f())})}catch(k){f()}};var $a=p.atob("aHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vaW1hZ2VzL2ljb25zL21hdGVyaWFsL3N5c3RlbS8xeC93YXJuaW5nX2FtYmVyXzI0ZHAucG5n"),ab=p.atob("WW91IGFyZSBzZWVpbmcgdGhpcyBtZXNzYWdlIGJlY2F1c2UgYWQgb3Igc2NyaXB0IGJsb2NraW5nIHNvZnR3YXJlIGlzIGludGVyZmVyaW5nIHdpdGggdGhpcyBwYWdlLg=="),bb=p.atob("RGlzYWJsZSBhbnkgYWQgb3Igc2NyaXB0IGJsb2NraW5nIHNvZnR3YXJlLCB0aGVuIHJlbG9hZCB0aGlzIHBhZ2Uu");function db(a,b,c){this.i=a;this.l=new Wa(this.i);this.g=null;this.j=[];this.m=!1;this.u=b;this.o=c}
147function eb(a){if(a.i.body&&!a.m){var b=function(){fb(a);p.setTimeout(function(){return gb(a,3)},50)};Za(a.l,a.u,2,!0,function(){p[a.o]||b()},b);a.m=!0}}
148function fb(a){for(var b=W(1,5),c=0;c<b;c++){var d=X(a);a.i.body.appendChild(d);a.j.push(d)}b=X(a);b.style.bottom="0";b.style.left="0";b.style.position="fixed";b.style.width=W(100,110).toString()+"%";b.style.zIndex=W(2147483544,2147483644).toString();b.style["background-color"]=hb(249,259,242,252,219,229);b.style["box-shadow"]="0 0 12px #888";b.style.color=hb(0,10,0,10,0,10);b.style.display="flex";b.style["justify-content"]="center";b.style["font-family"]="Roboto, Arial";c=X(a);c.style.width=W(80,
14985).toString()+"%";c.style.maxWidth=W(750,775).toString()+"px";c.style.margin="24px";c.style.display="flex";c.style["align-items"]="flex-start";c.style["justify-content"]="center";d=Va(a.l.g,"IMG");d.className=Ua();d.src=$a;d.alt="Warning icon";d.style.height="24px";d.style.width="24px";d.style["padding-right"]="16px";var e=X(a),f=X(a);f.style["font-weight"]="bold";f.textContent=ab;var g=X(a);g.textContent=bb;Y(a,e,f);Y(a,e,g);Y(a,c,d);Y(a,c,e);Y(a,b,c);a.g=b;a.i.body.appendChild(a.g);b=W(1,5);for(c=
1500;c<b;c++)d=X(a),a.i.body.appendChild(d),a.j.push(d)}function Y(a,b,c){for(var d=W(1,5),e=0;e<d;e++){var f=X(a);b.appendChild(f)}b.appendChild(c);c=W(1,5);for(d=0;d<c;d++)e=X(a),b.appendChild(e)}function W(a,b){return Math.floor(a+Math.random()*(b-a))}function hb(a,b,c,d,e,f){return"rgb("+W(Math.max(a,0),Math.min(b,255)).toString()+","+W(Math.max(c,0),Math.min(d,255)).toString()+","+W(Math.max(e,0),Math.min(f,255)).toString()+")"}function X(a){a=Va(a.l.g,"DIV");a.className=Ua();return a}
151function gb(a,b){0>=b||null!=a.g&&0!=a.g.offsetHeight&&0!=a.g.offsetWidth||(ib(a),fb(a),p.setTimeout(function(){return gb(a,b-1)},50))}
152function ib(a){var b=a.j;var c="undefined"!=typeof Symbol&&Symbol.iterator&&b[Symbol.iterator];if(c)b=c.call(b);else if("number"==typeof b.length)b={next:aa(b)};else throw Error(String(b)+" is not an iterable or ArrayLike");for(c=b.next();!c.done;c=b.next())(c=c.value)&&c.parentNode&&c.parentNode.removeChild(c);a.j=[];(b=a.g)&&b.parentNode&&b.parentNode.removeChild(b);a.g=null};function jb(a,b,c,d,e){function f(k){document.body?g(document.body):0<k?p.setTimeout(function(){f(k-1)},e):b()}function g(k){k.appendChild(h);p.setTimeout(function(){h?(0!==h.offsetHeight&&0!==h.offsetWidth?b():a(),h.parentNode&&h.parentNode.removeChild(h)):a()},d)}var h=kb(c);f(3)}function kb(a){var b=document.createElement("div");b.className=a;b.style.width="1px";b.style.height="1px";b.style.position="absolute";b.style.left="-10000px";b.style.top="-10000px";b.style.zIndex="-10000";return b};function Ma(a){this.h=R(a)}n(Ma,T);function lb(a){this.h=R(a)}n(lb,T);var mb=Qa(lb);function nb(a){a=Na(a,4)||"";if(void 0===U){var b=null;var c=p.trustedTypes;if(c&&c.createPolicy){try{b=c.createPolicy("goog#html",{createHTML:q,createScript:q,createScriptURL:q})}catch(d){p.console&&p.console.error(d.message)}U=b}else U=b}a=(b=U)?b.createScriptURL(a):a;return new V(a,Ta)};function ob(a,b){this.m=a;this.o=new Wa(a.document);this.g=b;this.j=S(this.g,1);this.u=nb(La(this.g,2));this.i=!1;b=nb(La(this.g,13));this.l=new db(a.document,b,S(this.g,12))}ob.prototype.start=function(){pb(this)};
153function pb(a){qb(a);Za(a.o,a.u,3,!1,function(){a:{var b=a.j;var c=p.btoa(b);
153if(c=p[c]){try{var d=Sa(p.atob(c))}catch(e){b=!1;break a}b=b===Na(d,1)}else b=!1}b?Z(a,S(a.g,14)):(Z(a,S(a.g,8)),eb(a.l))},function(){jb(function(){Z(a,S(a.g,7));eb(a.l)},function(){return Z(a,S(a.g,6))},S(a.g,9),Oa(a.g,10),Oa(a.g,11))})}function Z(a,b){a.i||(a.i=!0,a=new a.m.XMLHttpRequest,a.open("GET",b,!0),a.send())}function qb(a){var b=p.btoa(a.j);a.m[b]&&Z(a,S(a.g,5))};(function(a,b){p[a]=function(){var c=ma.apply(0,arguments);p[a]=function(){};b.apply(null,c)}})("__h82AlnkH6D91__",function(a){"function"===typeof window.atob&&(new ob(window,mb(window.atob(a)))).start()});}).call(this);
154
155window.__h82AlnkH6D91__("WyJwdWItMzQ4NjUyOTc1NjQ0NDI5NSIsW251bGwsbnVsbCxudWxsLCJodHRwczovL2Z1bmRpbmdjaG9pY2VzbWVzc2FnZXMuZ29vZ2xlLmNvbS9iL3B1Yi0zNDg2NTI5NzU2NDQ0Mjk1Il0sbnVsbCxudWxsLCJodHRwczovL2Z1bmRpbmdjaG9pY2VzbWVzc2FnZXMuZ29vZ2xlLmNvbS9lbC9BR1NLV3hVTnVIbDh5VHctR0FTLW5nNjZld2ZqaS00SGp1Q000ZmxMVDl5a3JsRHVQREY1WGExVkw1R2plaHl4SFdJTzFGRGNtVlNvbVRscy1aLVowOU1wdmFENGR3XHUwMDNkXHUwMDNkP3RlXHUwMDNkVE9LRU5fRVhQT1NFRCIsImh0dHBzOi8vZnVuZGluZ2Nob2ljZXNtZXNzYWdlcy5nb29nbGUuY29tL2VsL0FHU0tXeFZEQ1lWN09acFZfeVA2RWRnWHQtVzE5NXlheW9PZWpSZ25uMlE3RjVxR2t4ZmhJX1U1MGVzVXhkMXRlVGJHbXgyZkVwU1J5ZGtfY1R2eUltbnJwQXVFcndcdTAwM2RcdTAwM2Q/YWJcdTAwM2QxXHUwMDI2c2JmXHUwMDNkMSIsImh0dHBzOi8vZnVuZGluZ2Nob2ljZXNtZXNzYWdlcy5nb29nbGUuY29tL2VsL0FHU0tXeFd5cWZUNmZhZVc4SDZDUklMUzlPN2h1RmlBZkdGTENFd0JGWk05bWxZQWpVdW1sdkM0UV9YN2FfQk9JZE5TZ0diNEZWdVNlT1FoNlBTbmhtTFlUU0RzSHdcdTAwM2RcdTAwM2Q/YWJcdTAwM2QyXHUwMDI2c2JmXHUwMDNkMSIsImh0dHBzOi8vZnVuZGluZ2Nob2ljZXNtZXNzYWdlcy5nb29nbGUuY29tL2VsL0FHU0tXeFhldVJwVC1uZFIweW5fR0F2YUowMk5xWEttX1VsYzlqQ29ON0NrU1ZqLXhKNjRYRVhPU1M3ZXlHWWZyRW5NdjdvbWFqUGtCSElnYWFsRnp2YWZOcG1zZFFcdTAwM2RcdTAwM2Q/c2JmXHUwMDNkMiIsImRpdi1ncHQtYWQiLDIwLDEwMCwiY0hWaUxUTTBPRFkxTWprM05UWTBORFF5T1RVXHUwMDNkIixbbnVsbCxudWxsLG51bGwsImh0dHBzOi8vd3d3LmdzdGF0aWMuY29tLzBlbW4vZi9wL3B1Yi0zNDg2NTI5NzU2NDQ0Mjk1LmpzP3VzcXBcdTAwM2RDQXciXSwiaHR0cHM6Ly9mdW5kaW5nY2hvaWNlc21lc3NhZ2VzLmdvb2dsZS5jb20vZWwvQUdTS1d4WHpoOHB2MW45Z3duXzJLdXBycE40cTFobXVqZGlod1hmcVZ3SUV0UFg5LU9reW9NWGRlRklLU1Vacy1sQ3BzNEhjMVNmSVlkd2wtS3d0NXJ3S3BoOS1QQVx1MDAzZFx1MDAzZCJd");</script>
155
156<!-- End Google AdSense Ad Blocking Recovery Error Protection snippet added by Site Kit -->
157
158	</head>
159
160	<body class="home blog custom-background wp-embed-responsive wp-theme-twentytwenty enable-search-modal has-no-pagination showing-comments show-avatars footer-top-visible">
161
162		<a class="skip-link screen-reader-text" href="#site-content">Skip to the content</a>
163		<header id="site-header" class="header-footer-group">
164
165			<div class="header-inner section-inner">
166
167				<div class="header-titles-wrapper">
168
169					
170						<button class="toggle search-toggle mobile-search-toggle" data-toggle-target=".search-modal" data-toggle-body-class="showing-search-modal" data-set-focus=".search-modal .search-field" aria-expanded="false">
171							<span class="toggle-inner">
172								<span class="toggle-icon">
173									<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="23" height="23" viewbox="0 0 23 23"><path d="M38.710696,48.0601792 L43,52.3494831 L41.3494831,54 L37.0601792,49.710696 C35.2632422,51.1481185 32.9839107,52.0076499 30.5038249,52.0076499 
173C24.7027226,52.0076499 20,47.3049272 20,41.5038249 C20,35.7027226 24.7027226,31 30.5038249,31 C36.3049272,31 41.0076499,35.7027226 41.0076499,41.5038249 C41.0076499,43.9839107 40.1481185,46.2632422 38.710696,48.0601792 Z M36.3875844,47.1716785 C37.8030221,45.7026647 38.6734666,43.7048964 38.6734666,41.5038249 C38.6734666,36.9918565 35.0157934,33.3341833 30.5038249,33.3341833 C25.9918565,33.3341833 22.3341833,36.9918565 22.3341833,41.5038249 C22.3341833,46.0157934 25.9918565,49.6734666 30.5038249,49.6734666 C32.7048964,49.6734666 34.7026647,48.8030221 36.1716785,47.3875844 C36.2023931,47.347638 36.2360451,47.3092237 36.2726343,47.2726343 C36.3092237,47.2360451 36.347638,47.2023931 36.3875844,47.1716785 Z" transform="translate(-20 -31)" /></svg>								</span>
174								<span class="toggle-text">Search</span>
175							</span>
176						</button><!-- .search-toggle -->
177
178					
179					<div class="header-titles">
180
181						<h1 class="site-title"><a href="https://oobrien.com/" aria-current="page" rel="home">O.O&#039;Brien</a></h1><div class="site-description">Thoughts on urban mobility services, digital cartography and data visualisation.</div><!-- .site-description -->
182					</div><!-- .header-titles -->
183
184					<button class="toggle nav-toggle mobile-nav-toggle" data-toggle-target=".menu-modal"  data-toggle-body-class="showing-menu-modal" aria-expanded="false" data-set-focus=".close-nav-toggle">
185						<span class="toggle-inner">
186							<span class="toggle-icon">
187								<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="26" height="7" viewbox="0 0 26 7"><path fill-rule="evenodd" d="M332.5,45 C330.567003,45 329,43.4329966 329,41.5 C329,39.5670034 330.567003,38 332.5,38 C334.432997,38 336,39.5670034 336,41.5 C336,43.4329966 334.432997,45 332.5,45 Z M342,45 C340.067003,45 338.5,43.4329966 338.5,41.5 C338.5,39.5670034 340.067003,38 342,38 C343.932997,38 345.5,39.5670034 345.5,41.5 C345.5,43.4329966 343.932997,45 342,45 Z M351.5,45 C349.567003,45 348,43.4329966 348,41.5 C348,39.5670034 349.567003,38 351.5,38 C353.432997,38 355,39.5670034 355,41.5 C355,43.4329966 353.432997,45 351.5,45 Z" transform="translate(-329 -38)" /></svg>							</span>
188							<span class="toggle-text">Menu</span>
189						</span>
190					</button><!-- .nav-toggle -->
191
192				</div><!-- .header-titles-wrapper -->
193
194				<div class="header-navigation-wrapper">
195
196					
197							<nav class="primary-menu-wrapper" aria-label="Horizontal">
198
199								<ul class="primary-menu reset-list-style">
200
201								<li class="page_item page-item-1685"><a href="https://oobrien.com/about-me/">About</a></li>
202<li class="page_item page-item-2947"><a href="https://oobrien.com/bikesharemap/">Bike Share Map</a></li>
203<li class="page_item page-item-3168"><a href="https://oobrien.com/casa/">CASA</a></li>
204<li class="page_item page-item-815"><a href="https://oobrien.com/conferences/">Conferences</a></li>
205<li class="page_item page-item-4063"><a href="https://oobrien.com/datashine/">DataShine &#038; CDRC</a></li>
206<li class="page_item page-item-8997"><a href="https://oobrien.com/city-race/">London City Race</a></li>
207<li class="page_item page-item-8999"><a href="https://oobrien.com/london-high-lines/">London High Lines</a></li>
208<li class="page_item page-item-833"><a href="https://oobrien.com/press/">Media</a></li>
209<li class="page_item page-item-8998"><a href="https://oobrien.com/munros/">Munros</a></li>
210<li class="page_item page-item-1690"><a href="https://oobrien.com/oomap/">OpenOrienteeringMap</a></li>
211<li class="page_item page-item-822"><a href="https://oobrien.com/papers/">Papers</a></li>
212<li class="page_item page-item-3"><a href="https://oobrien.com/privacy-policy/">Privacy Policy</a></li>
213<li class="page_item page-item-2335 page_item_has_children menu-item-has-children"><a href="https://oobrien.com/walking-cycling/">Walking &#038; Cycling</a><span class="icon"></span>
214<ul class='children'>
215	<li class="page_item page-item-9346"><a href="https://oobrien.com/walking-cycling/london-loop/">London LOOP</a></li>
216	<li class="page_item page-item-8320"><a href="https://oobrien.com/walking-cycling/xengland/">X-England: Weston-super-Mare to Whitstable</a></li>
217	<li class="page_item page-item-1735 page_item_has_children menu-item-has-children"><a href="https://oobrien.com/walking-cycling/lelon/">Land&#8217;s End to London</a><span class="icon"></span>
218	<ul class='children'>
219		<li class="page_item page-item-1888"><a href="https://oobrien.com/walking-cycling/lelon/prologue/">Prologue: Land&#8217;s End</a></li>
220		<li class="page_item page-item-1890"><a href="https://oobrien.com/walking-cycling/lelon/day1/">Day 1: Land&#8217;s End and Lizard Point</a></li>
221		<li class="page_item page-item-8989"><a href="https://oobrien.com/walking-cycling/lelon/day2/">Day 2: Lizard Point to Golant</a></li>
222		<li class="page_item page-item-1899"><a href="https://oobrien.com/walking-cycling/lelon/day3/">Day 3: Golant to Boscastle</a></li>
223	</ul>
224</li>
225	<li class="page_item page-item-567"><a href="https://oobrien.com/walking-cycling/thurlon/">Thurso to London</a></li>
226</ul>
227</li>
228
229								</ul>
230
231							</nav><!-- .primary-menu-wrapper -->
232
233						
234						<div class="header-toggles hide-no-js">
235
236						
237							<div class="toggle-wrapper search-toggle-wrapper">
238
239								<button class="toggle search-toggle desktop-search-toggle" data-toggle-target=".search-modal" data-toggle-body-class="showing-search-modal" data-set-focus=".search-modal .search-field" aria-expanded="false">
240									<span class="toggle-inner">
241										<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="23" height="23" viewbox="0 0 23 23"><path d="M38.710696,48.0601792 L43,52.3494831 L41.3494831,54 L37.0601792,49.710696 C35.2632422,51.1481185 32.9839107,52.0076499 30.5038249,52.0076499 
241C24.7027226,52.0076499 20,47.3049272 20,41.5038249 C20,35.7027226 24.7027226,31 30.5038249,31 C36.3049272,31 41.0076499,35.7027226 41.0076499,41.5038249 C41.0076499,43.9839107 40.1481185,46.2632422 38.710696,48.0601792 Z M36.3875844,47.1716785 C37.8030221,45.7026647 38.6734666,43.7048964 38.6734666,41.5038249 C38.6734666,36.9918565 35.0157934,33.3341833 30.5038249,33.3341833 C25.9918565,33.3341833 22.3341833,36.9918565 22.3341833,41.5038249 C22.3341833,46.0157934 25.9918565,49.6734666 30.5038249,49.6734666 C32.7048964,49.6734666 34.7026647,48.8030221 36.1716785,47.3875844 C36.2023931,47.347638 36.2360451,47.3092237 36.2726343,47.2726343 C36.3092237,47.2360451 36.347638,47.2023931 36.3875844,47.1716785 Z" transform="translate(-20 -31)" /></svg>										<span class="toggle-text">Search</span>
242									</span>
243								</button><!-- .search-toggle -->
244
245							</div>
246
247							
248						</div><!-- .header-toggles -->
249						
250				</div><!-- .header-navigation-wrapper -->
251
252			</div><!-- .header-inner -->
253
254			<div class="search-modal cover-modal header-footer-group" data-modal-target-string=".search-modal" role="dialog" aria-modal="true" aria-label="Search">
255
256	<div class="search-modal-inner modal-inner">
257
258		<div class="section-inner">
259
260			<form role="search" aria-label="Search for:" method="get" class="search-form" action="https://oobrien.com/">
261	<label for="search-form-1">
262		<span class="screen-reader-text">
263			Search for:		</span>
264		<input type="search" id="search-form-1" class="search-field" placeholder="Search &hellip;" value="" name="s" />
265	</label>
266	<input type="submit" class="search-submit" value="Search" />
267</form>
268
269			<button class="toggle search-untoggle close-search-toggle fill-children-current-color" data-toggle-target=".search-modal" data-toggle-body-class="showing-search-modal" data-set-focus=".search-modal .search-field">
270				<span class="screen-reader-text">
271					Close search				</span>
272				<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16"><polygon fill="" fill-rule="evenodd" points="6.852 7.649 .399 1.195 1.445 .149 7.899 6.602 14.352 .149 15.399 1.195 8.945 7.649 15.399 14.102 14.352 15.149 7.899 8.695 1.445 15.149 .399 14.102" /></svg>			</button><!-- .search-toggle -->
273
274		</div><!-- .section-inner -->
275
276	</div><!-- .search-modal-inner -->
277
278</div><!-- .menu-modal -->
279
280		</header><!-- #site-header -->
281
282		
283<div class="menu-modal cover-modal header-footer-group" data-modal-target-string=".menu-modal">
284
285	<div class="menu-modal-inner modal-inner">
286
287		<div class="menu-wrapper section-inner">
288
289			<div class="menu-top">
290
291				<button class="toggle close-nav-toggle fill-children-current-color" data-toggle-target=".menu-modal" data-toggle-body-class="showing-menu-modal" data-set-focus=".menu-modal">
292					<span class="toggle-text">Close Menu</span>
293					<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 16 16"><polygon fill="" fill-rule="evenodd" points="6.852 7.649 .399 1.195 1.445 .149 7.899 6.602 14.352 .149 15.399 1.195 8.945 7.649 15.399 14.102 14.352 15.149 7.899 8.695 1.445 15.149 .399 14.102" /></svg>				</button><!-- .nav-toggle -->
294
295				
296					<nav class="mobile-menu" aria-label="Mobile">
297
298						<ul class="modal-menu reset-list-style">
299
300						<li class="page_item page-item-1685"><div class="ancestor-wrapper"><a href="https://oobrien.com/about-me/">About</a></div><!-- .ancestor-wrapper --></li>
301<li class="page_item page-item-2947"><div class="ancestor-wrapper"><a href="https://oobrien.com/bikesharemap/">Bike Share Map</a></div><!-- .ancestor-wrapper --></li>
302<li class="page_item page-item-3168"><div class="ancestor-wrapper"><a href="https://oobrien.com/casa/">CASA</a></div><!-- .ancestor-wrapper --></li>
303<li class="page_item page-item-815"><div class="ancestor-wrapper"><a href="https://oobrien.com/conferences/">Conferences</a></div><!-- .ancestor-wrapper --></li>
304<li class="page_item page-item-4063"><div class="ancestor-wrapper"><a href="https://oobrien.com/datashine/">DataShine &#038; CDRC</a></div><!-- .ancestor-wrapper --></li>
305<li class="page_item page-item-8997"><div class="ancestor-wrapper"><a href="https://oobrien.com/city-race/">London City Race</a></div><!-- .ancestor-wrapper --></li>
306<li class="page_item page-item-8999"><div class="ancestor-wrapper"><a href="https://oobrien.com/london-high-lines/">London High Lines</a></div><!-- .ancestor-wrapper --></li>
307<li class="page_item page-item-833"><div class="ancestor-wrapper"><a href="https://oobrien.com/press/">Media</a></div><!-- .ancestor-wrapper --></li>
308<li class="page_item page-item-8998"><div class="ancestor-wrapper"><a href="https://oobrien.com/munros/">Munros</a></div><!-- .ancestor-wrapper --></li>
309<li class="page_item page-item-1690"><div class="ancestor-wrapper"><a href="https://oobrien.com/oomap/">OpenOrienteeringMap</a></div><!-- .ancestor-wrapper --></li>
310<li class="page_item page-item-822"><div class="ancestor-wrapper"><a href="https://oobrien.com/papers/">Papers</a></div><!-- .ancestor-wrapper --></li>
311<li class="page_item page-item-3"><div class="ancestor-wrapper"><a href="https://oobrien.com/privacy-policy/">Privacy Policy</a></div><!-- .ancestor-wrapper --></li>
312<li class="page_item page-item-2335 page_item_has_children menu-item-has-children"><div class="ancestor-wrapper"><a href="https://oobrien.com/walking-cycling/">Walking &#038; Cycling</a>
312<button class="toggle sub-menu-toggle fill-children-current-color" data-toggle-target=".menu-modal .page-item-2335 > ul" data-toggle-type="slidetoggle" data-toggle-duration="250" aria-expanded="false"><span class="screen-reader-text">Show sub menu</span><svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="20" height="12" viewbox="0 0 20 12"><polygon fill="" fill-rule="evenodd" points="1319.899 365.778 1327.678 358 1329.799 360.121 1319.899 370.021 1310 360.121 1312.121 358" transform="translate(-1310 -358)" /></svg></button></div><!-- .ancestor-wrapper -->
313<ul class='children'>
314	<li class="page_item page-item-9346"><div class="ancestor-wrapper"><a href="https://oobrien.com/walking-cycling/london-loop/">London LOOP</a></div><!-- .ancestor-wrapper --></li>
315	<li class="page_item page-item-8320"><div class="ancestor-wrapper"><a href="https://oobrien.com/walking-cycling/xengland/">X-England: Weston-super-Mare to Whitstable</a></div><!-- .ancestor-wrapper --></li>
316	<li class="page_item page-item-1735 page_item_has_children menu-item-has-children"><div class="ancestor-wrapper"><a href="https://oobrien.com/walking-cycling/lelon/">Land&#8217;s End to London</a><button class="toggle sub-menu-toggle fill-children-current-color" data-toggle-target=".menu-modal .page-item-1735 > ul" data-toggle-type="slidetoggle" data-toggle-duration="250" aria-expanded="false"><span class="screen-reader-text">Show sub menu</span><svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="20" height="12" viewbox="0 0 20 12"><polygon fill="" fill-rule="evenodd" points="1319.899 365.778 1327.678 358 1329.799 360.121 1319.899 370.021 1310 360.121 1312.121 358" transform="translate(-1310 -358)" /></svg></button></div><!-- .ancestor-wrapper -->
317	<ul class='children'>
318		<li class="page_item page-item-1888"><div class="ancestor-wrapper"><a href="https://oobrien.com/walking-cycling/lelon/prologue/">Prologue: Land&#8217;s End</a></div><!-- .ancestor-wrapper --></li>
319		<li class="page_item page-item-1890"><div class="ancestor-wrapper"><a href="https://oobrien.com/walking-cycling/lelon/day1/">Day 1: Land&#8217;s End and Lizard Point</a></div><!-- .ancestor-wrapper --></li>
320		<li class="page_item page-item-8989"><div class="ancestor-wrapper"><a href="https://oobrien.com/walking-cycling/lelon/day2/">Day 2: Lizard Point to Golant</a></div><!-- .ancestor-wrapper --></li>
321		<li class="page_item page-item-1899"><div class="ancestor-wrapper"><a href="https://oobrien.com/walking-cycling/lelon/day3/">Day 3: Golant to Boscastle</a></div><!-- .ancestor-wrapper --></li>
322	</ul>
323</li>
324	<li class="page_item page-item-567"><div class="ancestor-wrapper"><a href="https://oobrien.com/walking-cycling/thurlon/">Thurso to London</a></div><!-- .ancestor-wrapper --></li>
325</ul>
326</li>
327
328						</ul>
329
330					</nav>
331
332					
333			</div><!-- .menu-top -->
334
335			<div class="menu-bottom">
336
337				
338			</div><!-- .menu-bottom -->
339
340		</div><!-- .menu-wrapper -->
341
342	</div><!-- .menu-modal-inner -->
343
344</div><!-- .menu-modal -->
345
346<main id="site-content">
347
348	
349<article class="post-9618 post type-post status-publish format-standard hentry category-london" id="post-9618">
350
351	
352<header class="entry-header has-text-align-center">
353
354	<div class="entry-header-inner section-inner medium">
355
356		
357			<div class="entry-categories">
358				<span class="screen-reader-text">
359					Categories				</span>
360				<div class="entry-categories-inner">
361					<a href="https://oobrien.com/category/london/" rel="category tag">London</a>				</div><!-- .entry-categories-inner -->
362			</div><!-- .entry-categories -->
363
364			<h2 class="entry-title heading-size-1"><a href="https://oobrien.com/2025/07/londons-misnamed-tube-stations/">London&#8217;s Misnamed Tube Stations</a></h2>
365		<div class="post-meta-wrapper post-meta-single post-meta-single-top">
366
367			<ul class="post-meta">
368
369									<li class="post-author meta-wrapper">
370						<span class="meta-icon">
371							<span class="screen-reader-text">
372								Post author							</span>
373							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="20" viewbox="0 0 18 20"><path fill="" d="M18,19 C18,19.5522847 17.5522847,20 17,20 C16.4477153,20 16,19.5522847 16,19 L16,17 C16,15.3431458 14.6568542,14 13,14 L5,14 C3.34314575,14 2,15.3431458 2,17 L2,19 C2,19.5522847 1.55228475,20 1,20 C0.44771525,20 0,19.5522847 0,19 L0,17 C0,14.2385763 2.23857625,12 5,12 L13,12 C15.7614237,12 18,14.2385763 18,17 L18,19 Z M9,10 C6.23857625,10 4,7.76142375 4,5 C4,2.23857625 6.23857625,0 9,0 C11.7614237,0 14,2.23857625 14,5 C14,7.76142375 11.7614237,10 9,10 Z M9,8 C10.6568542,8 12,6.65685425 12,5 C12,3.34314575 10.6568542,2 9,2 C7.34314575,2 6,3.34314575 6,5 C6,6.65685425 7.34314575,8 9,8 Z" /></svg>						</span>
374						<span class="meta-text">
375							By <a href="https://oobrien.com/author/admin/">Oliver O&#039;Brien</a>						</span>
376					</li>
377										<li class="post-date meta-wrapper">
378						<span class="meta-icon">
379							<span class="screen-reader-text">
380								Post date							</span>
381							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewbox="0 0 18 19"><path fill="" d="M4.60069444,4.09375 L3.25,4.09375 C2.47334957,4.09375 1.84375,4.72334957 1.84375,5.5 L1.84375,7.26736111 L16.15625,7.26736111 L16.15625,5.5 C16.15625,4.72334957 15.5266504,4.09375 14.75,4.09375 L13.3993056,4.09375 L13.3993056,4.55555556 C13.3993056,5.02154581 13.0215458,5.39930556 12.5555556,5.39930556 C12.0895653,5.39930556 11.7118056,5.02154581 11.7118056,4.55555556 L11.7118056,4.09375 L6.28819444,4.09375 L6.28819444,4.55555556 C6.28819444,5.02154581 5.9
381104347,5.39930556 5.44444444,5.39930556 C4.97845419,5.39930556 4.60069444,5.02154581 4.60069444,4.55555556 L4.60069444,4.09375 Z M6.28819444,2.40625 L11.7118056,2.40625 L11.7118056,1 C11.7118056,0.534009742 12.0895653,0.15625 12.5555556,0.15625 C13.0215458,0.15625 13.3993056,0.534009742 13.3993056,1 L13.3993056,2.40625 L14.75,2.40625 C16.4586309,2.40625 17.84375,3.79136906 17.84375,5.5 L17.84375,15.875 C17.84375,17.5836309 16.4586309,18.96875 14.75,18.96875 L3.25,18.96875 C1.54136906,18.96875 0.15625,17.5836309 0.15625,15.875 L0.15625,5.5 C0.15625,3.79136906 1.54136906,2.40625 3.25,2.40625 L4.60069444,2.40625 L4.60069444,1 C4.60069444,0.534009742 4.97845419,0.15625 5.44444444,0.15625 C5.9104347,0.15625 6.28819444,0.534009742 6.28819444,1 L6.28819444,2.40625 Z M1.84375,8.95486111 L1.84375,15.875 C1.84375,16.6516504 2.47334957,17.28125 3.25,17.28125 L14.75,17.28125 C15.5266504,17.28125 16.15625,16.6516504 16.15625,15.875 L16.15625,8.95486111 L1.84375,8.95486111 Z" /></svg>						</span>
382						<span class="meta-text">
383							<a href="https://oobrien.com/2025/07/londons-misnamed-tube-stations/">21 July 2025</a>
384						</span>
385					</li>
386										<li class="post-comment-link meta-wrapper">
387						<span class="meta-icon">
388							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="19" height="19" viewbox="0 0 19 19"><path d="M9.43016863,13.2235931 C9.58624731,13.094699 9.7823475,13.0241935 9.98476849,13.0241935 L15.0564516,13.0241935 C15.8581553,13.0241935 16.5080645,12.3742843 16.5080645,11.5725806 L16.5080645,3.44354839 C16.5080645,2.64184472 15.8581553,1.99193548 15.0564516,1.99193548 L3.44354839,1.99193548 C2.64184472,1.99193548 1.99193548,2.64184472 1.99193548,3.44354839 L1.99193548,11.5725806 C1.99193548,12.3742843 2.64184472,13.0241935 3.44354839,13.0241935 L5.76612903,13.0241935 C6.24715123,13.0241935 6.63709677,13.4141391 6.63709677,13.8951613 L6.63709677,15.5301903 L9.43016863,13.2235931 Z M3.44354839,14.766129 C1.67980032,14.766129 0.25,13.3363287 0.25,11.5725806 L0.25,3.44354839 C0.25,1.67980032 1.67980032,0.25 3.44354839,0.25 L15.0564516,0.25 C16.8201997,0.25 18.25,1.67980032 18.25,3.44354839 L18.25,11.5725806 C18.25,13.3363287 16.8201997,14.766129 15.0564516,14.766129 L10.2979143,14.766129 L6.32072889,18.0506004 C5.75274472,18.5196577 4.89516129,18.1156602 4.89516129,17.3790323 L4.89516129,14.766129 L3.44354839,14.766129 Z" /></svg>						</span>
389						<span class="meta-text">
390							<a href="https://oobrien.com/2025/07/londons-misnamed-tube-stations/#comments">11 Comments<span class="screen-reader-text"> on London&#8217;s Misnamed Tube Stations</span></a>						</span>
391					</li>
392					
393			</ul><!-- .post-meta -->
394
395		</div><!-- .post-meta-wrapper -->
396
397		
398	</div><!-- .entry-header-inner -->
399
400</header><!-- .entry-header -->
401
402	<div class="post-inner thin ">
403
404		<div class="entry-content">
405
406			
407<p class="wp-block-paragraph">Many of London&#8217;s tube stations act as a focal point for the community they serve, and some times even give end up giving the area it&#8217;s name (Angel and Northwood Hills being two examples &#8211; one named after a pub/tea-house and one the winning entry in a competition). But some are just wrong and need to be renamed!</p>
408
409
410
411<p class="wp-block-paragraph">Here&#8217;s my list of offenders &#8211; I&#8217;ve looked at the Tube network itself, so this list includes a few tube stations that are beyond the London boundary:</p>
412
413
414
415<ul class="wp-block-list">
416<li><strong>Watford</strong> &#8211; should be <strong>West Watford</strong> to reflect it only serves the suburb in the west part of this large town and in no way is near the centre (try Watford High Street for that). </li>
417
418
419
420<li><strong>Harrow &amp; Wealdstone</strong> &#8211; is very definitely in, and so should be, <strong>Wealdstone</strong>, and it&#8217;s quite far from Harrow itself. Speaking of Harrow:</li>
421
422
423
424<li><strong>Harrow-on-the-Hill </strong>is very definitely at the bottom of the hill,  which is its own distinct area. So, <strong>Harrow</strong> would be a much better name.</li>
425
426
427
428<li><strong>Turnham Green</strong> is far from Turnham Green (which is closer to Chiswick Park station). Ideally it would be called <strong>Chiswick</strong> but you&#8217;d maybe have to change the National Rail station of the same name too &#8211; maybe that could be Chiswick South?</li>
429
430
431
432<li><strong>Euston Square</strong> needs to get changed back to <strong>Gower Street</strong>. It&#8217;s on Gower Street and Warren Street is much closer to Euston Square. </li>
433
434
435
436<li><strong>Mansion House</strong> is nowhere near Mansion House and would better be called <strong>Bow Lane</strong>.  </li>
437
438
439
440<li><strong>Hillingdon</strong> should be <strong>North Hillingdon</strong>. Hillingdon village is a long way to the south. </li>
441</ul>
442
443
444
445<p class="wp-block-paragraph"></p>
446
447
448
449<p class="wp-block-paragraph">Honorary mentions (not a tube station but on the tube map):</p>
450
451
452
453<ul class="wp-block-list">
454<li><strong>West Drayton</strong> is actually in the urban centre of <strong>Yiewsley</strong> with West Drayton itself being some way to the south. </li>
455
456
457
458<li>Hayes &amp; Harlington should be <strong>Hayes</strong> as Harlington is some distance away, and on the other side of the M4 too.</li>
459
460
461
462<li>Carpenter&#8217;s Park should be <strong>South Oxhey</strong> as this is much larger than the (older) development on the other side.</li>
463
464
465
466<li><strong>Bushey</strong> should be <strong>Oxhey</strong> &#8211; it did used to be called Bushey &amp; Oxhey, but Bushey, while being much bigger, is a long way up the hill, while Oxhey village is adjacent. </li>
467</ul>
468
469
470
471<p class="wp-block-paragraph">Any more?</p>
472<div id="wp_fb_like_button" style="margin:5px 0 5px 5px;float:right;height:26px;">
472<script src="https://connect.facebook.net/en_US/all.js#xfbml=1"></script>
472<fb:like href="https://oobrien.com/2025/07/londons-misnamed-tube-stations/" send="true" layout="button_count" width="500" show_faces="false" font="arial" action="like" colorscheme="light"></fb:like></div>
473		</div><!-- .entry-content -->
474
475	</div><!-- .post-inner -->
476
477	<div class="section-inner">
478		
479	</div><!-- .section-inner -->
480
481	
482</article><!-- .post -->
483<hr class="post-separator styled-separator is-style-wide section-inner" aria-hidden="true" />
484<article class="post-9585 post type-post status-publish format-standard hentry category-hs2 category-london" id="post-9585">
485
486	
487<header class="entry-header has-text-align-center">
488
489	<div class="entry-header-inner section-inner medium">
490
491		
492			<div class="entry-categories">
493				<span class="screen-reader-text">
494					Categories				</span>
495				<div class="entry-categories-inner">
496					<a href="https://oobrien.com/category/hs2/" rel="category tag">HS2</a> <a href="https://oobrien.com/category/london/" rel="category tag">London</a>				</div><!-- .entry-categories-inner -->
497			</div><!-- .entry-categories -->
498
499			<h2 class="entry-title heading-size-1"><a href="https://oobrien.com/2024/10/the-colne-valley-viaduct-is-complete/">The Colne Valley Viaduct is Complete</a></h2>
500		<div class="post-meta-wrapper post-meta-single post-meta-single-top">
501
502			<ul class="post-meta">
503
504									<li class="post-author meta-wrapper">
505						<span class="meta-icon">
506							<span class="screen-reader-text">
507								Post author							</span>
508							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="20" viewbox="0 0 18 20"><path fill="" d="M18,19 C18,19.5522847 17.5522847,20 17,20 C16.4477153,20 16,19.5522847 16,19 L16,17 C16,15.3431458 14.6568542,14 13,14 L5,14 C3.34314575,14 2,15.3431458 2,17 L2,19 C2,19.5522847 1.55228475,20 1,20 C0.44771525,20 0,19.5522847 0,19 L0,17 C0,14.2385763 2.23857625,12 5,12 L13,12 C15.7614237,12 18,14.2385763 18,17 L18,19 Z M9,10 C6.23857625,10 4,7.76142375 4,5 C4,2.23857625 6.23857625,0 9,0 C11.7614237,0 14,2.23857625 14,5 C14,7.76142375 11.7614237,10 9,10 Z M9,8 C10.6568542,8 12,6.65685425 12,5 C12,3.34314575 10.6568542,2 9,2 C7.34314575,2 6,3.34314575 6,5 C6,6.65685425 7.34314575,8 9,8 Z" /></svg>						</span>
509						<span class="meta-text">
510							By <a href="https://oobrien.com/author/admin/">Oliver O&#039;Brien</a>						</span>
511					</li>
512										<li class="post-date meta-wrapper">
513						<span class="meta-icon">
514							<span class="screen-reader-text">
515								Post date							</span>
516							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewbox="0 0 18 19"><path fill="" d="M4.60069444,4.09375 L3.25,4.09375 C2.47334957,4.09375 1.84375,4.72334957 1.84375,5.5 L1.84375,7.26736111 L16.15625,7.26736111 L16.15625,5.5 C16.15625,4.72334957 15.5266504,4.09375 14.75,4.09375 L13.3993056,4.09375 L13.3993056,4.55555556 C13.3993056,5.02154581 13.0215458,5.39930556 12.5555556,5.39930556 C12.0895653,5.39930556 11.7118056,5.02154581 11.7118056,4.55555556 L11.7118056,4.09375 L6.28819444,4.09375 L6.28819444,4.55555556 C6.28819444,5.02154581 5.9104347,5.39930556 5.44444444,5.39930556 C4.97845419,5.39930556 4.60069444,5.02154581 4.60069444,4.55555556 L4.60069444,4.09375 Z M6.28819444,2.40625 L11.7118056,2.40625 L11.7118056,1 C11.7118056,0.534009742 12.0895653,0.15625 12.5555556,0.15625 C13.0215458,0.15625 13.3993056,0.534009742 13.3993056,1 L13.3993056,2.40625 L14.75,2.40625 C16.4586309,2.40625 17.84375,3.79136906 17.84375,5.5 L17.84375,15.875 C17.84375,17.5836309 16.4586309,18.96875 14.75,18.96875 L3.25,18.96875 C1.54136906,18.96875 0.15625,17.5836309 0.15625,15.875 L0.15625,5.5 C0.
51615625,3.79136906 1.54136906,2.40625 3.25,2.40625 L4.60069444,2.40625 L4.60069444,1 C4.60069444,0.534009742 4.97845419,0.15625 5.44444444,0.15625 C5.9104347,0.15625 6.28819444,0.534009742 6.28819444,1 L6.28819444,2.40625 Z M1.84375,8.95486111 L1.84375,15.875 C1.84375,16.6516504 2.47334957,17.28125 3.25,17.28125 L14.75,17.28125 C15.5266504,17.28125 16.15625,16.6516504 16.15625,15.875 L16.15625,8.95486111 L1.84375,8.95486111 Z" /></svg>						</span>
517						<span class="meta-text">
518							<a href="https://oobrien.com/2024/10/the-colne-valley-viaduct-is-complete/">25 October 2024</a>
519						</span>
520					</li>
521										<li class="post-comment-link meta-wrapper">
522						<span class="meta-icon">
523							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="19" height="19" viewbox="0 0 19 19"><path d="M9.43016863,13.2235931 C9.58624731,13.094699 9.7823475,13.0241935 9.98476849,13.0241935 L15.0564516,13.0241935 C15.8581553,13.0241935 16.5080645,12.3742843 16.5080645,11.5725806 L16.5080645,3.44354839 C16.5080645,2.64184472 15.8581553,1.99193548 15.0564516,1.99193548 L3.44354839,1.99193548 C2.64184472,1.99193548 1.99193548,2.64184472 1.99193548,3.44354839 L1.99193548,11.5725806 C1.99193548,12.3742843 2.64184472,13.0241935 3.44354839,13.0241935 L5.76612903,13.0241935 C6.24715123,13.0241935 6.63709677,13.4141391 6.63709677,13.8951613 L6.63709677,15.5301903 L9.43016863,13.2235931 Z M3.44354839,14.766129 C1.67980032,14.766129 0.25,13.3363287 0.25,11.5725806 L0.25,3.44354839 C0.25,1.67980032 1.67980032,0.25 3.44354839,0.25 L15.0564516,0.25 C16.8201997,0.25 18.25,1.67980032 18.25,3.44354839 L18.25,11.5725806 C18.25,13.3363287 16.8201997,14.766129 15.0564516,14.766129 L10.2979143,14.766129 L6.32072889,18.0506004 C5.75274472,18.5196577 4.89516129,18.1156602 4.89516129,17.3790323 L4.89516129,14.766129 L3.44354839,14.766129 Z" /></svg>						</span>
524						<span class="meta-text">
525							<a href="https://oobrien.com/2024/10/the-colne-valley-viaduct-is-complete/#respond">No Comments<span class="screen-reader-text"> on The Colne Valley Viaduct is Complete</span></a>						</span>
526					</li>
527					
528			</ul><!-- .post-meta -->
529
530		</div><!-- .post-meta-wrapper -->
531
532		
533	</div><!-- .entry-header-inner -->
534
535</header><!-- .entry-header -->
536
537	<div class="post-inner thin ">
538
539		<div class="entry-content">
540
541			
542<figure class="wp-block-image size-full"><a href="https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858089731.jpg"><img fetchpriority="high" decoding="async" width="1600" height="1145" src="https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858089731.jpg" alt="" class="wp-image-9587" srcset="https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858089731.jpg 1600w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858089731-300x215.jpg 300w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858089731-1024x733.jpg 1024w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858089731-768x550.jpg 768w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858089731-1536x1099.jpg 1536w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858089731-1200x859.jpg 1200w" sizes="(max-width: 1600px) 100vw, 1600px" /></a></figure>
543
544
545
546<p class="wp-block-paragraph">Following on from its crossing of the Grand Union Canal this spring, the huge viaduct is finally built. The giant red &#8220;launching girder&#8221; which spent a couple of years crawling across the Colne Valley building the viaduct below itself, lies in pieces at the end of its journey, being packed up into shipping containers ready for its next project. The viaduct itself is having the pontoon sections of its haul road removed, while its parapet is also being added and other finishing works are taking place. </p>
547
548
549
550<figure class="wp-block-image size-full"><a href="https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858189404.jpg"><img decoding="async" width="1600" height="1201" src="https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858189404.jpg" alt="" class="wp-image-9590" srcset="https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858189404.jpg 1600w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858189404-300x225.jpg 300w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858189404-1024x769.jpg 1024w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858189404-768x576.jpg 768w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858189404-1536x1153.jpg 1536w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858189404-1200x901.jpg 1200w" sizes="(max-width: 1600px) 100v
550w, 1600px" /></a></figure>
551
552
553
554<p class="wp-block-paragraph">Quite soon, hopefully, there will be closer public access to more of its footprint, such as in Broadwater Lakes Natures Reserve, where a footbridge is promised to cross the River Colne beside where the viaduct does the same, although there is no sign of that being built yet.</p>
555
556
557
558<figure class="wp-block-image size-large"><a href="https://oobrien.com/wordpress/wp-content/uploads/2024/10/Screenshot-2024-10-28-at-23.31.59.png"><img decoding="async" width="1024" height="544" src="https://oobrien.com/wordpress/wp-content/uploads/2024/10/Screenshot-2024-10-28-at-23.31.59-1024x544.png" alt="" class="wp-image-9596" srcset="https://oobrien.com/wordpress/wp-content/uploads/2024/10/Screenshot-2024-10-28-at-23.31.59-1024x544.png 1024w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/Screenshot-2024-10-28-at-23.31.59-300x159.png 300w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/Screenshot-2024-10-28-at-23.31.59-768x408.png 768w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/Screenshot-2024-10-28-at-23.31.59.png 1152w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">From the HS2 website: The planned new River Colne footbridge, which will cross the river just a few metres upstream from the Colne Valley Viaduct itself. </figcaption></figure>
559
560
561
562<p class="wp-block-paragraph"> At a later stage, railway works will come along and add tracks, signaling and overhead power &#8211; for now, the viaduct itself becomes the &#8220;haul road&#8221; for the HS2 project across the valley, as tunnels at either end of the viaduct get completed themselves.</p>
563
564
565
566<figure class="wp-block-image size-full"><a href="https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858154517.jpg"><img loading="lazy" decoding="async" width="1600" height="1096" src="https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858154517.jpg" alt="" class="wp-image-9589" srcset="https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858154517.jpg 1600w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858154517-300x206.jpg 300w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858154517-1024x701.jpg 1024w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858154517-768x526.jpg 768w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858154517-1536x1052.jpg 1536w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858154517-1200x822.jpg 1200w" sizes="auto, (max-width: 1600px) 100vw, 1600px" /></a></figure>
567
568
569
570<p class="wp-block-paragraph">I was struck by the relatively low profile of the bridge and its small footprint &#8211; in contrast with the impact a major road bridge might have. The viaduct is rather graceful in places as it sweeps across the valley in a gentle curve. Construction impact on either side is being minimised and eventually it should blend in, just a blade of concrete floating above the apparently natural (albeit flooded historic gravel pits) landscape. </p>
571
572
573
574<figure class="wp-block-image size-full"><a href="https://oobrien.com/wordpress/wp-content/uploads/2024/10/1730136711178.jpg"><img loading="lazy" decoding="async" width="2312" height="1736" src="https://oobrien.com/wordpress/wp-content/uploads/2024/10/1730136711178.jpg" alt="" class="wp-image-9594" srcset="https://oobrien.com/wordpress/wp-content/uploads/2024/10/1730136711178.jpg 2312w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1730136711178-300x225.jpg 300w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1730136711178-1024x769.jpg 1024w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1730136711178-768x577.jpg 768w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1730136711178-1536x1153.jpg 1536w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1730136711178-2048x1538.jpg 2048w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1730136711178-1200x901.jpg 1200w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1730136711178-1980x1487.jpg 1980w" sizes="auto, (max-width: 2312px) 100vw, 2312px" /></a></figure>
575
576
577
578<p class="wp-block-paragraph">Now that the line of cranes has gone, that wonderful, naturalistic view from The Old Orchard pub car-park is largely restored, with just a thin concrete line stretching right across. In time, tree growth will soften this further. </p>
579
580
581
582<figure class="wp-block-image size-full"><a href="https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858258468.jpg"><img loading="lazy" decoding="async" width="2400" height="960" src="https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858258468.jpg" alt="" class="wp-image-9588" srcset="https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858258468.jpg 2400w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858258468-300x120.jpg 300w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858258468-1024x410.jpg 1024w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858258468-768x307.jpg 768w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858258468-1536x614.jpg 1536w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858258468-2048x819.jpg 2048w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858258468-1200x480.jpg 1200w, https://oobrien.com/wordpress/wp-content/uploads/2024/10/1729858258468-1980x792.jpg 1980w" sizes="auto, (max-width: 2400px) 100v
582w, 2400px" /></a></figure>
583<div id="wp_fb_like_button" style="margin:5px 0 5px 5px;float:right;height:26px;">
583<script src="https://connect.facebook.net/en_US/all.js#xfbml=1"></script>
583<fb:like href="https://oobrien.com/2024/10/the-colne-valley-viaduct-is-complete/" send="true" layout="button_count" width="500" show_faces="false" font="arial" action="like" colorscheme="light"></fb:like></div>
584		</div><!-- .entry-content -->
585
586	</div><!-- .post-inner -->
587
588	<div class="section-inner">
589		
590	</div><!-- .section-inner -->
591
592	
593</article><!-- .post -->
594<hr class="post-separator styled-separator is-style-wide section-inner" aria-hidden="true" />
595<article class="post-9561 post type-post status-publish format-standard hentry category-hs2 category-london" id="post-9561">
596
597	
598<header class="entry-header has-text-align-center">
599
600	<div class="entry-header-inner section-inner medium">
601
602		
603			<div class="entry-categories">
604				<span class="screen-reader-text">
605					Categories				</span>
606				<div class="entry-categories-inner">
607					<a href="https://oobrien.com/category/hs2/" rel="category tag">HS2</a> <a href="https://oobrien.com/category/london/" rel="category tag">London</a>				</div><!-- .entry-categories-inner -->
608			</div><!-- .entry-categories -->
609
610			<h2 class="entry-title heading-size-1"><a href="https://oobrien.com/2024/03/the-colne-valley-viaduct-crosses-the-grand-union-canal/">The Colne Valley Viaduct Crosses The Grand Union Canal</a></h2>
611		<div class="post-meta-wrapper post-meta-single post-meta-single-top">
612
613			<ul class="post-meta">
614
615									<li class="post-author meta-wrapper">
616						<span class="meta-icon">
617							<span class="screen-reader-text">
618								Post author							</span>
619							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="20" viewbox="0 0 18 20"><path fill="" d="M18,19 C18,19.5522847 17.5522847,20 17,20 C16.4477153,20 16,19.5522847 16,19 L16,17 C16,15.3431458 14.6568542,14 13,14 L5,14 C3.34314575,14 2,15.3431458 2,17 L2,19 C2,19.5522847 1.55228475,20 1,20 C0.44771525,20 0,19.5522847 0,19 L0,17 C0,14.2385763 2.23857625,12 5,12 L13,12 C15.7614237,12 18,14.2385763 18,17 L18,19 Z M9,10 C6.23857625,10 4,7.76142375 4,5 C4,2.23857625 6.23857625,0 9,0 C11.7614237,0 14,2.23857625 14,5 C14,7.76142375 11.7614237,10 9,10 Z M9,8 C10.6568542,8 12,6.65685425 12,5 C12,3.34314575 10.6568542,2 9,2 C7.34314575,2 6,3.34314575 6,5 C6,6.65685425 7.34314575,8 9,8 Z" /></svg>						</span>
620						<span class="meta-text">
621							By <a href="https://oobrien.com/author/admin/">Oliver O&#039;Brien</a>						</span>
622					</li>
623										<li class="post-date meta-wrapper">
624						<span class="meta-icon">
625							<span class="screen-reader-text">
626								Post date							</span>
627							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewbox="0 0 18 19"><path fill="" d="M4.60069444,4.09375 L3.25,4.09375 C2.47334957,4.09375 1.84375,4.72334957 1.84375,5.5 L1.84375,7.26736111 L16.15625,7.26736111 L16.15625,5.5 C16.15625,4.72334957 15.5266504,4.09375 14.75,4.09375 L13.3993056,4.09375 L13.3993056,4.55555556 C13.3993056,5.02154581 13.0215458,5.39930556 12.5555556,5.39930556 C12.0895653,5.39930556 11.7118056,5.02154581 11.7118056,4.55555556 L11.7118056,4.09375 L6.28819444,4.09375 L6.28819444,4.55555556 C6.28819444,5.02154581 5.9104347,5.39930556 5.44444444,5.39930556 C4.97845419,5.39930556 4.60069444,5.02154581 4.60069444,4.55555556 L4.60069444,4.09375 Z M6.28819444,2.40625 L11.7118056,2.40625 L11.7118056,1 C11.7118056,0.534009742 12.0895653,0.15625 12.5555556,0.15625 C13.0215458,0.15625 13.3993056,0.534009742 13.3993056,1 L13.3993056,2.40625 L14.75,2.40625 C16.4586309,2.40625 17.84375,3.79136906 17.84375,5.5 L17.84375,15.875 C17.84375,17.5836309 16.4586309,18.96875 14.75,18.96875 L3.25,18.96875 C1.54136906,18.96875 0.15625,17.5836309 0.15625,15.875 L0.15625,5.5 C0.
62715625,3.79136906 1.54136906,2.40625 3.25,2.40625 L4.60069444,2.40625 L4.60069444,1 C4.60069444,0.534009742 4.97845419,0.15625 5.44444444,0.15625 C5.9104347,0.15625 6.28819444,0.534009742 6.28819444,1 L6.28819444,2.40625 Z M1.84375,8.95486111 L1.84375,15.875 C1.84375,16.6516504 2.47334957,17.28125 3.25,17.28125 L14.75,17.28125 C15.5266504,17.28125 16.15625,16.6516504 16.15625,15.875 L16.15625,8.95486111 L1.84375,8.95486111 Z" /></svg>						</span>
628						<span class="meta-text">
629							<a href="https://oobrien.com/2024/03/the-colne-valley-viaduct-crosses-the-grand-union-canal/">14 March 2024</a>
630						</span>
631					</li>
632										<li class="post-comment-link meta-wrapper">
633						<span class="meta-icon">
634							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="19" height="19" viewbox="0 0 19 19"><path d="M9.43016863,13.2235931 C9.58624731,13.094699 9.7823475,13.0241935 9.98476849,13.0241935 L15.0564516,13.0241935 C15.8581553,13.0241935 16.5080645,12.3742843 16.5080645,11.5725806 L16.5080645,3.44354839 C16.5080645,2.64184472 15.8581553,1.99193548 15.0564516,1.99193548 L3.44354839,1.99193548 C2.64184472,1.99193548 1.99193548,2.64184472 1.99193548,3.44354839 L1.99193548,11.5725806 C1.99193548,12.3742843 2.64184472,13.0241935 3.44354839,13.0241935 L5.76612903,13.0241935 C6.24715123,13.0241935 6.63709677,13.4141391 6.63709677,13.8951613 L6.63709677,15.5301903 L9.43016863,13.2235931 Z M3.44354839,14.766129 C1.67980032,14.766129 0.25,13.3363287 0.25,11.5725806 L0.25,3.44354839 C0.25,1.67980032 1.67980032,0.25 3.44354839,0.25 L15.0564516,0.25 C16.8201997,0.25 18.25,1.67980032 18.25,3.44354839 L18.25,11.5725806 C18.25,13.3363287 16.8201997,14.766129 15.0564516,14.766129 L10.2979143,14.766129 L6.32072889,18.0506004 C5.75274472,18.5196577 4.89516129,18.1156602 4.89516129,17.3790323 L4.89516129,14.766129 L3.44354839,14.766129 Z" /></svg>						</span>
635						<span class="meta-text">
636							<a href="https://oobrien.com/2024/03/the-colne-valley-viaduct-crosses-the-grand-union-canal/#comments">1 Comment<span class="screen-reader-text"> on The Colne Valley Viaduct Crosses The Grand Union Canal</span></a>						</span>
637					</li>
638					
639			</ul><!-- .post-meta -->
640
641		</div><!-- .post-meta-wrapper -->
642
643		
644	</div><!-- .entry-header-inner -->
645
646</header><!-- .entry-header -->
647
648	<div class="post-inner thin ">
649
650		<div class="entry-content">
651
652			
653<figure class="wp-block-image size-large"><a href="https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622880.jpg"><img loading="lazy" decoding="async" width="1024" height="769" src="https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622880-1024x769.jpg" alt="" class="wp-image-9562" srcset="https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622880-1024x769.jpg 1024w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622880-300x225.jpg 300w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622880-768x577.jpg 768w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622880-1536x1153.jpg 1536w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622880-2048x1538.jpg 2048w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622880-1200x901.jpg 1200w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622880-1980x1487.jpg 1980w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
654
655
656
657<p class="wp-block-paragraph">A quick visit to the Grand Union Canal between Harefield and Denham, at the point where the Colne Valley Viaduct, part of the HS2 railway, crosses it. </p>
658
659
660
661<figure class="wp-block-image size-large"><a href="https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622806.jpg"><img loading="lazy" decoding="async" width="769" height="1024" src="https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622806-769x1024.jpg" alt="" class="wp-image-9567" srcset="https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622806-769x1024.jpg 769w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622806-225x300.jpg 225w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622806-768x1023.jpg 768w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622806-1153x1536.jpg 1153w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622806-1538x2048.jpg 1538w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622806-1200x1598.jpg 1200w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622806.jpg 1736w" sizes="auto, (max-width: 769px) 100vw, 769px" /></a></figure>
662
663
664
665<p class="wp-block-paragraph">The construction of the two-mile-long viaduct has been creeping towards the canal for the last two years, and new the red construction girder has slid across the canal itself, and is installing the concrete segments of the permanent structure below. </p>
666
667
668
669<figure class="wp-block-image size-large"><a href="https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622932.jpg"><img loading="lazy" decoding="async" width="1024" height="769" src="https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622932-1024x769.jpg" alt="" class="wp-image-9563" srcset="https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622932-1024x769.jpg 1024w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622932-300x225.jpg 300w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622932-768x577.jpg 768w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622932-1536x1153.jpg 1536w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622932-2
669048x1538.jpg 2048w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622932-1200x901.jpg 1200w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622932-1980x1487.jpg 1980w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
670
671
672
673<p class="wp-block-paragraph">The construction means that the east bank (which is part of the London LOOP walk) is closed for a couple of weeks, while the towpath on the west bank has now reopened, but closes for 20-30 minutes several times a day for each concrete segment to pass over. The canal itself has been closed all winter to boaters but is tentatively going to start opening from tomorrow, daytime only.</p>
674
675
676
677<figure class="wp-block-image size-large"><a href="https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622792.jpg"><img loading="lazy" decoding="async" width="1024" height="769" src="https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622792-1024x769.jpg" alt="" class="wp-image-9564" srcset="https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622792-1024x769.jpg 1024w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622792-300x225.jpg 300w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622792-768x577.jpg 768w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622792-1536x1153.jpg 1536w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622792-2048x1538.jpg 2048w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622792-1200x901.jpg 1200w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622792-1980x1487.jpg 1980w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
678
679
680
681<figure class="wp-block-image size-large"><a href="https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622939.jpg"><img loading="lazy" decoding="async" width="1024" height="769" src="https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622939-1024x769.jpg" alt="" class="wp-image-9565" srcset="https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622939-1024x769.jpg 1024w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622939-300x225.jpg 300w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622939-768x577.jpg 768w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622939-1536x1153.jpg 1536w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622939-2048x1538.jpg 2048w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622939-1200x901.jpg 1200w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622939-1980x1487.jpg 1980w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
682
683
684
685<figure class="wp-block-image size-large"><a href="https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622924.jpg"><img loading="lazy" decoding="async" width="1024" height="769" src="https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622924-1024x769.jpg" alt="" class="wp-image-9566" srcset="https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622924-1024x769.jpg 1024w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622924-300x225.jpg 300w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622924-768x577.jpg 768w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622924-1536x1153.jpg 1536w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622924-2048x1538.jpg 2048w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622924-1200x901.jpg 1200w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622924-1980x1487.jpg 1980w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
686
687
688
689<figure class="wp-block-image size-large"><a href="https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622844.jpg"><img loading="lazy" decoding="async" width="1024" height="769" src="https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622844-1024x769.jpg" alt="" class="wp-image-9568" srcset="https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622844-1024x769.jpg 1024w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622844-300x225.jpg 300w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622844-768x577.jpg 768w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622844-1536x1153.jpg 1536w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622844-2048x1538.jpg 2048w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622844-1200x901.jpg 1200w, https://oobrien.com/wordpress/wp-content/uploads/2024/03/1710435622844-1980x1487.jpg 1980w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
690<div id="wp_fb_like_button" style="margin:5px 0 5px 5px;float:right;height:26px;">
690<script src="https://connect.facebook.net/en_US/all.js#xfbml=1"></script>
690<fb:like href="https://oobrien.com/2024/03/the-colne-valley-viaduct-crosses-the-grand-union-canal/" send="true" layout="button_count" width="500" show_faces="false" font="arial" action="like" colorscheme="light"></fb:like></div>
691		</div><!-- .entry-content -->
692
693	</div><!-- .post-inner -->
694
695	<div class="section-inner">
696		
697	</div><!-- .section-inner -->
698
699	
700</article><!-- .post -->
701<hr class="post-separator styled-separator is-style-wide section-inner" aria-hidden="true" />
702<article class="post-9517 post type-post status-publish format-standard hentry category-cycling category-london" id="post-9517">
703
704	
705<header class="entry-header has-text-align-center">
706
707	<div class="entry-header-inner section-inner medium">
708
709		
710			<div class="entry-categories">
711				<span class="screen-reader-text">
712					Categories				</span>
713				<div class="entry-categories-inner">
714					<a href="https://oobrien.com/category/cycling/" rel="category tag">Cycling</a> <a href="https://oobrien.com/category/london/" rel="category tag">London</a>				</div><!-- .entry-categories-inner -->
715			</div><!-- .entry-categories -->
716
717			<h2 class="entry-title heading-size-1"><a href="https://oobrien.com/2024/01/all-the-boroughs/">All the Boroughs?</a></h2>
718		<div class="post-meta-wrapper post-meta-single post-meta-single-top">
719
720			<ul class="post-meta">
721
722									<li class="post-author meta-wrapper">
723						<span class="meta-icon">
724							<span class="screen-reader-text">
725								Post author							</span>
726							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="20" viewbox="0 0 18 20"><path fill="" d="M18,19 C18,19.5522847 17.5522847,20 17,20 C16.4477153,20 16,19.5522847 16,19 L16,17 C16,15.3431458 14.6568542,14 13,14 L5,14 C3.34314575,14 2,15.3431458 2,17 L2,19 C2,19.5522847 1.55228475,20 1,20 C0.44771525,20 0,19.5522847 0,19 L0,17 C0,14.2385763 2.23857625,12 5,12 L13,12 C15.7614237,12 18,14.2385763 18,17 L18,19 Z M9,10 C6.23857625,10 4,7.76142375 4,5 C4,2.23857625 6.23857625,0 9,0 C11.7614237,0 14,2.23857625 14,5 C14,7.76142375 11.7614237,10 9,10 Z M9,8 C10.6568542,8 12,6.65685425 12,5 C12,3.34314575 10.6568542,2 9,2 C7.34314575,2 6,3.34314575 6,5 C6,6.65685425 7.34314575,8 9,8 Z" /></svg>						</span>
727						<span class="meta-text">
728							By <a href="https://oobrien.com/author/admin/">Oliver O&#039;Brien</a>						</span>
729					</li>
730										<li class="post-date meta-wrapper">
731						<span class="meta-icon">
732							<span class="screen-reader-text">
733								Post date							</span>
734							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewbox="0 0 18 19"><path fill="" d="M4.60069444,4.09375 L3.25,4.09375 C2.47334957,4.09375 1.84375,4.72334957 1.84375,5.5 L1.84375,7.26736111 L16.15625,7.26736111 L16.15625,5.5 C16.15625,4.72334957 15.5266504,4.09375 14.75,4.09375 L13.3993056,4.09375 L13.3993056,4.55555556 C13.3993056,5.02154581 13.0215458,5.39930556 12.5555556,5.39930556 C12.0895653,5.39930556 11.7118056,5.02154581 11.7118056,4.55555556 L11.7118056,4.09375 L6.28819444,4.09375 L6.28819444,4.55555556 C6.28819444,5.02154581 5.9104347,5.39930556 5.44444444,5.39930556 C4.97845419,5.39930556 4.60069444,5.02154581 4.60069444,4.55555556 L4.60069444,4.09375 Z M6.28819444,2.40625 L11.7118056,2.40625 L11.7118056,1 C11.7118056,0.534009742 12.0895653,0.15625 12.5555556,0.15625 C13.0215458,0.15625 13.3993056,0.534009742 13.3993056,1 L13.3993056,2.40625 L14.75,2.40625 C16.4586309,2.40625 17.84375,3.79136906 17.84375,5.5 L17.84375,15.875 C17.84375,17.5836309 16.4586309,18.96875 14.75,18.96875 L3.25,18.96875 C1.54136906,18.96875 0.15625,17.5836309 0.15625,15.875 L0.15625,5.5 C0.
73415625,3.79136906 1.54136906,2.40625 3.25,2.40625 L4.60069444,2.40625 L4.60069444,1 C4.60069444,0.534009742 4.97845419,0.15625 5.44444444,0.15625 C5.9104347,0.15625 6.28819444,0.534009742 6.28819444,1 L6.28819444,2.40625 Z M1.84375,8.95486111 L1.84375,15.875 C1.84375,16.6516504 2.47334957,17.28125 3.25,17.28125 L14.75,17.28125 C15.5266504,17.28125 16.15625,16.6516504 16.15625,15.875 L16.15625,8.95486111 L1.84375,8.95486111 Z" /></svg>						</span>
735						<span class="meta-text">
736							<a href="https://oobrien.com/2024/01/all-the-boroughs/">30 January 2024</a>
737						</span>
738					</li>
739										<li class="post-comment-link meta-wrapper">
740						<span class="meta-icon">
741							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="19" height="19" viewbox="0 0 19 19"><path d="M9.43016863,13.2235931 C9.58624731,13.094699 9.7823475,13.0241935 9.98476849,13.0241935 L15.0564516,13.0241935 C15.8581553,13.0241935 16.5080645,12.3742843 16.5080645,11.5725806 L16.5080645,3.44354839 C16.5080645,2.64184472 15.8581553,1.99193548 15.0564516,1.99193548 L3.44354839,1.99193548 C2.64184472,1.99193548 1.99193548,2.64184472 1.99193548,3.44354839 L1.99193548,11.5725806 C1.99193548,12.3742843 2.64184472,13.0241935 3.44354839,13.0241935 L5.76612903,13.0241935 C6.24715123,13.0241935 6.63709677,13.4141391 6.63709677,13.8951613 L6.63709677,15.5301903 L9.43016863,13.2235931 Z M3.44354839,14.766129 C1.67980032,14.766129 0.25,13.3363287 0.25,11.5725806 L0.25,3.44354839 C0.25,1.67980032 1.67980032,0.25 3.44354839,0.25 L15.0564516,0.25 C16.8201997,0.25 18.25,1.67980032 18.25,3.44354839 L18.25,11.5725806 C18.25,13.3363287 16.8201997,14.766129 15.0564516,14.766129 L10.2979143,14.766129 L6.32072889,18.0506004 C5.75274472,18.5196577 4.89516129,18.1156602 4.89516129,17.3790323 L4.89516129,14.766129 L3.44354839,14.766129 Z" /></svg>						</span>
742						<span class="meta-text">
743							<a href="https://oobrien.com/2024/01/all-the-boroughs/#comments">4 Comments<span class="screen-reader-text"> on All the Boroughs?</span></a>						</span>
744					</li>
745					
746			</ul><!-- .post-meta -->
747
748		</div><!-- .post-meta-wrapper -->
749
750		
751	</div><!-- .entry-header-inner -->
752
753</header><!-- .entry-header -->
754
755	<div class="post-inner thin ">
756
757		<div class="entry-content">
758
759			
760<p class="wp-block-paragraph">Back in 2018, I did a <a href="https://oobrien.com/2018/05/borough-challenge/">London Borough Challenge</a> &#8211; visit all 32 London Boroughs, plus the City of London, in as short a time as possible. </p>
761
762
763
764<p class="wp-block-paragraph">I made things hard for myself. I decided that my proof was taking a photograph, within each borough and of the name of the borough (e.g. street signs, salt-bins, libraries etc) &#8211; this involved some length treks around some boroughs to find such a name. I didn&#8217;t particularly plan the challenge, but just started near where I lived. I also did it at the weekend, where public transport options can be reduced, and started quite late in the day, with no food taken and only one drink bought. </p>
765
766
767
768<p class="wp-block-paragraph">I managed to visit all the boroughs in 9:25:23. My route was 121 miles, split roughly half in cycling and various train/tube legs. I quite like it, it looks reasonably efficie
768nt on the map (see blogpost above) although it did include an out-and-back leg out to Havering borough &#8211; I really should have started here (or in Bexley/Bromley). </p>
769
770
771
772<figure class="wp-block-image size-full is-resized"><a href="https://oobrien.com/wordpress/wp-content/uploads/2024/01/Screenshot-2024-01-30-at-14.29.34.png"><img loading="lazy" decoding="async" width="1561" height="1106" src="https://oobrien.com/wordpress/wp-content/uploads/2024/01/Screenshot-2024-01-30-at-14.29.34.png" alt="" class="wp-image-9527" style="width:610px;height:auto" srcset="https://oobrien.com/wordpress/wp-content/uploads/2024/01/Screenshot-2024-01-30-at-14.29.34.png 1561w, https://oobrien.com/wordpress/wp-content/uploads/2024/01/Screenshot-2024-01-30-at-14.29.34-300x213.png 300w, https://oobrien.com/wordpress/wp-content/uploads/2024/01/Screenshot-2024-01-30-at-14.29.34-1024x726.png 1024w, https://oobrien.com/wordpress/wp-content/uploads/2024/01/Screenshot-2024-01-30-at-14.29.34-768x544.png 768w, https://oobrien.com/wordpress/wp-content/uploads/2024/01/Screenshot-2024-01-30-at-14.29.34-1536x1088.png 1536w, https://oobrien.com/wordpress/wp-content/uploads/2024/01/Screenshot-2024-01-30-at-14.29.34-1200x850.png 1200w" sizes="auto, (max-width: 1561px) 100vw, 1561px" /></a></figure>
773
774
775
776<p class="has-text-align-center wp-block-paragraph"><em>Above: The Borough boundaries superimposed on an (old) tube/rail map of London created by Stefano Maggiolo.</em></p>
777
778
779
780<p class="wp-block-paragraph">I loved the idea of visiting places in London that I would never normally go to, and it included a brief sojourn into the north half of Hillingdon borough &#8211; far from (at the time) a part of London I had ever been too. I now live there. </p>
781
782
783
784<p class="wp-block-paragraph">Thanks to a mention of the challenge on the <a href="https://diamondgeezer.blogspot.com/2018/10/every-borough-challenge.html">Diamond Geezer blog</a>, and <a href="http://www.tubechallenge.com/forum/viewtopic.php?f=4&amp;t=616&amp;hilit=Borough+Challenge">some other posts</a> I was able to tease out a few more &#8220;times&#8221; for such a challenge:</p>
785
786
787
788<ul class="wp-block-list">
789<li><a href="http://www.tubechallenge.com/forum/viewtopic.php?p=13587#p13587">10:39:50</a> &#8211; Richard, 27 January 2007 &#8211; Tube Challenge GWR rules, included a ~3 hour pause to watch a football game! Welling to London Bridge.</li>
790
791
792
793<li><a href="https://oobrien.com/2018/05/borough-challenge/">9:25:23</a> &#8211; My effort, 5 May 2018, bike + tube/train, photos of borough names &#8211; Meridian Water to Edgware.</li>
794
795
796
797<li><a href="https://www.youtube.com/watch?v=yfPAgSSi5Q4">8:16:27 (video)</a> &#8211; FMP346, early July 2023 &#8211; Tube Challenge GWR rules &#8211; Oakleigh Park to Falconwood.</li>
798
799
800
801<li><a href="http://www.tubechallenge.com/forum/viewtopic.php?p=15844#p15844">7:41:39</a>  &#8211; JBom1, 20 August 2007, Tube Challenge GWR rules &#8211; Hadley Wood to Welling.</li>
802
803
804
805<li><a href="https://diamondgeezer.blogspot.com/2018/10/every-borough-challenge.html">7:13:00</a> &#8211; Diamond Geezer, 11 October 2018, mainly trains/tubes and some walking, underground tube/train sections and non-stop visits were allowed &#8211; Romford to Abbey Wood.</li>
806
807
808
809<li><a href="https://twitter.com/BrownPhilip/status/1010226941528629248?s=19">6:29:19</a> &#8211; Phil Brown and Hassan on 25 June 2009, stopping at a station in every borough &#8211; &#8220;a sub-6 hour time is possible&#8221;, Tube Challenge GWR rules &#8211; Eastcote to Belvedere.</li>
810</ul>
811
812
813
814<p class="wp-block-paragraph">Three of the five are &#8220;Tube Challenge GWR rules&#8221; runs. This is an adaptation of the classic London Tube Challenge. Each &#8220;visit&#8221; must be an arrival and/or departure at a stop/station by public transport. Walking/running sections are OK to link between public transport, But don&#8217;t count themselves as a &#8220;visit&#8221;. Being underground and/or staying in station/train/bus for a visit is OK. </p>
815
816
817
818<p class="wp-block-paragraph">I&#8217;m not wedded to the idea of theses rules because it makes the challenge mainly about trains/tubes/buses, rather than boroughs. Nothing wrong with that, but I feel that walking/cycling into a borough is &#8220;visiting&#8221; it. Even driving would be OK, I think. This might  well be the fastest way to visit all the boroughs, if you did it late at night. But certainly, during the day, I don&#8217;t think you could even drive to a different borough every 15 minutes or so. </p>
819
820
821
822<p class="wp-block-paragraph">There&#8217;s a few, similar kind of London-themed challenges, which I would like to do one day or have done &#8211; <a href="https://oobrien.com/walking-cycling/xengland/">Coast to Coast</a>, <a href="https://oobrien.com/2023/07/all-the-docks-2/">All the Docks</a>, <a href="https://outrunthezombeez.wordpress.com/2015/04/11/bridges-tdc385/">All the (Thames) Bridges</a>, the <a href="https://oobrien.com/walking-cycling/london-loop/">London LOOP</a>, the <a href="https://www.richardgower.com/blog/londonloop">London LOOP by bike</a>, <a href="https://outrunthezombeez.wordpress.com/adventures/city-markers/">All the Boundary Dragons</a> (<a href="https://www.richardgower.com/blog/colondonboundary">&amp;c</a>), <a href="https://tube.derickrethans.nl/">Walking the Tube</a> (or <a href="https://www.youtube.com/channel/UC_wc9G_XYm0gBR8RjT3bnPQ">Running</a> it)&#8230; I think this &#8220;completionism&#8221; desire stems from the <a href="https://en.wikipedia.org/wiki/Tube_Challenge">Tube Challenge</a> (popularised by the legend that is Geoff Marshall) and also from <a href="https://map.oobrien.com/munroist.php">All the Munros</a> which is is proving more and more tricky for me to do (but I will get them done some day!)</p>
823
824
825
826<p class="wp-block-paragraph">(There was also a recent, <a href="https://www.youtube.com/watch?v=qrf1U4vIiCg">similar challenge on the Tom the Taxi Driver Youtube channel</a> &#8211; it wasn&#8217;t a time-based challenge but it did include the basic premise of visiting a large number of boroughs sequentially. Here Tom attempted to visit all the &#8220;Knowledge&#8221; boroughs, in his taxi of course, passing just one set of junction-based traffic lights in each borough.)</p>
827
828
829
830<p class="wp-block-paragraph">Anyway I would like to try visiting all the London boroughs in a day again, this time simplifying the rules and also planning things in adcance. A GPS track with timings would be proof enough (for me) of each visit. </p>
831
832
833
834<p class="wp-block-paragraph">I think the combination of cycling and train is still the best way to go.  I would even say you don&#8217;t need to &#8220;stop&#8221; in each borough (at a train/tube station or bus stop) but that you need to be on the ground (albeit in a vehicle) to record a visit.</p>
835
836
837
838<p class="wp-block-paragraph">It should take well under 9 hours to do. Although maybe not under 6 &#8211; that&#8217;s 1 borough every 11 minutes! The only question is what route to take? </p>
839
840
841
842<p class="wp-block-paragraph">Some optimisations could be focusing on <a href="https://www.richardgower.com/blog/londonboroughtripoints">borough tripoints</a> &#8211;
842 possibly starting/ending at one. These are locations where three boroughs come together. Sometimes, a fourth borough is also very near, or even a fifth (at Crystal Palace). They tend not to have great public transport connections, because boroughs tend to not be so focused on connectivity at their edges &#8211; they would no doubt rather people spend their money nicely inside the borough, well away from their rivals. </p>
843
844
845
846<p class="wp-block-paragraph">Some route miscellany:</p>
847
848
849
850<ul class="wp-block-list">
851<li>The Crystal Palace tripoint (Bromley, Lambeth and Croydon) at the A212/A214 road junction is only 100m from Southwark, and less than 1km along the same road to Lewisham. It&#8217;s 8 miles (45 minutes on a bike) from the New Eltham area which is the Greenwich/Bexley board. That&#8217;s the 7 boroughs of South-East London down in under an hour. </li>
852
853
854
855<li>A cycle around the edge of the City of London (both sides of the Thames) can similarly get 7 more boroughs (Lambeth, Southwark, Tower Hamlets, Hackney, Islington, Camden, Westminster) plus the City itself, in little more than half an hour. </li>
856
857
858
859<li>You can&#8217;t take your bike on deep-level sections of the tube at any time &#8211; or the tube/train at all during rush hour. You also can&#8217;t take your bike on buses. But I think despite these, bike+train is the right combination.</li>
860
861
862
863<li>Bikeshare is possible this time &#8211; there&#8217;s so many Lime e-bikes in London now &#8211; possibly 10,000. But they aren&#8217;t in all of (outer) London and there is still &#8220;faff&#8221; time of finding one at your start, starting your journey with the app, and making sure the journey finishes correctly. </li>
864
865
866
867<li>I think probably, the cycling to train/tube ratio will need to be higher this time. </li>
868</ul>
869
870
871
872<h2 class="wp-block-heading">All the Boroughs By Bus?</h2>
873
874
875
876<figure class="wp-block-image size-full"><a href="https://oobrien.com/wordpress/wp-content/uploads/2024/01/Screenshot-2024-01-30-at-14.01.39.png"><img loading="lazy" decoding="async" width="1115" height="787" src="https://oobrien.com/wordpress/wp-content/uploads/2024/01/Screenshot-2024-01-30-at-14.01.39.png" alt="" class="wp-image-9523" srcset="https://oobrien.com/wordpress/wp-content/uploads/2024/01/Screenshot-2024-01-30-at-14.01.39.png 1115w, https://oobrien.com/wordpress/wp-content/uploads/2024/01/Screenshot-2024-01-30-at-14.01.39-300x212.png 300w, https://oobrien.com/wordpress/wp-content/uploads/2024/01/Screenshot-2024-01-30-at-14.01.39-1024x723.png 1024w, https://oobrien.com/wordpress/wp-content/uploads/2024/01/Screenshot-2024-01-30-at-14.01.39-768x542.png 768w" sizes="auto, (max-width: 1115px) 100vw, 1115px" /></a></figure>
877
878
879
880<p class="wp-block-paragraph">There is also the possibility of a &#8220;bus edition&#8221; of All the Boroughs. I did a desk-based calculation of a possible route which worked out at around 14 hours (!) but that was before the recent announcement, and ongoing introduction of, the <a href="https://tfl.gov.uk/modes/buses/superloop">Superloop</a>. This is a near-orbital set of 8 limited-stop buses, circumnavigating outer London (plus 3 radial express routes). The orbital part of the Superloop should be fully launched later this Spring  &#8211; by 2 March, is the plan &#8211; and then offer the ability to visit <a href="https://diamondgeezer.blogspot.com/2023/12/far-from-super-loop.html">18 of London&#8217;s boroughs</a> by just staying on the orbital Superloop route itself. Add in the 7 boroughs surrounding the City of London, and City itself, which could potentially all be walked, and you are just left with an inner-West London trek from Merton through Wandsworth to Hammersmith &amp; Fulham and Kensington &amp; Chelsea. Then you just have Havering, Haringey and Greenwich to visit. Easy!? </p>
881
882
883
884<p class="wp-block-paragraph">Some more miscellany:</p>
885
886
887
888<ul class="wp-block-list">
889<li>There is also one especially useful regular bus as it passes through 8  boroughs &#8211; the <a href="https://diamondgeezer.blogspot.com/2022/06/boroughs-and-bus-routes.html">341</a>. Its northern end is close to a likely stop on the Superloop on the North Circular. Its southern end is very close to the SL6 radial Superloop down to Croydon &#8211; however this only runs on weekday peaks. </li>
890
891
892
893<li>SL7 passes through Hounslow borough, but doesn&#8217;t stop in it. Does that count as a visit to Hounslow? (Probably yes. We are visiting boroughs not bus stops). </li>
894</ul>
895
896
897
898<p class="wp-block-paragraph">But London buses are often very, very slow. Is it possible to do it in a day (and ideally daylight)? Can I visit all the London Boroughs for £5.25?</p>
899
900
901
902<p class="wp-block-paragraph">Watch this space!</p>
903<div id="wp_fb_like_button" style="margin:5px 0 5px 5px;float:right;height:26px;">
903<script src="https://connect.facebook.net/en_US/all.js#xfbml=1"></script>
903<fb:like href="https://oobrien.com/2024/01/all-the-boroughs/" send="true" layout="button_count" width="500" show_faces="false" font="arial" action="like" colorscheme="light"></fb:like></div>
904		</div><!-- .entry-content -->
905
906	</div><!-- .post-inner -->
907
908	<div class="section-inner">
909		
910	</div><!-- .section-inner -->
911
912	
913</article><!-- .post -->
914<hr class="post-separator styled-separator is-style-wide section-inner" aria-hidden="true" />
915<article class="post-9429 post type-post status-publish format-standard hentry category-bike-share category-london" id="post-9429">
916
917	
918<header class="entry-header has-text-align-center">
919
920	<div class="entry-header-inner section-inner medium">
921
922		
923			<div class="entry-categories">
924				<span class="screen-reader-text">
925					Categories				</span>
926				<div class="entry-categories-inner">
927					<a href="https://oobrien.com/category/bike-share/" rel="category tag">Bike Share</a> <a href="https://oobrien.com/category/london/" rel="category tag">London</a>				</div><!-- .entry-categories-inner -->
928			</div><!-- .entry-categories -->
929
930			<h2 class="entry-title heading-size-1"><a href="https://oobrien.com/2023/07/all-the-docks-2/">All the Docks 2</a></h2>
931		<div class="post-meta-wrapper post-meta-single post-meta-single-top">
932
933			<ul class="post-meta">
934
935									<li class="post-author meta-wrapper">
936						<span class="meta-icon">
937							<span class="screen-reader-text">
938								Post author							</span>
939							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="20" viewbox="0 0 18 20"><path fill="" d="M18,19 C18,19.5522847 17.5522847,20 17,20 C16.4477153,20 16,19.5522847 16,19 L16,17 C16,15.3431458 14.6568542,14 13,14 L5,14 C3.34314575,14 2,15.3431458 2,17 L2,19 C2,19.5522847 1.55228475,20 1,20 C0.44771525,20 0,19.5522847 0,19 L0,17 C0,14.2385763 2.23857625,12 5,12 L13,12 C15.7614237,12 18,14.2385763 18,17 L18,19 Z M9,10 C6.23857625,10 4,7.76142375 4,5 C4,2.23857625 6.23857625,0 9,0 C11.7614237,0 14,2.23857625 14,5 C14,7.76142375 11.7614237,10 9,10 Z M9,8 C10.6568542,8 12,6.65685425 12,5 C12,3.34314575 10.6568542,2 9,2 C7.34314575,2 6,3.34314575 6,5 C6,6.65685425 7.34314575,8 9,8 Z" /></svg>						</span>
940						<span class="meta-text">
941							By <a href="https://oobrien.com/author/admin/">Oliver O&#039;Brien</a>						</span>
942					</li>
943										<li class="post-date meta-wrapper">
944						<span class="meta-icon">
945							<span class="screen-reader-text">
946								Post date							</span>
947							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewbox="0 0 18 19"><path fill="" d="M4.60069444,4.09375 L3.25,4.09375 C2.47334957,4.09375 1.84375,4.72334957 1.84375,5.5 L1.84375,7.26736111 L16.15625,7.26736111 L16.15625,5.5 C16.15625,4.72334957 15.5266504,4.09375 14.75,4.09375 L13.3993056,4.09375 L13.3993056,4.55555556 C13.3993056,5.02154581 13.0215458,5.39930556 12.5555556,5.39930556 C12.0895653,5.39930556 11.7118056,5.02154581 11.7118056,4.55555556 L11.7118056,4.09375 L6.28819444,4.09375 L6.28819444,4.55555556 C6.28819444,5.02154581 5.9104347,5.39930556 5.44444444,5.39930556 C4.97845419,5.39930556 4.60069444,5.02154581 4.60069444,4.55555556 L4.60069444,4.09375 Z M6.28819444,2.40625 L11.7118056,2.40625 L11.7118056,1 C11.7118056,0.534009742 12.0895653,0.15625 12.5555556,0.15625 C13.0215458,0.15625 13.3993056,0.534009742 13.3993056,1 L13.3993056,2.40625 L14.75,2.40625 C16.4586309,2.40625 17.84375,3.79136906 17.84375,5.5 L17.84375,15.875 C17.84375,17.5836309 16.4586309,18.96875 14.75,18.96875 L3.25,18.96875 C1.54136906,18.96875 0.15625,17.5836309 0.15625,15.875 L0.15625,5.5 C0.
94715625,3.79136906 1.54136906,2.40625 3.25,2.40625 L4.60069444,2.40625 L4.60069444,1 C4.60069444,0.534009742 4.97845419,0.15625 5.44444444,0.15625 C5.9104347,0.15625 6.28819444,0.534009742 6.28819444,1 L6.28819444,2.40625 Z M1.84375,8.95486111 L1.84375,15.875 C1.84375,16.6516504 2.47334957,17.28125 3.25,17.28125 L14.75,17.28125 C15.5266504,17.28125 16.15625,16.6516504 16.15625,15.875 L16.15625,8.95486111 L1.84375,8.95486111 Z" /></svg>						</span>
948						<span class="meta-text">
949							<a href="https://oobrien.com/2023/07/all-the-docks-2/">18 July 2023</a>
950						</span>
951					</li>
952										<li class="post-comment-link meta-wrapper">
953						<span class="meta-icon">
954							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="19" height="19" viewbox="0 0 19 19"><path d="M9.43016863,13.2235931 C9.58624731,13.094699 9.7823475,13.0241935 9.98476849,13.0241935 L15.0564516,13.0241935 C15.8581553,13.0241935 16.5080645,12.3742843 16.5080645,11.5725806 L16.5080645,3.44354839 C16.5080645,2.64184472 15.8581553,1.99193548 15.0564516,1.99193548 L3.44354839,1.99193548 C2.64184472,1.99193548 1.99193548,2.64184472 1.99193548,3.44354839 L1.99193548,11.5725806 C1.99193548,12.3742843 2.64184472,13.0241935 3.44354839,13.0241935 L5.76612903,13.0241935 C6.24715123,13.0241935 6.63709677,13.4141391 6.63709677,13.8951613 L6.63709677,15.5301903 L9.43016863,13.2235931 Z M3.44354839,14.766129 C1.67980032,14.766129 0.25,13.3363287 0.25,11.5725806 L0.25,3.44354839 C0.25,1.67980032 1.67980032,0.25 3.44354839,0.25 L15.0564516,0.25 C16.8201997,0.25 18.25,1.67980032 18.25,3.44354839 L18.25,11.5725806 C18.25,13.3363287 16.8201997,14.766129 15.0564516,14.766129 L10.2979143,14.766129 L6.32072889,18.0506004 C5.75274472,18.5196577 4.89516129,18.1156602 4.89516129,17.3790323 L4.89516129,14.766129 L3.44354839,14.766129 Z" /></svg>						</span>
955						<span class="meta-text">
956							<a href="https://oobrien.com/2023/07/all-the-docks-2/#comments">4 Comments<span class="screen-reader-text"> on All the Docks 2</span></a>						</span>
957					</li>
958					
959			</ul><!-- .post-meta -->
960
961		</div><!-- .post-meta-wrapper -->
962
963		
964	</div><!-- .entry-header-inner -->
965
966</header><!-- .entry-header -->
967
968	<div class="post-inner thin ">
969
970		<div class="entry-content">
971
972			
973<figure class="wp-block-image size-full"><a href="https://oobrien.com/wordpress/wp-content/uploads/2023/07/1689696108101.jpg"><img loading="lazy" decoding="async" width="2104" height="1560" src="https://oobrien.com/wordpress/wp-content/uploads/2023/07/1689696108101.jpg" alt="" class="wp-image-9432" srcset="https://oobrien.com/wordpress/wp-content/uploads/2023/07/1689696108101.jpg 2104w, https://oobrien.com/wordpress/wp-content/uploads/2023/07/1689696108101-300x222.jpg 300w, https://oobrien.com/wordpress/wp-content/uploads/2023/07/1689696108101-1024x759.jpg 1024w, https://oobrien.com/wordpress/wp-content/uploads/2023/07/1689696108101-768x569.jpg 768w, https://oobrien.com/wordpress/wp-content/uploads/2023/07/1689696108101-1536x1139.jpg 1536w, https://oobrien.com/wordpress/wp-content/uploads/2023/07/1689696108101-2048x1518.jpg 2048w, https://oobrien.com/wordpress/wp-content/uploads/2023/07/1689696108101-1200x890.jpg 1200w, https://oobrien.com/wordpress/wp-content/uploads/2023/07/1689696108101-1980x1468.jpg 1980w" sizes="auto, (max-width: 2104px) 100vw, 2104px" /></a></figure>
974
975
976
977<p class="wp-block-paragraph">Yes, we <a href="https://oobrien.com/2022/10/all-the-docks-how-it-went/">did it again</a>. All the Docks 2 took place in London on 9 July. Five teams (up from three last time) each cycled between a fifth of the Santander Cycles docking stations in London. I again did <a href="https://github.com/oobrien/allthedocks">the routes</a>, splitting up the ~800 docking stations into 5 routes of 160 docking stations apiece. To make it more of a challenge, this time we started in central London, at the same docking station we were all to finish at, with the teams looping out from central, before returning. </p>
978
979
980
981<p class="wp-block-paragraph">Each team was to visit exactly the same number of docking stations, with routes measured at around 71.7km +/- 1km maximum, to make it a genuine equal challenge. </p>
982
983
984
985<p class="wp-block-paragraph">I was on Team West this time, with Westfield London and Hyde Park being the highlights, contrasting from the Olympic Park and Canary Wharf last time round. Team West was an all-UCL team. </p>
986
987
988
989<figure class="wp-block-image size-full is-resized"><a href="https://oobrien.com/wordpress/wp-content/uploads/2023/07/teamwest_route.jpg"><img loading="lazy" decoding="async" src="https://oobrien.com/wordpress/wp-content/uploads/2023/07/teamwest_route.jpg" alt="" class="wp-image-9437" width="610" height="331" srcset="https://oobrien.com/wordpress/wp-content/uploads/2023/07/teamwest_route.jpg 1430w, https://oobrien.com/wordpress/wp-content/uploads/2023/07/teamwest_route-300x163.jpg 300w, https://oobrien.com/wordpress/wp-content/uploads/2023/07/teamwest_route-1024x556.jpg 1024w, https://oobrien.com/wordpress/wp-content/uploads/2023/07/teamwest_route-768x417.jpg 768w, https://oobrien.com/wordpress/wp-content/uploads/2023/07/teamwest_route-1200x651.jpg 1200w" sizes="auto, (max-width: 610px) 100vw, 610px" /></a></figure>
990
991
992
993<p class="wp-block-paragraph"><em>(Route courtesy of West Team lead rider Dr James Todd)</em></p>
994
995
996
997<h2 class="wp-block-heading">What went right?</h2>
998
999
1000
1001<p class="wp-block-paragraph">Nearly everything this time. </p>
1002
1003
1004
1005<p class="wp-block-paragraph">All teams started and finished. Four of the five teams finished within 5 minutes of each other, which I think is great after nearly 8 hours of cycling. One team finished half an hour quicker than the others, and therefore won, but then they did skip stopping for lunch. Fair play to them.</p>
1006
1007
1008
1009<p class="wp-block-paragraph">The weather was good, and Sunday traffic was light so the challenge was more pleasant. </p>
1010
1011
1012
1013<p class="wp-block-paragraph">TfL didn&#8217;t open any extra docking stations during the day, so no on-the-fly replanning was needed. </p>
1014
1015
1016
1017<p class="wp-block-paragraph">All teams used <a href="http://map.allthedocks.com/">my online map</a> to record their docks so we got a nearly complete dataset (albeit with a few errors in it) showing the teams docking.</p>
1018
1019
1020
1021<p class="wp-block-paragraph">The challenge had <a href="https://allthedocks.com/">an official website</a> this time, courtesy of overall coordinator Stephen Bee. </p>
1022
1023
1024
1025<p class="wp-block-paragraph">Prof Wood at City used the live API to generate some really nice live visuals of the progress, which he later turned into an animation:</p>
1026
1027
1028
1029<figure class="wp-block-video"><video height="448" style="aspect-ratio: 800 / 448;" width="800" controls src="https://oobrien.com/wordpress/wp-content/uploads/2023/07/F0rr5foXsAUta_c.mp4"></video></figure>
1030
1031
1032
1033<p class="wp-block-paragraph">The routes seemed to work OK &#8211; there were some quirks, such as the nearly 2 mile cycle North Team had across South Hackney to get to the Olympic Park. Originally, this area was Team East, but adding this in to the Team North route was essential to balance the lengths of the different routes. For Team West, we only had a couple of no-entry signs that I hadn&#8217;t anticipated and the odd road closure due to building work. Team South and Team Putney both had to cross the Thames four times. </p>
1034
1035
1036
1037<p class="wp-block-paragraph">This time I put each stage (stages are approximately 10km or 1 hour of cycling, so each team had 7 stages) through a TSP solver &#8211; I wrote <a href="https://github.com/oobrien/allthedocks/blob/main/construction/atd_osrm.py">some Python code</a> to make appropriate calls to an OSRM server (<a href="https://routing.openstreetmap.de/">routing.openstreetmap.de</a>) and modify the results to create a GeoJSON, viewed in QGIS. Unfortunately, the <a href="https://github.com/fossgis-routing-server/cbf-routing-profiles/blob/master/bike.lua">pre-defined vehicle profiles</a> available on the server meant that the cycling routes avoided trunk roads, whereas in London they are generally fine to go on, and also the router was too enthusiastic about using pavements for quite long sections, and even steps (a no-no for the 25kg Santander Cycles bikes). Next time, I would <a href="https://github.com/fossgis-routing-server/osrm-backend">run my own OSRM server</a>, with a a custom defined profile more suitable for London cycling. But the routes generated did suggest some optimisations and I was able to reduce the route lengths <a href="https://github.com/oobrien/allthedocks/blob/main/README.md">by around 1%</a>, in places substantially rerouting sections. So, a win overall for using TSP engines.</p>
1038
1039
1040
1041<p class="wp-block-paragraph">Everyone seemed to enjoy themselves and the ~4:30pm finish was ideal for a couple of pints outside at the pub opposite. </p>
1042
1043
1044
1045<h2 class="wp-block-heading">What went wrong?</h2>
1046
1047
1048
1049<p class="wp-block-paragraph">The biggest problem was the London 10K. This was happening almost unbeknown to us, except that I luckily realised it was happening and going to be a problem, when I read a TfL summary of events happening, the night before. The impact was quite major on the start of the event &#8211; I suspected that TfL would, unannounced, turn off a number of docking stations, but worse, the route was blocking the first stage for two of the teams &#8211; Team Putney and Team West started right down the race route. Urgent replanning the night before was needed. Team Putney did a dramatic diversion out via Waterloo and Lambeth Bridge (taking on some Team South docking stations). In compensation, Team South picked up some of Team Putney&#8217;s docking stations at the end of the day. Team West&#8217;s route would also be blocked at Regent Street. In the end, a diversion around Oxford Street, and a bit of replanning to add in a loop, didn&#8217;t lengthen the route too much. In the end, 5 docking stations were indeed turned off, they came back online in the mid-afternoon, just before the teams closed in on them, so all&#8217;s well that ends well. Probably, Team Putney could have sneaked down the race route, as the race started at 0930 and we started at 9am &#8211; and the course wasn&#8217;t completely sealed off until the runners started.  </p>
1050
1051
1052
1053<p class="wp-block-paragraph">My team (Team West) suffered a couple of technical problems due to docks going offline. This meant that the bikes docked, but journeys did not &#8220;end&#8221; in the Santander Cycles system. Therefore, a new journey could not be started. These issues were solved with phone call to the helpdesk, however, the first time, the operator made us jog back to the previous docking station (as we had already cycled on with another bike/account) to confirm cycle numbers to prove we were there. Very annoying and we lost 15 minutes this way. TfL should know when their docking stations are offline. When it happened near the end, we again had to jog back, and used the remaining key for the last two hops. In the end, it didn&#8217;t deny us the win &#8211; we&#8217;d already lost that by having too leisurely a lunch. (Two accounts are necessary for the challenge, to avoid a 30 second account timeout between successive hires). </p>
1054
1055
1056
1057<p class="wp-block-paragraph">There were again some problems with the team version of my live map. The API response went quite slow during the day, even though I had tested it to work within a few milliseconds. This meant it was easy to tick, and then accidentally untick while waiting for the response to come back. Future UX tweaks would mean a confirmation needed to untick, or to tick a station later than the next one in the list. </p>
1058
1059
1060
1061<p class="wp-block-paragraph">Routes generally worked well but Team West was surprised by the sudden removal of the cycle track on the inner side of the Hammersmith Gyratory, necessitating a diversion and then some hairy lane swerves to get back on track. Sudden ending of otherwise good cycle infrastru
1061cture is a long-standing London quirk. Looking at maps, even now, I still can&#8217;t work out how cyclists are supposed to get from Talgarth Road (north side) to King Street. Maybe via Shortlands? But then why have such a great cycle path on Talgarth Road itself?</p>
1062
1063
1064
1065<p class="wp-block-paragraph">I need to automate the process of creating the routes and the files generated from the routes, particularly going from the GeoJSONs in QGIS, to the GPX route/waypoint files and the dock list. Like last time, I went through four iterations of the routes, each correction and publishing cycle took 2-3 hours. </p>
1066
1067
1068
1069<p class="wp-block-paragraph">Late changes, mainly relating to the London 10K replanning but also the need to get five route with the same number of docking stations and essentially the same length, meant I couldn&#8217;t include some &#8220;iconic&#8221; London cycling pieces in the routes &#8211; namely the Kensington Gardens Broad Walk, Parliament Square, or Battersea Bridge. </p>
1070
1071
1072
1073<p class="wp-block-paragraph">Team leads were given Go-Pros to wear, which were set to do time-lapse imagery, but these soon ran out of batteries. A different kind of device might be needed for this kind of thing. </p>
1074
1075
1076
1077<p class="wp-block-paragraph">We were expecting more on-the-day involvement from TfL (both technical and promotional) and some other data organisations as the event was part of London Data Week, indeed this set the event date. In the end, apart from Prof Wood&#8217;s excellent contribution above, we were on our own. It is possible some further outputs may appear.</p>
1078
1079
1080
1081<h2 class="wp-block-heading">Some final notes</h2>
1082
1083
1084
1085<p class="wp-block-paragraph">All teams used at least one Santander Cycle between each dock, docking and undocking each time, to make the challenge official. There were no rules on what bikes the other members could be on, so one person had the great idea of doing ~55 minute rentals on the Santander Cycle electric bikes, each time. This is great because it makes the challenge more enjoyable, having an electric boost. It also will have only cost an extra ~£8 or so (as the surcharge for electric is £1 for up to an hour). The only drawback is no easy way to mount your phone on a hire bike. But i think I would be happy to trade that for an easier pedal.</p>
1086
1087
1088
1089<p class="wp-block-paragraph">Until next time&#8230;</p>
1090<div id="wp_fb_like_button" style="margin:5px 0 5px 5px;float:right;height:26px;">
1090<script src="https://connect.facebook.net/en_US/all.js#xfbml=1"></script>
1090<fb:like href="https://oobrien.com/2023/07/all-the-docks-2/" send="true" layout="button_count" width="500" show_faces="false" font="arial" action="like" colorscheme="light"></fb:like></div>
1091		</div><!-- .entry-content -->
1092
1093	</div><!-- .post-inner -->
1094
1095	<div class="section-inner">
1096		
1097	</div><!-- .section-inner -->
1098
1099	
1100</article><!-- .post -->
1101<hr class="post-separator styled-separator is-style-wide section-inner" aria-hidden="true" />
1102<article class="post-9405 post type-post status-publish format-standard hentry category-data" id="post-9405">
1103
1104	
1105<header class="entry-header has-text-align-center">
1106
1107	<div class="entry-header-inner section-inner medium">
1108
1109		
1110			<div class="entry-categories">
1111				<span class="screen-reader-text">
1112					Categories				</span>
1113				<div class="entry-categories-inner">
1114					<a href="https://oobrien.com/category/data/" rel="category tag">Data</a>				</div><!-- .entry-categories-inner -->
1115			</div><!-- .entry-categories -->
1116
1117			<h2 class="entry-title heading-size-1"><a href="https://oobrien.com/2023/07/building-data/">Building Data</a></h2>
1118		<div class="post-meta-wrapper post-meta-single post-meta-single-top">
1119
1120			<ul class="post-meta">
1121
1122									<li class="post-author meta-wrapper">
1123						<span class="meta-icon">
1124							<span class="screen-reader-text">
1125								Post author							</span>
1126							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="20" viewbox="0 0 18 20"><path fill="" d="M18,19 C18,19.5522847 17.5522847,20 17,20 C16.4477153,20 16,19.5522847 16,19 L16,17 C16,15.3431458 14.6568542,14 13,14 L5,14 C3.34314575,14 2,15.3431458 2,17 L2,19 C2,19.5522847 1.55228475,20 1,20 C0.44771525,20 0,19.5522847 0,19 L0,17 C0,14.2385763 2.23857625,12 5,12 L13,12 C15.7614237,12 18,14.2385763 18,17 L18,19 Z M9,10 C6.23857625,10 4,7.76142375 4,5 C4,2.23857625 6.23857625,0 9,0 C11.7614237,0 14,2.23857625 14,5 C14,7.76142375 11.7614237,10 9,10 Z M9,8 C10.6568542,8 12,6.65685425 12,5 C12,3.34314575 10.6568542,2 9,2 C7.34314575,2 6,3.34314575 6,5 C6,6.65685425 7.34314575,8 9,8 Z" /></svg>						</span>
1127						<span class="meta-text">
1128							By <a href="https://oobrien.com/author/admin/">Oliver O&#039;Brien</a>						</span>
1129					</li>
1130										<li class="post-date meta-wrapper">
1131						<span class="meta-icon">
1132							<span class="screen-reader-text">
1133								Post date							</span>
1134							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewbox="0 0 18 19"><path fill="" d="M4.60069444,4.09375 L3.25,4.09375 C2.47334957,4.09375 1.84375,4.72334957 1.84375,5.5 L1.84375,7.26736111 L16.15625,7.26736111 L16.15625,5.5 C16.15625,4.72334957 15.5266504,4.09375 14.75,4.09375 L13.3993056,4.09375 L13.3993056,4.55555556 C13.3993056,5.02154581 13.0215458,5.39930556 12.5555556,5.39930556 C12.0895653,5.39930556 11.7118056,5.02154581 11.7118056,4.55555556 L11.7118056,4.09375 L6.28819444,4.09375 L6.28819444,4.55555556 C6.28819444,5.02154581 5.9104347,5.39930556 5.44444444,5.39930556 C4.97845419,5.39930556 4.60069444,5.02154581 4.60069444,4.55555556 L4.60069444,4.09375 Z M6.28819444,2.40625 L11.7118056,2.40625 L11.7118056,1 C11.7118056,0.534009742 12.0895653,0.15625 12.5555556,0.15625 C13.0215458,0.15625 13.3993056,0.534009742 13.3993056,1 L13.3993056,2.40625 L14.75,2.40625 C16.4586309,2.40625 17.84375,3.79136906 17.84375,5.5 L17.84375,15.875 C17.84375,17.5836309 16.4586309,18.96875 14.75,18.96875 L3.25,18.96875 C1.54136906,18.96875 0.15625,17.5836309 0.15625,15.875 L0.15625,5.5 C0.
113415625,3.79136906 1.54136906,2.40625 3.25,2.40625 L4.60069444,2.40625 L4.60069444,1 C4.60069444,0.534009742 4.97845419,0.15625 5.44444444,0.15625 C5.9104347,0.15625 6.28819444,0.534009742 6.28819444,1 L6.28819444,2.40625 Z M1.84375,8.95486111 L1.84375,15.875 C1.84375,16.6516504 2.47334957,17.28125 3.25,17.28125 L14.75,17.28125 C15.5266504,17.28125 16.15625,16.6516504 16.15625,15.875 L16.15625,8.95486111 L1.84375,8.95486111 Z" /></svg>						</span>
1135						<span class="meta-text">
1136							<a href="https://oobrien.com/2023/07/building-data/">5 July 2023</a>
1137						</span>
1138					</li>
1139										<li class="post-comment-link meta-wrapper">
1140						<span class="meta-icon">
1141							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="19" height="19" viewbox="0 0 19 19"><path d="M9.43016863,13.2235931 C9.58624731,13.094699 9.7823475,13.0241935 9.98476849,13.0241935 L15.0564516,13.0241935 C15.8581553,13.0241935 16.5080645,12.3742843 16.5080645,11.5725806 L16.5080645,3.44354839 C16.5080645,2.64184472 15.8581553,1.99193548 15.0564516,1.99193548 L3.44354839,1.99193548 C2.64184472,1.99193548 1.99193548,2.64184472 1.99193548,3.44354839 L1.99193548,11.5725806 C1.99193548,12.3742843 2.64184472,13.0241935 3.44354839,13.0241935 L5.76612903,13.0241935 C6.24715123,13.0241935 6.63709677,13.4141391 6.63709677,13.8951613 L6.63709677,15.5301903 L9.43016863,13.2235931 Z M3.44354839,14.766129 C1.67980032,14.766129 0.25,13.3363287 0.25,11.5725806 L0.25,3.44354839 C0.25,1.67980032 1.67980032,0.25 3.44354839,0.25 L15.0564516,0.25 C16.8201997,0.25 18.25,1.67980032 18.25,3.44354839 L18.25,11.5725806 C18.25,13.3363287 16.8201997,14.766129 15.0564516,14.766129 L10.2979143,14.766129 L6.32072889,18.0506004 C5.75274472,18.5196577 4.89516129,18.1156602 4.89516129,17.3790323 L4.89516129,14.766129 L3.44354839,14.766129 Z" /></svg>						</span>
1142						<span class="meta-text">
1143							<a href="https://oobrien.com/2023/07/building-data/#comments">1 Comment<span class="screen-reader-text"> on Building Data</span></a>						</span>
1144					</li>
1145					
1146			</ul><!-- .post-meta -->
1147
1148		</div><!-- .post-meta-wrapper -->
1149
1150		
1151	</div><!-- .entry-header-inner -->
1152
1153</header><!-- .entry-header -->
1154
1155	<div class="post-inner thin ">
1156
1157		<div class="entry-content">
1158
1159			
1160<figure class="wp-block-image size-full"><a href="https://oobrien.com/wordpress/wp-content/uploads/2023/07/buildingdata.png"><img loading="lazy" decoding="async" width="824" height="568" src="https://oobrien.com/wordpress/wp-content/uploads/2023/07/buildingdata.png" alt="" class="wp-image-9422" srcset="https://oobrien.com/wordpress/wp-content/uploads/2023/07/buildingdata.png 824w, https://oobrien.com/wordpress/wp-content/uploads/2023/07/buildingdata-300x207.png 300w, https://oobrien.com/wordpress/wp-content/uploads/2023/07/buildingdata-768x529.png 768w" sizes="auto, (max-width: 824px) 100vw, 824px" /></a></figure>
1161
1162
1163
1164<p class="wp-block-paragraph">Seven years ago, <a href="https://oobrien.com/2015/12/building-ages/">I wrote</a> &#8220;We don’t have individual building age open data in the UK&#8221; &#8211; but that is no longer true!</p>
1165
1166
1167
1168<p class="wp-block-paragraph">The MLUHC (for England Wales) and the Scottish Government via the Energy Saving Trust have been publishing individual Energy Performance Certificates (EPCs), for both residential and non-residential buildings, for several years now, and the records go back to 2008 and 2013 respectively. As all new properties require EPCs, and they are also required regularly for rented properties and house sales, the proportion of buildings with these certificates has gradually increased, to around 50% of properties (around 40% in Scotland). </p>
1169
1170
1171
1172<p class="wp-block-paragraph">One of the attributes available on the domestic certificate bulk data is the approximate aged of the building &#8211; in approximately 10-year age bands. However, linking this to a location used to require using the decidedly non-open AddressBase columns in the dataset. However, more recently, the publishing authorities have added Ordnance Survey UPRNs (Unique Property Reference Numbers) to the data &#8211; and this can be linked with the UPRN Lookup tables published by the Office of National Statistics (ONS) which contain locations (eastings and northings) of the UPRNs, which typically are the front door of each property. </p>
1173
1174
1175
1176<p class="wp-block-paragraph">By combining the UPRNs with the lookup, it is now possible to map building ages, for around half of the individual buildings in Great Britain. Moreover, it looks increasingly possible to distinguish residential from non-residential buildings (some have both uses, of course) which will potentially be a very useful attribute when mapping residential data, with the ability to blank out non-residential buildings. Many of CDRC Mapmaker&#8217;s maps show data based on the residential population only, so colouring business park buildings with the data never made sense. </p>
1177
1178
1179
1180<p class="wp-block-paragraph">The individual building data also allows a more precise look at the different areas of cities, based on their built form. The exact extents of housing estates, or Victoria terraces, are now obvious, from sharp changes in building age, tenancy type and floor area compared with neighbouring blocks, which sit in the same LSOA/Data Zone &#8211; the previous smallest unit of building age detail, <a href="https://mapmaker.cdrc.ac.uk/#/dwelling-ages-prices?m=dwe_mdargb&amp;lon=-0.0838&amp;lat=51.6624&amp;zoom=12.46" data-type="link" data-id="https://mapmaker.cdrc.ac.uk/#/dwelling-ages-prices?lon=-0.0838&amp;lat=51.6624&amp;zoom=12.46">from the previous best-resolution open-data dataset</a>, from the VOA. </p>
1181
1182
1183
1184<p class="wp-block-paragraph">As part of this project, on CDRC Data I plan to, as soon as I am able to*, publish the individual (UPRN-by-UPRN) building attribute data, across Great Britain. I&#8217;ve also aggregated by Output Area (2021 for England/Wales, 2011 for Scotland) for domestic properties, and by Workplace Zone 2011 for non-domestic properties. (*Currently some other work on EPC data is being carried out at CDRC and that may take precedence.) </p>
1185
1186
1187
1188<p class="wp-block-paragraph">I&#8217;ve <a href="https://mapmaker.cdrc.ac.uk/#/building-attributes">mapped these on CDRC Mapmaker</a>. Using the PWC (population weighted centroids) for these, and mode/median based aggregates, allows aggregated representation of the data, when looking it at smaller zoom levels on the map. Zooming in reveals the individual building data. PWCs are useful because they retain the urban form &#8211; rather than arbitrarily assigning each OA to, for example, a river running through a development.  </p>
1189
1190
1191
1192<p class="wp-block-paragraph">The inspiration for this project &#8211; mapping the age of Britain&#8217;s buildings &#8211; comes from this old but excellent <a href="http://code.waag.org/buildings/">example from the Netherlands</a>. There is more to be done &#8211; assigning estimated ages for buildings nearby confirmed ones, and colouring in each block rather than just assigning a dot to a doorstep &#8211; which will follow.</p>
1193
1194
1195
1196<p class="wp-block-paragraph"><em>I use buildings and properties interchangeably here &#8211; a property is a housing unit where a family/social unit live, and has an address &#8211; it might be in a single building or spread across several, and (more likely) a building may contain lots of addresses and properties, such as a block of flats. </em></p>
1197<div id="wp_fb_like_button" style="margin:5px 0 5px 5px;float:right;height:26px;">
1197<script src="https://connect.facebook.net/en_US/all.js#xfbml=1"></script>
1197<fb:like href="https://oobrien.com/2023/07/building-data/" send="true" layout="button_count" width="500" show_faces="false" font="arial" action="like" colorscheme="light"></fb:like></div>
1198		</div><!-- .entry-content -->
1199
1200	</div><!-- .post-inner -->
1201
1202	<div class="section-inner">
1203		
1204	</div><!-- .section-inner -->
1205
1206	
1207</article><!-- .post -->
1208<hr class="post-separator styled-separator is-style-wide section-inner" aria-hidden="true" />
1209<article class="post-9278 post type-post status-publish format-standard hentry category-technical" id="post-9278">
1210
1211	
1212<header class="entry-header has-text-align-center">
1213
1214	<div class="entry-header-inner section-inner medium">
1215
1216		
1217			<div class="entry-categories">
1218				<span class="screen-reader-text">
1219					Categories				</span>
1220				<div class="entry-categories-inner">
1221					<a href="https://oobrien.com/category/technical/" rel="category tag">Technical</a>				</div><!-- .entry-categories-inner -->
1222			</div><!-- .entry-categories -->
1223
1224			<h2 class="entry-title heading-size-1"><a href="https://oobrien.com/2023/03/consolidation/">Consolidation</a></h2>
1225		<div class="post-meta-wrapper post-meta-single post-meta-single-top">
1226
1227			<ul class="post-meta">
1228
1229									<li class="post-author meta-wrapper">
1230						<span class="meta-icon">
1231							<span class="screen-reader-text">
1232								Post author							</span>
1233							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="20" viewbox="0 0 18 20"><path fill="" d="M18,19 C18,19.5522847 17.5522847,20 17,20 C16.4477153,20 16,19.5522847 16,19 L16,17 C16,15.3431458 14.6568542,14 13,14 L5,14 C3.34314575,14 2,15.3431458 2,17 L2,19 C2,19.5522847 1.55228475,20 1,20 C0.44771525,20 0,19.5522847 0,19 L0,17 C0,14.2385763 2.23857625,12 5,12 L13,12 C15.7614237,12 18,14.2385763 18,17 L18,19 Z M9,10 C6.23857625,10 4,7.76142375 4,5 C4,2.23857625 6.23857625,0 9,0 C11.7614237,0 14,2.23857625 14,5 C14,7.76142375 11.7614237,10 9,10 Z M9,8 C10.6568542,8 12,6.65685425 12,5 C12,3.34314575 10.6568542,2 9,2 C7.34314575,2 6,3.34314575 6,5 C6,6.65685425 7.34314575,8 9,8 Z" /></svg>						</span>
1234						<span class="meta-text">
1235							By <a href="https://oobrien.com/author/admin/">Oliver O&#039;Brien</a>						</span>
1236					</li>
1237										<li class="post-date meta-wrapper">
1238						<span class="meta-icon">
1239							<span class="screen-reader-text">
1240								Post date							</span>
1241							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewbox="0 0 18 19"><path fill="" d="M4.60069444,4.09375 L3.25,4.09375 C2.47334957,4.09375 1.84375,4.72334957 1.84375,5.5 L1.84375,7.26736111 L16.15625,7.26736111 L16.15625,5.5 C16.15625,4.72334957 15.5266504,4.09375 14.75,4.09375 L13.3993056,4.09375 L13.3993056,4.55555556 C13.3993056,5.02154581 13.0215458,5.39930556 12.5555556,5.39930556 C12.0895653,5.39930556 11.7118056,5.02154581 11.7118056,4.55555556 L11.7118056,4.09375 L6.28819444,4.09375 L6.28819444,4.55555556 C6.28819444,5.02154581 5.9104347,5.39930556 5.44444444,5.39930556 C4.97845419,5.39930556 4.60069444,5.02154581 4.60069444,4.55555556 L4.60069444,4.09375 Z M6.28819444,2.40625 L11.7118056,2.40625 L11.7118056,1 C11.7118056,0.534009742 12.0895653,0.15625 12.5555556,0.15625 C13.0215458,0.15625 13.3993056,0.534009742 13.3993056,1 L13.3993056,2.40625 L14.75,2.40625 C16.4586309,2.40625 17.84375,3.79136906 17.84375,5.5 L17.84375,15.875 C17.84375,17.5836309 16.4586309,18.96875 14.75,18.96875 L3.25,18.96875 C1.54136906,18.96875 0.15625,17.5836309 0.15625,15.875 L0.15625,5.5 C0.
124115625,3.79136906 1.54136906,2.40625 3.25,2.40625 L4.60069444,2.40625 L4.60069444,1 C4.60069444,0.534009742 4.97845419,0.15625 5.44444444,0.15625 C5.9104347,0.15625 6.28819444,0.534009742 6.28819444,1 L6.28819444,2.40625 Z M1.84375,8.95486111 L1.84375,15.875 C1.84375,16.6516504 2.47334957,17.28125 3.25,17.28125 L14.75,17.28125 C15.5266504,17.28125 16.15625,16.6516504 16.15625,15.875 L16.15625,8.95486111 L1.84375,8.95486111 Z" /></svg>						</span>
1242						<span class="meta-text">
1243							<a href="https://oobrien.com/2023/03/consolidation/">17 March 2023</a>
1244						</span>
1245					</li>
1246										<li class="post-comment-link meta-wrapper">
1247						<span class="meta-icon">
1248							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="19" height="19" viewbox="0 0 19 19"><path d="M9.43016863,13.2235931 C9.58624731,13.094699 9.7823475,13.0241935 9.98476849,13.0241935 L15.0564516,13.0241935 C15.8581553,13.0241935 16.5080645,12.3742843 16.5080645,11.5725806 L16.5080645,3.44354839 C16.5080645,2.64184472 15.8581553,1.99193548 15.0564516,1.99193548 L3.44354839,1.99193548 C2.64184472,1.99193548 1.99193548,2.64184472 1.99193548,3.44354839 L1.99193548,11.5725806 C1.99193548,12.3742843 2.64184472,13.0241935 3.44354839,13.0241935 L5.76612903,13.0241935 C6.24715123,13.0241935 6.63709677,13.4141391 6.63709677,13.8951613 L6.63709677,15.5301903 L9.43016863,13.2235931 Z M3.44354839,14.766129 C1.67980032,14.766129 0.25,13.3363287 0.25,11.5725806 L0.25,3.44354839 C0.25,1.67980032 1.67980032,0.25 3.44354839,0.25 L15.0564516,0.25 C16.8201997,0.25 18.25,1.67980032 18.25,3.44354839 L18.25,11.5725806 C18.25,13.3363287 16.8201997,14.766129 15.0564516,14.766129 L10.2979143,14.766129 L6.32072889,18.0506004 C5.75274472,18.5196577 4.89516129,18.1156602 4.89516129,17.3790323 L4.89516129,14.766129 L3.44354839,14.766129 Z" /></svg>						</span>
1249						<span class="meta-text">
1250							<a href="https://oobrien.com/2023/03/consolidation/#comments">1 Comment<span class="screen-reader-text"> on Consolidation</span></a>						</span>
1251					</li>
1252					
1253			</ul><!-- .post-meta -->
1254
1255		</div><!-- .post-meta-wrapper -->
1256
1257		
1258	</div><!-- .entry-header-inner -->
1259
1260</header><!-- .entry-header -->
1261
1262	<div class="post-inner thin ">
1263
1264		<div class="entry-content">
1265
1266			
1267<p class="wp-block-paragraph">In an effort to focus my (now rather limited) spare time on a more nuanced set of web projects, I have consolidated some websites.</p>
1268
1269
1270
1271<h2 class="wp-block-heading">Three Blogs into One</h2>
1272
1273
1274
1275<p class="wp-block-paragraph">I have combined two other blogs into this one:</p>
1276
1277
1278
1279<ul class="wp-block-list">
1280<li>blog.oomap.co.uk &#8211; My personal blog, with notes about London, orienteering and cycling. This was my original blog &#8220;YepSport&#8221; (also known as &#8220;Yablog&#8221;) and goes right back to 2003.</li>
1281
1282
1283
1284<li>bikesharp.com &#8211; Writing about shared micromobility in the UK. This blog has had less writing than I had planned, as shortly after I started, I was contracted to write similar articles for Zag Daily, for the last couple of years (I have now stepped down).  </li>
1285</ul>
1286
1287
1288
1289<p class="wp-block-paragraph">I still write another blog &#8211; Mapping London &#8211; which will stay separate for now. </p>
1290
1291
1292
1293<h2 class="wp-block-heading">OpenOrienteeringMap Leaves Home</h2>
1294
1295
1296
1297<p class="wp-block-paragraph">I have also switched OpenOrienteeringMap from my own server/website to David Dixon&#8217;s excellent &#8220;version 4&#8221; rewrite. </p>
1298
1299
1300
1301<p class="wp-block-paragraph">OOM has been going since 2009, with saveable maps and a UI redesign in 2013 (version 2), and the ability to generate MapRun-compatible maps (JPGs, JGWs and KMZs) in 2020, capitalising on a boom in popularity for self-run orienteering races during the early months of the COVID crisis and resulting lockdowns (version 3). </p>
1302
1303
1304
1305<p class="wp-block-paragraph">However my version had a number of limitations &#8211; it used its own copy of OpenStreetMap rather than APIs to the master copy, resulting in delays to people&#8217;s edits appearing on the map. It also had very limited contour coverage (10m contours, and GB only). Finally, the actual mapping was inflexible, e.g. you get fences whether you wanted them or not. There was no per-feature toggle. </p>
1306
1307
1308
1309<p class="wp-block-paragraph">All of these problems were fixed by David&#8217;s rewrite. The only step back is you don&#8217;t see the actual orienteering style on the screen, until you generate the PDF. But David has added a Preview button, so the softw
1309are can go off and generate it on the screen after all &#8211; you just need to wait a few seconds. </p>
1310
1311
1312
1313<h2 class="wp-block-heading">BikeShareMap and the Meddin Bike-Sharing World Map</h2>
1314
1315
1316
1317<p class="wp-block-paragraph">Finally, I currently run/contribute towards two websites mapping bikeshare systems around the world. BikeShareMap shows individual docking station statuses, for the ~600 systems for which there is such data. The Meddin Bike-Sharing World Map maps all the bikeshare systems in the world &#8211; but just as a single pin, per city. </p>
1318
1319
1320
1321<p class="wp-block-paragraph">I have been gradually consolidating the two projects &#8211; the first stage has been to use common IDs and split outs for each city, this is now well underway. The second step is to harmonise data input across the two websites, rather than double-keying, as at present. The final stage (which is some way off) will be to integrate the BSM function into the Meddin project. </p>
1322<div id="wp_fb_like_button" style="margin:5px 0 5px 5px;float:right;height:26px;">
1322<script src="https://connect.facebook.net/en_US/all.js#xfbml=1"></script>
1322<fb:like href="https://oobrien.com/2023/03/consolidation/" send="true" layout="button_count" width="500" show_faces="false" font="arial" action="like" colorscheme="light"></fb:like></div>
1323		</div><!-- .entry-content -->
1324
1325	</div><!-- .post-inner -->
1326
1327	<div class="section-inner">
1328		
1329	</div><!-- .section-inner -->
1330
1331	
1332</article><!-- .post -->
1333<hr class="post-separator styled-separator is-style-wide section-inner" aria-hidden="true" />
1334<article class="post-668 post type-post status-publish format-standard hentry category-data" id="post-668">
1335
1336	
1337<header class="entry-header has-text-align-center">
1338
1339	<div class="entry-header-inner section-inner medium">
1340
1341		
1342			<div class="entry-categories">
1343				<span class="screen-reader-text">
1344					Categories				</span>
1345				<div class="entry-categories-inner">
1346					<a href="https://oobrien.com/category/data/" rel="category tag">Data</a>				</div><!-- .entry-categories-inner -->
1347			</div><!-- .entry-categories -->
1348
1349			<h2 class="entry-title heading-size-1"><a href="https://oobrien.com/2022/12/big-feed-tidyup/">Big Feed Tidyup</a></h2>
1350		<div class="post-meta-wrapper post-meta-single post-meta-single-top">
1351
1352			<ul class="post-meta">
1353
1354									<li class="post-author meta-wrapper">
1355						<span class="meta-icon">
1356							<span class="screen-reader-text">
1357								Post author							</span>
1358							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="20" viewbox="0 0 18 20"><path fill="" d="M18,19 C18,19.5522847 17.5522847,20 17,20 C16.4477153,20 16,19.5522847 16,19 L16,17 C16,15.3431458 14.6568542,14 13,14 L5,14 C3.34314575,14 2,15.3431458 2,17 L2,19 C2,19.5522847 1.55228475,20 1,20 C0.44771525,20 0,19.5522847 0,19 L0,17 C0,14.2385763 2.23857625,12 5,12 L13,12 C15.7614237,12 18,14.2385763 18,17 L18,19 Z M9,10 C6.23857625,10 4,7.76142375 4,5 C4,2.23857625 6.23857625,0 9,0 C11.7614237,0 14,2.23857625 14,5 C14,7.76142375 11.7614237,10 9,10 Z M9,8 C10.6568542,8 12,6.65685425 12,5 C12,3.34314575 10.6568542,2 9,2 C7.34314575,2 6,3.34314575 6,5 C6,6.65685425 7.34314575,8 9,8 Z" /></svg>						</span>
1359						<span class="meta-text">
1360							By <a href="https://oobrien.com/author/admin/">Oliver O&#039;Brien</a>						</span>
1361					</li>
1362										<li class="post-date meta-wrapper">
1363						<span class="meta-icon">
1364							<span class="screen-reader-text">
1365								Post date							</span>
1366							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewbox="0 0 18 19"><path fill="" d="M4.60069444,4.09375 L3.25,4.09375 C2.47334957,4.09375 1.84375,4.72334957 1.84375,5.5 L1.84375,7.26736111 L16.15625,7.26736111 L16.15625,5.5 C16.15625,4.72334957 15.5266504,4.09375 14.75,4.09375 L13.3993056,4.09375 L13.3993056,4.55555556 C13.3993056,5.02154581 13.0215458,5.39930556 12.5555556,5.39930556 C12.0895653,5.39930556 11.7118056,5.02154581 11.7118056,4.55555556 L11.7118056,4.09375 L6.28819444,4.09375 L6.28819444,4.55555556 C6.28819444,5.02154581 5.9104347,5.39930556 5.44444444,5.39930556 C4.97845419,5.39930556 4.60069444,5.02154581 4.60069444,4.55555556 L4.60069444,4.09375 Z M6.28819444,2.40625 L11.7118056,2.40625 L11.7118056,1 C11.7118056,0.534009742 12.0895653,0.15625 12.5555556,0.15625 C13.0215458,0.15625 13.3993056,0.534009742 13.3993056,1 L13.3993056,2.40625 L14.75,2.40625 C16.4586309,2.40625 17.84375,3.79136906 17.84375,5.5 L17.84375,15.875 C17.84375,17.5836309 16.4586309,18.96875 14.75,18.96875 L3.25,18.96875 C1.54136906,18.96875 0.15625,17.5836309 0.15625,15.875 L0.15625,5.5 C0.
136615625,3.79136906 1.54136906,2.40625 3.25,2.40625 L4.60069444,2.40625 L4.60069444,1 C4.60069444,0.534009742 4.97845419,0.15625 5.44444444,0.15625 C5.9104347,0.15625 6.28819444,0.534009742 6.28819444,1 L6.28819444,2.40625 Z M1.84375,8.95486111 L1.84375,15.875 C1.84375,16.6516504 2.47334957,17.28125 3.25,17.28125 L14.75,17.28125 C15.5266504,17.28125 16.15625,16.6516504 16.15625,15.875 L16.15625,8.95486111 L1.84375,8.95486111 Z" /></svg>						</span>
1367						<span class="meta-text">
1368							<a href="https://oobrien.com/2022/12/big-feed-tidyup/">26 December 2022</a>
1369						</span>
1370					</li>
1371										<li class="post-comment-link meta-wrapper">
1372						<span class="meta-icon">
1373							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="19" height="19" viewbox="0 0 19 19"><path d="M9.43016863,13.2235931 C9.58624731,13.094699 9.7823475,13.0241935 9.98476849,13.0241935 L15.0564516,13.0241935 C15.8581553,13.0241935 16.5080645,12.3742843 16.5080645,11.5725806 L16.5080645,3.44354839 C16.5080645,2.64184472 15.8581553,1.99193548 15.0564516,1.99193548 L3.44354839,1.99193548 C2.64184472,1.99193548 1.99193548,2.64184472 1.99193548,3.44354839 L1.99193548,11.5725806 C1.99193548,12.3742843 2.64184472,13.0241935 3.44354839,13.0241935 L5.76612903,13.0241935 C6.24715123,13.0241935 6.63709677,13.4141391 6.63709677,13.8951613 L6.63709677,15.5301903 L9.43016863,13.2235931 Z M3.44354839,14.766129 C1.67980032,14.766129 0.25,13.3363287 0.25,11.5725806 L0.25,3.44354839 C0.25,1.67980032 1.67980032,0.25 3.44354839,0.25 L15.0564516,0.25 C16.8201997,0.25 18.25,1.67980032 18.25,3.44354839 L18.25,11.5725806 C18.25,13.3363287 16.8201997,14.766129 15.0564516,14.766129 L10.2979143,14.766129 L6.32072889,18.0506004 C5.75274472,18.5196577 4.89516129,18.1156602 4.89516129,17.3790323 L4.89516129,14.766129 L3.44354839,14.766129 Z" /></svg>						</span>
1374						<span class="meta-text">
1375							<a href="https://oobrien.com/2022/12/big-feed-tidyup/#respond">No Comments<span class="screen-reader-text"> on Big Feed Tidyup</span></a>						</span>
1376					</li>
1377					
1378			</ul><!-- .post-meta -->
1379
1380		</div><!-- .post-meta-wrapper -->
1381
1382		
1383	</div><!-- .entry-header-inner -->
1384
1385</header><!-- .entry-header -->
1386
1387	<div class="post-inner thin ">
1388
1389		<div class="entry-content">
1390
1391			
1392<p class="wp-block-paragraph">At the end of each year (normally between Christmas and New Year), there&#8217;s a lot to tidyup across <a href="http://bikesharemap.com/">Bike Share Map</a> (BSM), the Meddin Bike-Sharing World Map (BSWM) and the <a href="https://bikesharp.com/dashboard/">UK Shared Micromobility Dashboard</a>. This year, I&#8217;m aiming to document all the changes needed, roughly around the time that I make the changes. </p>
1393
1394
1395
1396<p class="wp-block-paragraph">Monday:</p>
1397
1398
1399
1400<ul class="wp-block-list">
1401<li>Superpedestrian (aka LINK) have unexpectedly changed their URL prefix for their GBFS feeds from https://wrangler-mds-production.herokuapp.com/gbfs/{City}/{file}.json to https://mds.linkyour.city/gbfs/[2.2/]{a2}_{city}]/{file}.json. Superpedestrian run the <a href="http://bikesharemap.com/nottinghamwind/">Nottingham escootershare</a>, the fifth largest city for the mode in the UK, so it&#8217;s good to have the <a href="https://mds.linkyour.city/gbfs/gb_nottingham/gbfs.json">live data</a> back for that. They also run various other escootershares around the world. </li>
1402
1403
1404
1405<li>A number of the UK shared e-scooter trials ended at the end of November: Slough (Neuron), Canterbury (Bird), West Bromwich (Voi) and Sunderland (Neuron) &#8211; the last due to be replaced by a new Zwings fleet but this will not now launch until the new year &#8211; a significant service gap. The Neuron systems had open GBFS feeds (as does <a href="https://bikesharemap.com/newcastleneuron/">Newcastle</a>, their last remaining UK one, although at the time of writing it is returning a 503 server error), so could be tracked live. Canterbury and West Bromwich unfortunately aren&#8217;t. I&#8217;ve stopped consuming the GBFS feed for Slough and Sunderland. </li>
1406
1407
1408
1409<li>In addition, there have been very few (if any) escooters visible on many of the Ginger systems, on their app &#8211; Milton Keynes (where they compete with Lime and TIER), Hartlepool, Scunthorpe, Whitehaven and even Middlesbrough (the first trial to launch). Only <a href="https://bikesharemap.com/chester/">Chester</a> and Great Yarmouth are still going strong. As is often the case with Ginger in particular, there is no news about this. Maybe they are just taking a Christmas/New Year break? The parking locations and zone boundaries still show in their app &#8211; but they do for Stafford too, where Ginger pulled out in late 2021. There are GBFS feeds available for <a href="https://eu-feeds.joyridecity.bike/api/v1/ginger/chester/gbfs/gbfs.json">
1409some</a> of the Ginger systems, through the Joyride white-label platform they use.</li>
1410
1411
1412
1413<li>Normally I stop consuming individual GBFS (and other API) feeds during a system&#8217;s winter closure period, however the variation with when systems reopen in the new year mean I often miss a few days (or weeks!) when they do restart, so this year I will keep consuming the empty feeds. I am gradually building a guide to indicative months that systems close and reopen, on BSWM, and will correlate this with the data seen in BSM (where available) and publish this additional static data, some time next year. </li>
1414
1415
1416
1417<li>Lincoln&#8217;s tiny Hire Bike website&#8217;s certificate has expired, apparently without the operator noticing, so I needed to skip verification of it when getting the website data. To be fair, it did expire on Christmas Day&#8230;</li>
1418
1419
1420
1421<li>Aberdeen&#8217;s Bike Issue Bikes ebikeshare finally opened in early November &#8211; perhaps with some of their bikes from their recently closed Bristol operation. I have updated the BSWM entry.</li>
1422
1423
1424
1425<li>Down the coast, the Dundee ebikeshare has gone into a longer winter hibernation this year &#8211; more of a temporary closure during a quite time of the year to improve the fleet and operations, rather than snow/ice led, although Scotland is certainly getting some weather at the moment. </li>
1426</ul>
1427<div id="wp_fb_like_button" style="margin:5px 0 5px 5px;float:right;height:26px;">
1427<script src="https://connect.facebook.net/en_US/all.js#xfbml=1"></script>
1427<fb:like href="https://oobrien.com/2022/12/big-feed-tidyup/" send="true" layout="button_count" width="500" show_faces="false" font="arial" action="like" colorscheme="light"></fb:like></div>
1428		</div><!-- .entry-content -->
1429
1430	</div><!-- .post-inner -->
1431
1432	<div class="section-inner">
1433		
1434	</div><!-- .section-inner -->
1435
1436	
1437</article><!-- .post -->
1438<hr class="post-separator styled-separator is-style-wide section-inner" aria-hidden="true" />
1439<article class="post-7559 post type-post status-publish format-standard hentry category-bike-share category-london category-openlayers category-openstreetmap category-technical" id="post-7559">
1440
1441	
1442<header class="entry-header has-text-align-center">
1443
1444	<div class="entry-header-inner section-inner medium">
1445
1446		
1447			<div class="entry-categories">
1448				<span class="screen-reader-text">
1449					Categories				</span>
1450				<div class="entry-categories-inner">
1451					<a href="https://oobrien.com/category/bike-share/" rel="category tag">Bike Share</a> <a href="https://oobrien.com/category/london/" rel="category tag">London</a> <a href="https://oobrien.com/category/openlayers/" rel="category tag">OpenLayers</a> <a href="https://oobrien.com/category/openstreetmap/" rel="category tag">OpenStreetMap</a> <a href="https://oobrien.com/category/technical/" rel="category tag">Technical</a>				</div><!-- .entry-categories-inner -->
1452			</div><!-- .entry-categories -->
1453
1454			<h2 class="entry-title heading-size-1"><a href="https://oobrien.com/2022/10/all-the-docks-technical-notes-on-the-routes-and-map/">All the Docks: Technical Notes on the Routes and Map</a></h2>
1455		<div class="post-meta-wrapper post-meta-single post-meta-single-top">
1456
1457			<ul class="post-meta">
1458
1459									<li class="post-author meta-wrapper">
1460						<span class="meta-icon">
1461							<span class="screen-reader-text">
1462								Post author							</span>
1463							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="20" viewbox="0 0 18 20"><path fill="" d="M18,19 C18,19.5522847 17.5522847,20 17,20 C16.4477153,20 16,19.5522847 16,19 L16,17 C16,15.3431458 14.6568542,14 13,14 L5,14 C3.34314575,14 2,15.3431458 2,17 L2,19 C2,19.5522847 1.55228475,20 1,20 C0.44771525,20 0,19.5522847 0,19 L0,17 C0,14.2385763 2.23857625,12 5,12 L13,12 C15.7614237,12 18,14.2385763 18,17 L18,19 Z M9,10 C6.23857625,10 4,7.76142375 4,5 C4,2.23857625 6.23857625,0 9,0 C11.7614237,0 14,2.23857625 14,5 C14,7.76142375 11.7614237,10 9,10 Z M9,8 C10.6568542,8 12,6.65685425 12,5 C12,3.34314575 10.6568542,2 9,2 C7.34314575,2 6,3.34314575 6,5 C6,6.65685425 7.34314575,8 9,8 Z" /></svg>						</span>
1464						<span class="meta-text">
1465							By <a href="https://oobrien.com/author/admin/">Oliver O&#039;Brien</a>						</span>
1466					</li>
1467										<li class="post-date meta-wrapper">
1468						<span class="meta-icon">
1469							<span class="screen-reader-text">
1470								Post date							</span>
1471							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewbox="0 0 18 19"><path fill="" d="M4.60069444,4.09375 L3.25,4.09375 C2.47334957,4.09375 1.84375,4.72334957 1.84375,5.5 L1.84375,7.26736111 L16.15625,7.26736111 L16.15625,5.5 C16.15625,4.72334957 15.5266504,4.09375 14.75,4.09375 L13.3993056,4.09375 L13.3993056,4.55555556 C13.3993056,5.02154581 13.0215458,5.39930556 12.5555556,5.39930556 C12.0895653,5.39930556 11.7118056,5.02154581 11.7118056,4.55555556 L11.7118056,4.09375 L6.28819444,4.09375 L6.28819444,4.55555556 C6.28819444,5.02154581 5.9104347,5.39930556 5.44444444,5.39930556 C4.97845419,5.39930556 4.60069444,5.02154581 4.60069444,4.55555556 L4.60069444,4.09375 Z M6.28819444,2.40625 L11.7118056,2.40625 L11.7118056,1 C11.7118056,0.534009742 12.0895653,0.15625 12.5555556,0.15625 C13.0215458,0.15625 13.3993056,0.534009742 13.3993056,1 L13.3993056,2.40625 L14.75,2.40625 C16.4586309,2.40625 17.84375,3.79136906 17.84375,5.5 L17.84375,15.875 C17.84375,17.5836309 16.4586309,18.96875 14.75,18.96875 L3.25,18.96875 C1.54136906,18.96875 0.15625,17.5836309 0.15625,15.875 L0.15625,5.5 C0.
147115625,3.79136906 1.54136906,2.40625 3.25,2.40625 L4.60069444,2.40625 L4.60069444,1 C4.60069444,0.534009742 4.97845419,0.15625 5.44444444,0.15625 C5.9104347,0.15625 6.28819444,0.534009742 6.28819444,1 L6.28819444,2.40625 Z M1.84375,8.95486111 L1.84375,15.875 C1.84375,16.6516504 2.47334957,17.28125 3.25,17.28125 L14.75,17.28125 C15.5266504,17.28125 16.15625,16.6516504 16.15625,15.875 L16.15625,8.95486111 L1.84375,8.95486111 Z" /></svg>						</span>
1472						<span class="meta-text">
1473							<a href="https://oobrien.com/2022/10/all-the-docks-technical-notes-on-the-routes-and-map/">17 October 2022</a>
1474						</span>
1475					</li>
1476										<li class="post-comment-link meta-wrapper">
1477						<span class="meta-icon">
1478							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="19" height="19" viewbox="0 0 19 19"><path d="M9.43016863,13.2235931 C9.58624731,13.094699 9.7823475,13.0241935 9.98476849,13.0241935 L15.0564516,13.0241935 C15.8581553,13.0241935 16.5080645,12.3742843 16.5080645,11.5725806 L16.5080645,3.44354839 C16.5080645,2.64184472 15.8581553,1.99193548 15.0564516,1.99193548 L3.44354839,1.99193548 C2.64184472,1.99193548 1.99193548,2.64184472 1.99193548,3.44354839 L1.99193548,11.5725806 C1.99193548,12.3742843 2.64184472,13.0241935 3.44354839,13.0241935 L5.76612903,13.0241935 C6.24715123,13.0241935 6.63709677,13.4141391 6.63709677,13.8951613 L6.63709677,15.5301903 L9.43016863,13.2235931 Z M3.44354839,14.766129 C1.67980032,14.766129 0.25,13.3363287 0.25,11.5725806 L0.25,3.44354839 C0.25,1.67980032 1.67980032,0.25 3.44354839,0.25 L15.0564516,0.25 C16.8201997,0.25 18.25,1.67980032 18.25,3.44354839 L18.25,11.5725806 C18.25,13.3363287 16.8201997,14.766129 15.0564516,14.766129 L10.2979143,14.766129 L6.32072889,18.0506004 C5.75274472,18.5196577 4.89516129,18.1156602 4.89516129,17.3790323 L4.89516129,14.766129 L3.44354839,14.766129 Z" /></svg>						</span>
1479						<span class="meta-text">
1480							<a href="https://oobrien.com/2022/10/all-the-docks-technical-notes-on-the-routes-and-map/#comments">3 Comments<span class="screen-reader-text"> on All the Docks: Technical Notes on the Routes and Map</span></a>						</span>
1481					</li>
1482					
1483			</ul><!-- .post-meta -->
1484
1485		</div><!-- .post-meta-wrapper -->
1486
1487		
1488	</div><!-- .entry-header-inner -->
1489
1490</header><!-- .entry-header -->
1491
1492	<div class="post-inner thin ">
1493
1494		<div class="entry-content">
1495
1496			
1497<figure class="wp-block-image size-full"><a href="https://oobrien.com/wordpress/wp-content/uploads/2022/10/routing.png"><img loading="lazy" decoding="async" width="847" height="662" src="https://oobrien.com/wordpress/wp-content/uploads/2022/10/routing.png" alt="" class="wp-image-7746" srcset="https://oobrien.com/wordpress/wp-content/uploads/2022/10/routing.png 847w, https://oobrien.com/wordpress/wp-content/uploads/2022/10/routing-300x234.png 300w, https://oobrien.com/wordpress/wp-content/uploads/2022/10/routing-768x600.png 768w" sizes="auto, (max-width: 847px) 100vw, 847px" /></a></figure>
1498
1499
1500
1501<h2 class="wp-block-heading">Routes</h2>
1502
1503
1504
1505<p class="wp-block-paragraph">I created GPX route files for the challenge. These were created manually in QGIS, using the OpenStreetMap standard &#8220;Mapnik&#8221; render as a background, by drawing lines, with Google Street View imagery used to check restrictions.  </p>
1506
1507
1508
1509<p class="wp-block-paragraph">I split each team&#8217;s route into 12 stages (so 36 altogether), which were initially each just over 10km and ended at a docking station. Each stage contained between 10 and 40 sequential legs to docking stations. I&#8217;m not sure I would trust proper routing engines (based on Google Maps or OpenStreetMap, normally) to have found better routes on each leg between each docking station, than me and Google Street View, largely because many London boroughs have been experimenting a lot recently with Low Traffic Neighbourhoods (LTNs) and modal filters (e.g. two way for bikes/one way for cars). But I did run a TSP solver (RouteXL) on 3 of the stages and in 2 cases it did find a slightly shorter ordering of the legs, within the stage. So I would probably use a TSP solver more for a future iteration of the challenge. </p>
1510
1511
1512
1513<p class="wp-block-paragraph">The three route/team files were saved in British National Grid <a href="https://github.com/oobrien/allthedocks/tree/main/construction">(EPSG27700) GeoJSONs</a> (technically not allowed by the spec) so I could get proper metre distances ($length) auto-updated into a column, for each stage, during planning. The stages had a number column, and were numbered sequentially. Having a number column results in LineStrings in the GeoJSONs and GPX routes/routepoints rather than single MultiLineStrings and GPX tracks/trackpoints. They were then saved as <a href="https://github.com/oobrien/allthedocks/blob/main/allthedocks_E.gpx">WGS84 GPX files</a>. I (mis-)used a very limited set of column names (name, number, src, desc, cmt), due to the restrictions with the GPX specification &#8211; I didn&#8217;t want to use GPX extensions. </p>
1514
1515
1516
1517<p class="wp-block-paragraph">It was important to have three separate GPX files so that each team would need to load in just a single file to their navigation device and not see docking stations/routes from other teams). But it did make preparations a bit harder for the online map. </p>
1518
1519
1520
1521<p class="wp-block-paragraph">The docking stations were imported in <a href="https://github.com/oobrien/allthedocks/blob/main/allthedocks_list.tsv">via a TSV file</a>, then saved as GPX waypoints (column names again restricted to src, desc, name, and cmt), and the relevant ones were manually appended to the GPX team files. The GeoJSONs were retained as my master editing files, as QGIS cannot easily edit GPX files due to them containing multiple geometry types.  </p>
1522
1523
1524
1525<p class="wp-block-paragraph">I would certainly like to try a more automated approach to the routing. It did take a substantial amount of time &#8211; probably two evenings for each of the three routes, and a further evening for each route to enumerate the docking stations, fine-tune the routes and reorder any sliced up GeoJSON LineString segments (part-stages) back into the correct sequence. The reordering was needed as QGIS would incorrectly reorder parts of the route that crossed over itself, when it was sliced up. </p>
1526
1527
1528
1529<p class="wp-block-paragraph">But an automated approach would require a method that deals with docking stations that are just 10m down a no-entry street (so you&#8217;d just walk it), which is hard. Currently they are represented as a point defined by TfL through their API (and separately in OpenStreetMap) which may be the location of the &#8220;totem pole&#8221; kiosk but not the docking points themselves. In routing or GIS systems, the docking station needs to be represented as an area (within which you would walk the bikes) plus a (multi-)line (representing the line of dock points &#8211; some of these are quite long &#8211; some have significant gaps, and sometimes they are split on either side of a road). Potentially, the point representing a docking station really needs to be an area, and that area can extend up to the nearby road junction to deal with the one-way issue. </p>
1530
1531
1532
1533<h3 class="wp-block-heading">Future Improvements</h3>
1534
1535
1536
1537<p class="wp-block-paragraph">In terms of the general design, a few things could be changed for a future challenge (some of these I mentioned in my previous blog post):</p>
1538
1539
1540
1541<ul class="wp-block-list"><li>Ensuring that participants are well away from the finish at around the 60-80% stage, so that they are less likely to bail at that difficult time of the day, because the remainder of the challenge is then a kind of &#8220;run in&#8221;
1541 to the finish, rather than routing them away at a late stage. </li><li>When participants pass by another docking station twice, they should visit it on the first occasion, not the second time. (An exception is when it is on the wrong side of a dual carriageway, particularly one with a median barrier). Otherwise there is a danger of it being missed on the return. </li><li>Build specific meal stops in.</li><li>Maximum of 200 docking stations/10 hours per team. </li></ul>
1542
1543
1544
1545<h2 class="wp-block-heading">The Web Map</h2>
1546
1547
1548
1549<figure class="wp-block-image size-full"><a href="https://oobrien.com/wordpress/wp-content/uploads/2022/10/ticking.png"><img loading="lazy" decoding="async" width="837" height="605" src="https://oobrien.com/wordpress/wp-content/uploads/2022/10/ticking.png" alt="" class="wp-image-7750" srcset="https://oobrien.com/wordpress/wp-content/uploads/2022/10/ticking.png 837w, https://oobrien.com/wordpress/wp-content/uploads/2022/10/ticking-300x217.png 300w, https://oobrien.com/wordpress/wp-content/uploads/2022/10/ticking-768x555.png 768w" sizes="auto, (max-width: 837px) 100vw, 837px" /></a></figure>
1550
1551
1552
1553<p class="wp-block-paragraph">By comparison, building the web map was straightforward, probably just one evening&#8217;s work to build the map page itself as a basic OpenLayers map reading in GPX files and with simple browser-based geolocation, and one further evening to build a &#8220;team&#8221; version of the map that allowed ticking off the stations, the action being stored in a database, and a time string echoed back to the web map (and other viewers, on a Javascript timer) as confirmation. The database had two tables, a summary table with a row per docking station, and an action log which recorded the dock&#8217;s TfL ID, timestamp, event type and the submitter&#8217;s browser user agent string ($_SERVER[&#8216;HTTP_USER_AGENT&#8217;]) in lieu of logins/IDs. It was fairly easy to assign a manually assign each user agent to team, post-event. </p>
1554
1555
1556
1557<p class="wp-block-paragraph">Each docking station ended up with 4 identifiers which feels a bit too many, but it kind of made sense: </p>
1558
1559
1560
1561<ul class="wp-block-list"><li>an integer TfL ID (e.g. 761)</li><li>the TfL Name that appears on the totem pole (e.g. Gower Place, Bloomsbury)</li><li>a shortcode which was the sequence number and the initials of the first part of the TfL Name (e.g. 37.GP). There were some duplicates across the team. FIN.HS was a special shortcode for the finish for the two teams that didn&#8217;t have that as a docking station in their &#8220;zone&#8221;. One newly added docking station had &#8220;A&#8221; appended to the sequence number of the previous, rather than having to renumber everything.</li><li>a unique sequence code which was the team, stage and docking station order within that stage, (e.g. W02.15). This was used as a logical ordering of the file and to help with assigning each docking station to its stage on the online map.</li></ul>
1562
1563
1564
1565<p class="wp-block-paragraph">I also listed an &#8220;actual sequence&#8221; post-event ordering, e.g. W038, in the <a href="https://github.com/oobrien/allthedocks/blob/main/results.csv">final results file</a>. </p>
1566
1567
1568
1569<p class="wp-block-paragraph">I could have used the sequence code on the map but felt the shortcode was the most useful concise way of identifying each station to the team as they approached it, and hopefully the simple number would result in any missing out being spotted quickly.</p>
1570
1571
1572
1573<figure class="wp-block-image size-full"><a href="https://oobrien.com/wordpress/wp-content/uploads/2022/10/diff.png"><img loading="lazy" decoding="async" width="701" height="544" src="https://oobrien.com/wordpress/wp-content/uploads/2022/10/diff.png" alt="" class="wp-image-7748" srcset="https://oobrien.com/wordpress/wp-content/uploads/2022/10/diff.png 701w, https://oobrien.com/wordpress/wp-content/uploads/2022/10/diff-300x233.png 300w" sizes="auto, (max-width: 701px) 100v
1573w, 701px" /></a></figure>
1574
1575
1576
1577<p class="wp-block-paragraph">I built a special &#8220;diff&#8221; webpage  that compares our docks file with the live data (via BikeShareMap) every 2 minutes and this alerted us of any new, closed or zero-capacity docking stations, plus a list of full ones. There was one that opened a few days before, but none on the day, thankfully!</p>
1578
1579
1580
1581<h3 class="wp-block-heading">Future Improvements</h3>
1582
1583
1584
1585<p class="wp-block-paragraph">I do think that using fewer intermediate routing points on each leg would be better and would allow for turn-by-turn satnav directions. Having said that, having street names called out is of limited use as they are often hard to spot on the ground, so the breadcrumb trail approach we used worked well.</p>
1586
1587
1588
1589<p class="wp-block-paragraph">We had paper maps (just screenshots of the website) as a backup. I never used them, and I think Team South used the website. Team West used them exclusively, with a separate person using the website to tick off.</p>
1590
1591
1592
1593<p class="wp-block-paragraph">I would have liked to have had a single source of docking station locations. In the end, they were:</p>
1594
1595
1596
1597<ol class="wp-block-list"><li> on TfL&#8217;s API, which is fed through to a CSV on BikeShareMap every two minutes, </li><li>on a CSV file on Github, </li><li>as GPX waypoints appended to each team&#8217;s GPX routes file, and </li><li>in my database for recording times on the ATDMap website. </li></ol>
1598
1599
1600
1601<p class="wp-block-paragraph">1 and 2 were automatically compared (see above), 2 could be added to QGIS to compare and generate GPX for 3, and also imported into the database table (4) but this would all be manual steps.</p>
1602
1603
1604
1605<h2 class="wp-block-heading">Links</h2>
1606
1607
1608
1609<p class="wp-block-paragraph">Website map with the timings: <a href="https://misc.oomap.co.uk/atdmap/">https://misc.oomap.co.uk/atdmap/ </a></p>
1610
1611
1612
1613<p class="wp-block-paragraph">Route GPX files and timings CSV: <a href="https://github.com/oobrien/allthedocks">https://github.com/oobrien/allthedocks</a></p>
1614
1615
1616
1617<p class="wp-block-paragraph">Strava link (Team East): <a href="https://www.strava.com/activities/7908548122">https://www.strava.com/activities/7908548122</a></p>
1618
1619
1620
1621<p class="wp-block-paragraph"></p>
1622<div id="wp_fb_like_button" style="margin:5px 0 5px 5px;float:right;height:26px;">
1622<script src="https://connect.facebook.net/en_US/all.js#xfbml=1"></script>
1622<fb:like href="https://oobrien.com/2022/10/all-the-docks-technical-notes-on-the-routes-and-map/" send="true" layout="button_count" width="500" show_faces="false" font="arial" action="like" colorscheme="light"></fb:like></div>
1623		</div><!-- .entry-content -->
1624
1625	</div><!-- .post-inner -->
1626
1627	<div class="section-inner">
1628		
1629	</div><!-- .section-inner -->
1630
1631	
1632</article><!-- .post -->
1633<hr class="post-separator styled-separator is-style-wide section-inner" aria-hidden="true" />
1634<article class="post-7492 post type-post status-publish format-standard hentry category-bike-share category-london" id="post-7492">
1635
1636	
1637<header class="entry-header has-text-align-center">
1638
1639	<div class="entry-header-inner section-inner medium">
1640
1641		
1642			<div class="entry-categories">
1643				<span class="screen-reader-text">
1644					Categories				</span>
1645				<div class="entry-categories-inner">
1646					<a href="https://oobrien.com/category/bike-share/" rel="category tag">Bike Share</a> <a href="https://oobrien.com/category/london/" rel="category tag">London</a>				</div><!-- .entry-categories-inner -->
1647			</div><!-- .entry-categories -->
1648
1649			<h2 class="entry-title heading-size-1"><a href="https://oobrien.com/2022/10/all-the-docks-how-it-went/">All the Docks: How it Went</a></h2>
1650		<div class="post-meta-wrapper post-meta-single post-meta-single-top">
1651
1652			<ul class="post-meta">
1653
1654									<li class="post-author meta-wrapper">
1655						<span class="meta-icon">
1656							<span class="screen-reader-text">
1657								Post author							</span>
1658							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="20" viewbox="0 0 18 20"><path fill="" d="M18,19 C18,19.5522847 17.5522847,20 17,20 C16.4477153,20 16,19.5522847 16,19 L16,17 C16,15.3431458 14.6568542,14 13,14 L5,14 C3.34314575,14 2,15.3431458 2,17 L2,19 C2,19.5522847 1.55228475,20 1,20 C0.44771525,20 0,19.5522847 0,19 L0,17 C0,14.2385763 2.23857625,12 5,12 L13,12 C15.7614237,12 18,14.2385763 18,17 L18,19 Z M9,10 C6.23857625,10 4,7.76142375 4,5 C4,2.23857625 6.23857625,0 9,0 C11.7614237,0 14,2.23857625 14,5 C14,7.76142375 11.7614237,10 9,10 Z M9,8 C10.6568542,8 12,6.65685425 12,5 C12,3.34314575 10.6568542,2 9,2 C7.34314575,2 6,3.34314575 6,5 C6,6.65685425 7.34314575,8 9,8 Z" /></svg>						</span>
1659						<span class="meta-text">
1660							By <a href="https://oobrien.com/author/admin/">Oliver O&#039;Brien</a>						</span>
1661					</li>
1662										<li class="post-date meta-wrapper">
1663						<span class="meta-icon">
1664							<span class="screen-reader-text">
1665								Post date							</span>
1666							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewbox="0 0 18 19"><path fill="" d="M4.60069444,4.09375 L3.25,4.09375 C2.47334957,4.09375 1.84375,4.72334957 1.84375,5.5 L1.84375,7.26736111 L16.15625,7.26736111 L16.15625,5.5 C16.15625,4.72334957 15.5266504,4.09375 14.75,4.09375 L13.3993056,4.09375 L13.3993056,4.55555556 C13.3993056,5.02154581 13.0215458,5.39930556 12.5555556,5.39930556 C12.0895653,5.39930556 11.7118056,5.02154581 11.7118056,4.55555556 L11.7118056,4.09375 L6.28819444,4.09375 L6.28819444,4.55555556 C6.28819444,5.02154581 5.9104347,5.39930556 5.44444444,5.39930556 C4.97845419,5.39930556 4.60069444,5.02154581 4.60069444,4.55555556 L4.60069444,4.09375 Z M6.28819444,2.40625 L11.7118056,2.40625 L11.7118056,1 C11.7118056,0.534009742 12.0895653,0.15625 12.5555556,0.15625 C13.0215458,0.15625 13.3993056,0.534009742 13.3993056,1 L13.3993056,2.40625 L14.75,2.40625 C16.4586309,2.40625 17.84375,3.79136906 17.84375,5.5 L17.84375,15.875 C17.84375,17.5836309 16.4586309,18.96875 14.75,18.96875 L3.25,18.96875 C1.54136906,18.96875 0.15625,17.5836309 0.15625,15.875 L0.15625,5.5 C0.
166615625,3.79136906 1.54136906,2.40625 3.25,2.40625 L4.60069444,2.40625 L4.60069444,1 C4.60069444,0.534009742 4.97845419,0.15625 5.44444444,0.15625 C5.9104347,0.15625 6.28819444,0.534009742 6.28819444,1 L6.28819444,2.40625 Z M1.84375,8.95486111 L1.84375,15.875 C1.84375,16.6516504 2.47334957,17.28125 3.25,17.28125 L14.75,17.28125 C15.5266504,17.28125 16.15625,16.6516504 16.15625,15.875 L16.15625,8.95486111 L1.84375,8.95486111 Z" /></svg>						</span>
1667						<span class="meta-text">
1668							<a href="https://oobrien.com/2022/10/all-the-docks-how-it-went/">6 October 2022</a>
1669						</span>
1670					</li>
1671										<li class="post-comment-link meta-wrapper">
1672						<span class="meta-icon">
1673							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="19" height="19" viewbox="0 0 19 19"><path d="M9.43016863,13.2235931 C9.58624731,13.094699 9.7823475,13.0241935 9.98476849,13.0241935 L15.0564516,13.0241935 C15.8581553,13.0241935 16.5080645,12.3742843 16.5080645,11.5725806 L16.5080645,3.44354839 C16.5080645,2.64184472 15.8581553,1.99193548 15.0564516,1.99193548 L3.44354839,1.99193548 C2.64184472,1.99193548 1.99193548,2.64184472 1.99193548,3.44354839 L1.99193548,11.5725806 C1.99193548,12.3742843 2.64184472,13.0241935 3.44354839,13.0241935 L5.76612903,13.0241935 C6.24715123,13.0241935 6.63709677,13.4141391 6.63709677,13.8951613 L6.63709677,15.5301903 L9.43016863,13.2235931 Z M3.44354839,14.766129 C1.67980032,14.766129 0.25,13.3363287 0.25,11.5725806 L0.25,3.44354839 C0.25,1.67980032 1.67980032,0.25 3.44354839,0.25 L15.0564516,0.25 C16.8201997,0.25 18.25,1.67980032 18.25,3.44354839 L18.25,11.5725806 C18.25,13.3363287 16.8201997,14.766129 15.0564516,14.766129 L10.2979143,14.766129 L6.32072889,18.0506004 C5.75274472,18.5196577 4.89516129,18.1156602 4.89516129,17.3790323 L4.89516129,14.766129 L3.44354839,14.766129 Z" /></svg>						</span>
1674						<span class="meta-text">
1675							<a href="https://oobrien.com/2022/10/all-the-docks-how-it-went/#comments">6 Comments<span class="screen-reader-text"> on All the Docks: How it Went</span></a>						</span>
1676					</li>
1677					
1678			</ul><!-- .post-meta -->
1679
1680		</div><!-- .post-meta-wrapper -->
1681
1682		
1683	</div><!-- .entry-header-inner -->
1684
1685</header><!-- .entry-header -->
1686
1687	<div class="post-inner thin ">
1688
1689		<div class="entry-content">
1690
1691			
1692<figure class="wp-block-image size-full"><a href="https://oobrien.com/wordpress/wp-content/uploads/2022/10/regentscanal2_crop.jpg"><img loading="lazy" decoding="async" width="1124" height="1141" src="https://oobrien.com/wordpress/wp-content/uploads/2022/10/regentscanal2_crop.jpg" alt="" class="wp-image-7556" srcset="https://oobrien.com/wordpress/wp-content/uploads/2022/10/regentscanal2_crop.jpg 1124w, https://oobrien.com/wordpress/wp-content/uploads/2022/10/regentscanal2_crop-296x300.jpg 296w, https://oobrien.com/wordpress/wp-content/uploads/2022/10/regentscanal2_crop-1009x1024.jpg 1009w, https://oobrien.com/wordpress/wp-content/uploads/2022/10/regentscanal2_crop-768x780.jpg 768w" sizes="auto, (max-width: 1124px) 100vw, 1124px" /></a></figure>
1693
1694
1695
1696<p class="wp-block-paragraph">On Monday I spent a lot of time (over 13 hours) cycling between 268 docking stations in London. It was for the <a href="https://oobrien.com/2022/09/all-the-docks/">All the Docks challenge</a>, as part of Team East, with Joe (Be.EV CCO, and ex-ofo) and Jeyda (fettle CEO). There was also an all-stars Team West and Team South (including Voi, TIER, Zwings, and CoMoUK people &#8211; see <a href="https://stephenhbee.medium.com/all-the-docks-db32a7032144">this blog post</a> for the announcement), and, across the three teams, we aimed to visit all the docking stations in London in a day. </p>
1697
1698
1699
1700<figure class="wp-block-image size-full"><a href="https://oobrien.com/wordpress/wp-content/uploads/2022/10/donedocks.jpg"><img loading="lazy" decoding="async" width="1004" height="689" src="https://oobrien.com/wordpress/wp-content/uploads/2022/10/donedocks.jpg" alt="" class="wp-image-7650" srcset="https://oobrien.com/wordpress/wp-content/uploads/2022/10/donedocks.jpg 1004w, https://oobrien.com/wordpress/wp-content/uploads/2022/10/donedocks-300x206.jpg 300w, https://oobrien.com/wordpress/wp-content/uploads/2022/10/donedocks-768x527.jpg 768w" sizes="auto, (max-width: 1004px) 100vw, 1004px" /></a><figcaption>Black = done. Green = not done. From the <a href="https://misc.oomap.co.uk/atdmap/">web map</a>.</figcaption></figure>
1701
1702
1703
1704<h2 class="wp-block-heading"><strong>Team East: By the numbers</strong></h2>
1705
1706
1707
1708<ul class="wp-block-list"><li><strong>Three</strong> challengers: two on Santander Cycles (one docking at every point) and one on their own bike with navigation mount. </li><li>Started at <strong>08:51</strong>, after getting breakfast nearby.</li><li><strong>Two</strong> stops for food (at 13:30 and 20:15) plus a shorter stop to buy snacks (at 16:30). </li><li><strong>Three</strong> lifts (which weren&#8217;t big enough for three bikes!)</li><li>Finished at <strong>22:21</strong> &#8211; 13.5 hours later</li><li>GPS says <strong>119km</strong> although it added a lot 0f noise around Canary Wharf and a few other places, so I think the actual distance was more like ~113km. 
1708</li><li><strong>268</strong> docks visited (the 266 assigned to Team East, plus the common finish docking station, plus a short bonus leg to the docking station outside the finish pub).</li><li>This works out as visiting a docking station, on average, almost exactly <strong>every 3 minutes</strong>, for 13.5 hours.  </li></ul>
1709
1710
1711
1712<figure class="wp-block-image size-full"><a href="https://oobrien.com/wordpress/wp-content/uploads/2022/10/allthedocks_east.jpg"><img loading="lazy" decoding="async" width="883" height="719" src="https://oobrien.com/wordpress/wp-content/uploads/2022/10/allthedocks_east.jpg" alt="" class="wp-image-7553" srcset="https://oobrien.com/wordpress/wp-content/uploads/2022/10/allthedocks_east.jpg 883w, https://oobrien.com/wordpress/wp-content/uploads/2022/10/allthedocks_east-300x244.jpg 300w, https://oobrien.com/wordpress/wp-content/uploads/2022/10/allthedocks_east-768x625.jpg 768w" sizes="auto, (max-width: 883px) 100vw, 883px" /></a><figcaption>Team East&#8217;s <a href="https://www.strava.com/activities/7908548122">actual route</a>, on Strava.</figcaption></figure>
1713
1714
1715
1716<h2 class="wp-block-heading"><strong>What went wrong</strong></h2>
1717
1718
1719
1720<ul class="wp-block-list"><li>It did take a bit <strong>longer</strong> than predicted. The target time had been 12 hours (11.5 hours + 30 minutes in breaks) and our average moving speed of 11.9kph was quite close to the 12.5kph in a prediction algorithm I put together. The two hour difference was due to food stops and comfort breaks (75 minutes in total), along with that 0.6kph speed difference (30 minutes extra) and the three legs we I had to jog (15 minutes). Our dock/undock speed got pretty good after Joe (who did 80% of the docks/undocks) got into a rhythm.</li><li>My personal bike (which I had planned to ride as a support to the team leader on the bikeshare bike, to do the navigation) had a <strong>flat tyre</strong> right at the start, which meant I had to hop on a Santander Cycles bike for the entire route. I had a big freak-out when I discovered this (no bike shops in Westfield Stratford City, challenge starting in half an hour) but it was OK in the end &#8211; I bought a £20 monthly membership in the app, on the spot, and the ride was more comfortable than I expected, but it did mean I needed to keep fishing my phone in and out of pockets at every docking station.</li><li>I also twice forgot to dock at least <strong>once an hour</strong>, twice, so got two £1.65 overage charges). </li><li>A result of my phone (<a href="https://misc.oomap.co.uk/atdmap/">with map</a>) not being mounted on my bike, was I was constantly <strong>pocket-tapping</strong> the team version of the map as I kept grabbing my phone. This mean I kept ticking off other teams&#8217; docking stations by mistake, particularly Team West&#8217;s list. The team version needed a UX tweak so the checkboxes&#8217; labels were not tickable, or have separate tick-pages for each team. </li><li>The only significant <strong>routing error</strong> was at <a href="https://www.google.co.uk/maps/@51.5056949,-0.0158117,3a,75y,257.46h,102.55t/data=!3m8!1e1!3m6!1sAF1QipNyiTQpa8DllicCM4tvvA5ezJliulZYjuX4EIZ7!2e10!3e11!6shttps:%2F%2Flh5.googleusercontent.com%2Fp%2FAF1QipNyiTQpa8DllicCM4tvvA5ezJliulZYjuX4EIZ7%3Dw203-h100-k-no-pi-1.2228801-ya33.378494-ro-0.88592476-fo100!7i6720!8i3360">Import Dock in Canary Wharf</a> (no regular Google Street View allowed there, so I couldn&#8217;t see in advance) where we ended up at road level, but the docking station was below us, at water level. Taking the bikes down an escalator in the new Crossrail/Elizabeth line station, got us to where we wanted to be.</li><li>Proper <strong>food stops</strong> need to be built in to the schedule, rather than hoping we accrue time and then spend it when we need it. We got hungry in places were there weren&#8217;t any quick eateries. </li><li>Three legs had to be <strong>jogged</strong> by some rather than cycled by all, due to infrastructure problems, although we still docked or undocked at each. At the first one, both Joe&#8217;s keys stopped operating and the dock was full so I couldn&#8217;t dock (with my third account) either. So I cycled to the next docking station, docked, ran back and undocked. A later problem dock wouldn&#8217;t release any bikes so I handed mine over and jogged to the next station to get another one. Finally, three from the end, the terminal disconnected after docking successfully, so I ran back to the previous one and went from there to the penultimate one.</li><li>One or both of our pair of keys got temporarily <strong>blocked</strong> several times. With one blocked, using the other, single key resulted in a mandatory 30-second delay before you are allowed to start another journey. Each time, a call to Santander Cycles support fixed the blocked key quickly. Santander Cycles does have a responsive and effective telephone support operation.</li><li>One docking station appeared to have been <strong>vandalised</strong>, with the &#8220;slot&#8221; on most docks crushed so that the bike couldn&#8217;t be docked. Eventually we managed to find one where we could squeeze it in.</li><li>Routing people near the finish, then up a hill and away, 10 hours in to the challenge, is <strong>demotivating</strong>, and coupled with the late time, I think this is what made Team West&#8217;s decision for them. A long, clear run into the finish line without big loops away, is preferable! In general, my design for West and East was a long wiggly route up and down, towards the finish, from the outermost parts of the network. By contrast, Team South went near the finish quite early on, before a long tour out to Putney, finally coming back along the river, back into town. I think this latter overall shape of the route probably is better for keeping people going to the end.</li><li>A few of awkward <strong>wrong-side-of-road</strong> docking stations on dual carriageways had to be visited, although generally with traffic lights, we got across OK. The worst link was a short section of The Highway followed by a right turn. This is a horrible road, and the others in Team East took the pavement instead (but were further encumbered by barriers left up from the London Marathon the day before). In retrospect, a walk-bikes route back across a new private development&#8217;s plaza would have been better. </li><li>A few <strong>roadworks</strong> made getting to some docking stations tricky. In the end, Team East had four blocked links &#8211; resurfacing by the Orbit sculpture in the Queen Elizabeth Olympic Park (where we just cycled through the construction site), park re-modelling in Shoreditch Park (which necessitated using park paths to get around it), Angel Street was closed for building construction (so we went through Postman&#8217;s Park instead) and finally St Bride&#8217;s Street was completely blocked for resurfacing, but the Poppin&#8217;s Court tiny alley diversion was a lot of fun. </li><li>The <strong>low point</strong> was at around 7pm, as the sun set, calculations suggested all three teams were well behind a nominal 9pm finish, and it looked like we would have to bail to make it to the pub. There was also some concern about what it would be like doing this kind of frantic point-to-point riding at night in London traffic, with tired legs, although in the end the traffic levels died down quickly after rush-hour. We also hadn&#8217;t had dinner and a proposed food stop at Angel was still 90 minutes away. A conference call between teams was held and a final decision at 9pm would be taken.</li><li>We approached the Somers Town Bridge at around its historic 9pm <strong>closing</strong> time (not sure if it actually does still close) so decided to take a long diversion around.</li><li>In the end, just after 9pm, we passed by our team lead&#8217;s home (25 from the end) and, with one eye on a very early start the following day, he opted to <strong>stop</strong> there. Team West had already quit and were arriving at the pub. Team South decided to double down and keep going. Their final stage along the spectacular Embankment at night, <a href="https://twitter.com/Gyexley/status/1577048221485965312?ref_src=twsrc%5Etfw">with views across the Thames</a>, may have helped with their decision! We carried on for a final section around King&#8217;s Cross and, in the end, quite quickly down to the finish at LSE.</li></ul>
1721
1722
1723<div class="wp-block-image">
1724<figure class="aligncenter size-full"><a href="https://oobrien.com/wordpress/wp-content/uploads/2022/10/e12end.jpg"><img loading="lazy" decoding="async" width="934" height="926" src="https://oobrien.com/wordpress/wp-content/uploads/2022/10/e12end.jpg" alt="" class="wp-image-7583" srcset="https://oobrien.com/wordpress/wp-content/uploads/2022/10/e12end.jpg 934w, https://oobrien.com/wordpress/wp-content/uploads/2022/10/e12end-300x297.jpg 300w, https://oobrien.com/wordpress/wp-content/uploads/2022/10/e12end-150x150.jpg 150w, https://oobrien.com/wordpress/wp-content/uploads/2022/10/e12end-768x761.jpg 768w" sizes="auto, (max-width: 934px) 100vw, 934px" /></a></figure>
1725</div>
1726
1727
1728<h2 class="wp-block-heading"><strong>What went well</strong></h2>
1729
1730
1731
1732<ul class="wp-block-list"><li>By and large my <strong>manual routes </strong>worked pretty well. For Team East, there were only a couple of banned turns and one wrong-way street encountered, easily fixable on-the-fly. The teams were pretty happy with my routes, which is good! </li><li>Careful <strong>planning</strong> tried to minimise the number of docking stations on the other side of busy roads, even if this slightly lengthened the route. </li><li>I was pleased I could include some of London&#8217;s best cycle <strong>
1732infrastructure</strong> without lengthening the routes. The Olympic Park, Victoria Park, Regent&#8217;s Park, Hyde Park, Kensington Gardens, Lower Thames Street and Victoria Embankment (CS3). It was nice, on the day, to unexpectedly discover some of London&#8217;s newer protected cycling infrastructure on roads I knew well from pre-protected days. </li><li>After a while, we honed our docking/undocking <strong>technique</strong> and Joe got it down to around 15 seconds. Every 10 seconds saved per dock is 45 minutes saved on the challenge as a whole. </li><li>Considering the amount of docking/undocking operations we did, we had very <strong>few failed</strong> locks/unlocks or disconnected terminals. </li><li>My gadget <strong>batteries</strong> worked out OK. My old Garmin GPS wristwatch lasted 9.5 hours (albeit with no HR or Bluetooth), and then the last bit of route recording was done directly on my phone using Strava in the background. I only used GPS on my phone sparingly, to occasionally locate myself on the web page, but after 11.5 hours my phone&#8217;s battery had got down from 95% to 3% so I kept it plugged into a power bank on a cable, for the remainder, and it was fine. Jeyda&#8217;s Wahoo&#8217;s battery was absolutely fine throughout.</li><li>We did visit <strong>all</strong> 268 docking stations, even if it took us nearly two hours longer than planned. </li><li>We all stayed in <strong>good spirits</strong> as a team, and generally stuck together, although we did split up a bit near the end as different people drove forward to keep the pace going. </li><li>I thought we might need an operations person at a desk, checking for changes, handling social media and directing/motivating teams, but actually it worked fine with <strong>everyone on a bike</strong>. </li><li>We crossed the finish feeling <strong>fine</strong> &#8211; it&#8217;s the day after that I felt shattered.</li></ul>
1733
1734
1735
1736<figure class="wp-block-image size-large"><a href="https://oobrien.com/wordpress/wp-content/uploads/2022/10/bricklane_crop.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://oobrien.com/wordpress/wp-content/uploads/2022/10/bricklane_crop-1024x768.jpg" alt="" class="wp-image-7564" srcset="https://oobrien.com/wordpress/wp-content/uploads/2022/10/bricklane_crop-1024x768.jpg 1024w, https://oobrien.com/wordpress/wp-content/uploads/2022/10/bricklane_crop-300x225.jpg 300w, https://oobrien.com/wordpress/wp-content/uploads/2022/10/bricklane_crop-768x576.jpg 768w, https://oobrien.com/wordpress/wp-content/uploads/2022/10/bricklane_crop.jpg 1198w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
1737
1738
1739
1740<h2 class="wp-block-heading"><strong>Notes for a next time</strong></h2>
1741
1742
1743
1744<ul class="wp-block-list"><li>General consensus in the pub was that having <strong>four teams </strong>(N, E, S, W) doing around 200 docking stations each, would be more fun and would allow more pub time, food time etc. Team West ended their challenge after around 200 docking stations when it was clear they would struggle to get to the pub before closing time if they continued (and as they had to loop away from near finish at that point). Team South made it just after last orders so Team West bought a round for them in advance. But a decent length social after such an exhausting day is important.</li><li>Finishing at the docking station <strong>outside the pub</strong> would have been better (I had decided against it because the distances across the three teams wouldn&#8217;t have matched as well).</li><li>Hopping <strong>on and off</strong> the bike for each dock gets tiring. Particularly as so many of the docking stations are on pavements and facing away from the road, resulting in many kerb hops, jolts and awkward manoeuvres. Possibly alternating the docking between two leads would make this better?</li><li>You definitely need one person to have a <strong>bike-mounted </strong>smartphone or navigation device (Jeyda&#8217;s Wahoo device worked pretty well) to do efficient navigation on a mounted stand rather than in/out of pocket.</li><li>Having <strong>two keys</strong> (on two accounts) is essential. As well as cutting down the dock/undock time, it can deal with full docking stations. </li><li>
1744Santander Cycles finally launched <strong>electric</strong> bikes into their fleet, a few days after our challenge. These would be good for support riders, if too expensive for the lead rider (£1 surcharge per leg!)</li><li>I/we would definitely invite people to <strong>accompany</strong> us for a stage or a few legs. We did have Ilma from Fettle along for the City of London legs which was motivating (and she filmed <a href="https://www.instagram.com/p/CjTKQCJjue3/?hl=en">a mini-movie/montage of us</a>)</li><li>I&#8217;m glad we missed the morning <strong>rush-hour</strong> and the evening rush-hour while we were in the City was pretty intense too.</li><li>Some <strong>routing tweaks </strong>would be good. See a future blog post here for some technical details on how it was routed and how it could be made better. </li><li>Finally, I think the mapping/recording could be <strong>automated</strong> more. I liked my live-updating map, it was the result of a few evening&#8217;s simple Javascript coding, but there&#8217;s definitely more that I could do  &#8211; leaderboards, current location pin, ETAs etc. </li></ul>
1745
1746
1747<div class="wp-block-image">
1748<figure class="aligncenter size-full"><a href="https://oobrien.com/wordpress/wp-content/uploads/2022/10/theapp.jpg"><img loading="lazy" decoding="async" width="540" height="1200" src="https://oobrien.com/wordpress/wp-content/uploads/2022/10/theapp.jpg" alt="" class="wp-image-7668" srcset="https://oobrien.com/wordpress/wp-content/uploads/2022/10/theapp.jpg 540w, https://oobrien.com/wordpress/wp-content/uploads/2022/10/theapp-135x300.jpg 135w, https://oobrien.com/wordpress/wp-content/uploads/2022/10/theapp-461x1024.jpg 461w" sizes="auto, (max-width: 540px) 100vw, 540px" /></a></figure>
1749</div>
1750
1751
1752<p class="wp-block-paragraph">One note on helmets &#8211; normally I would always wear a helmet on my own bike, but not on bikeshare bikes &#8211; we shouldn&#8217;t be encouraging it for bikeshare bikes as it significantly reduces their utility and appeal for spontaneous journeys. However &#8211; I&#8217;m glad I did wear one, because we were on the bikes for 12+ hours, occasionally taking some quite aggressive manoeuvres to get across to the other sides of streets. We had no incidents or even any beeps from drivers, but one person in one of the other teams got bumped by a van. You do feel pretty secure on a Santander Cycle even without a helmet, as they are 25kg, feel incredibly sturdy, and you can never go that fast on them. But for this kind of challenge, hazards were definitely higher than normal and so the extra security of a helmet was welcome.</p>
1753
1754
1755
1756<figure class="wp-block-image size-full"><a href="https://oobrien.com/wordpress/wp-content/uploads/2022/10/poplar.jpg"><img loading="lazy" decoding="async" width="1024" height="827" src="https://oobrien.com/wordpress/wp-content/uploads/2022/10/poplar.jpg" alt="" class="wp-image-7570" srcset="https://oobrien.com/wordpress/wp-content/uploads/2022/10/poplar.jpg 1024w, https://oobrien.com/wordpress/wp-content/uploads/2022/10/poplar-300x242.jpg 300w, https://oobrien.com/wordpress/wp-content/uploads/2022/10/poplar-768x620.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
1757
1758
1759
1760<p class="wp-block-paragraph">The Pashley-made bikes (bike numbers starting with 5) make up around 20-30% of the fleet and are definitely better than the older bikes still available, as they are newer. They are slightly lighter, have better lights, a more solid seat adjustment mechanism, and generally just feel nicer. We generally opted for those bikes, and typically stayed on the same bike for hours at a time. </p>
1761
1762
1763
1764<p class="wp-block-paragraph">I&#8217;ll have one more blog post about the challenge soon, some technical notes about how I put together the routes and some of the issues I faced doing so.</p>
1765
1766
1767
1768<h2 class="wp-block-heading">Links</h2>
1769
1770
1771
1772<p class="wp-block-paragraph">Website map with the timings: <a href="https://misc.oomap.co.uk/atdmap/">https://misc.oomap.co.uk/atdmap/ </a></p>
1773
1774
1775
1776<p class="wp-block-paragraph">Route GPX files and timings CSV: <a href="https://github.com/oobrien/allthedocks">https://github.com/oobrien/allthedocks</a></p>
1777
1778
1779
1780<p class="wp-block-paragraph"><em>
1780Some photos courtesy of Jeyda and Joe.</em> <em>Background mapping © OpenStreetMap contributors. </em></p>
1781
1782
1783
1784<figure class="wp-block-image size-full"><a href="https://oobrien.com/wordpress/wp-content/uploads/2022/10/e03bow.jpg"><img loading="lazy" decoding="async" width="1190" height="946" src="https://oobrien.com/wordpress/wp-content/uploads/2022/10/e03bow.jpg" alt="" class="wp-image-7587" srcset="https://oobrien.com/wordpress/wp-content/uploads/2022/10/e03bow.jpg 1190w, https://oobrien.com/wordpress/wp-content/uploads/2022/10/e03bow-300x238.jpg 300w, https://oobrien.com/wordpress/wp-content/uploads/2022/10/e03bow-1024x814.jpg 1024w, https://oobrien.com/wordpress/wp-content/uploads/2022/10/e03bow-768x611.jpg 768w" sizes="auto, (max-width: 1190px) 100vw, 1190px" /></a><figcaption>Some tricky legs in bow. East India Dock (38.EID here) is in a particularly tricky location. </figcaption></figure>
1785<div id="wp_fb_like_button" style="margin:5px 0 5px 5px;float:right;height:26px;">
1785<script src="https://connect.facebook.net/en_US/all.js#xfbml=1"></script>
1785<fb:like href="https://oobrien.com/2022/10/all-the-docks-how-it-went/" send="true" layout="button_count" width="500" show_faces="false" font="arial" action="like" colorscheme="light"></fb:like></div>
1786		</div><!-- .entry-content -->
1787
1788	</div><!-- .post-inner -->
1789
1790	<div class="section-inner">
1791		
1792	</div><!-- .section-inner -->
1793
1794	
1795</article><!-- .post -->
1796
1797	
1798	<div class="pagination-wrapper section-inner">
1799
1800		<hr class="styled-separator pagination-separator is-style-wide" aria-hidden="true" />
1801
1802		
1803	<nav class="navigation pagination" aria-label="Posts pagination">
1804		<h2 class="screen-reader-text">Posts pagination</h2>
1805		<div class="nav-links"><span class="prev page-numbers placeholder" aria-hidden="true"><span aria-hidden="true">&larr;</span> <span class="nav-prev-text">Newer <span class="nav-short">Posts</span></span></span><span aria-current="page" class="page-numbers current">1</span>
1806<a class="page-numbers" href="https://oobrien.com/page/2/">2</a>
1807<span class="page-numbers dots">&hellip;</span>
1808<a class="page-numbers" href="https://oobrien.com/page/95/">95</a>
1809<a class="next page-numbers" href="https://oobrien.com/page/2/"><span class="nav-next-text">Older <span class="nav-short">Posts</span></span> <span aria-hidden="true">&rarr;</span></a></div>
1810	</nav>
1811	</div><!-- .pagination-wrapper -->
1812
1813	
1814</main><!-- #site-content -->
1815
1816
1817	<div class="footer-nav-widgets-wrapper header-footer-group">
1818
1819		<div class="footer-inner section-inner">
1820
1821			
1822			
1823				<aside class="footer-widgets-outer-wrapper">
1824
1825					<div class="footer-widgets-wrapper">
1826
1827						
1828							<div class="footer-widgets column-one grid-item">
1829								<div class="widget widget_recent_comments"><div class="widget-content"><h2 class="widget-title subheading heading-size-3">Recent Comments</h2><nav aria-label="Recent Comments"><ul id="recentcomments"><li class="recentcomments"><span class="comment-author-link"><a href="https://anyaigc.ai/" class="url" rel="ugc external nofollow">GPT API</a></span> on <a href="https://oobrien.com/2022/10/all-the-docks-technical-notes-on-the-routes-and-map/#comment-126731">All the Docks: Technical Notes on the Routes and Map</a></li><li class="recentcomments"><span class="comment-author-link"><a href="https://anyaigc.ai/" class="url" rel="ugc external nofollow">GPT API</a></span> on <a href="https://oobrien.com/2023/07/building-data/#comment-126730">Building Data</a></li><li class="recentcomments"><span class="comment-author-link"><a href="https://anyaigc.ai/" class="url" rel="ugc external nofollow">GPT API</a></span> on <a href="https://oobrien.com/2025/07/londons-misnamed-tube-stations/#comment-126729">London&#8217;s Misnamed Tube Stations</a></li><li class="recentcomments"><span class="comment-author-link"><a href="https://anyaigc.ai/" class="url" rel="ugc external nofollow">Claude API</a></span> on <a href="https://oobrien.com/2022/10/all-the-docks-how-it-went/#comment-126728">All the Docks: How it Went</a></li><li class="recentcomments"><span class="comment-author-link"><a href="https://anyaigc.ai/" class="url" rel="ugc external nofollow">Claude API</a></span>
1829 on <a href="https://oobrien.com/2023/07/all-the-docks-2/#comment-126727">All the Docks 2</a></li><li class="recentcomments"><span class="comment-author-link"><a href="https://baxian-movie.com/" class="url" rel="ugc external nofollow">Magiz</a></span> on <a href="https://oobrien.com/2012/01/tube-colours/#comment-126721">Tube Colours</a></li><li class="recentcomments"><span class="comment-author-link"><a href="https://anyaigc.com/" class="url" rel="ugc external nofollow">gpt-image-2 api</a></span> on <a href="https://oobrien.com/2022/10/all-the-docks-how-it-went/#comment-126715">All the Docks: How it Went</a></li><li class="recentcomments"><span class="comment-author-link"><a href="https://anyaigc.com/" class="url" rel="ugc external nofollow">api中转站</a></span> on <a href="https://oobrien.com/2022/10/all-the-docks-how-it-went/#comment-126714">All the Docks: How it Went</a></li><li class="recentcomments"><span class="comment-author-link"><a href="https://anyaigc.com/" class="url" rel="ugc external nofollow">api中转站</a></span>
1829 on <a href="https://oobrien.com/2023/07/all-the-docks-2/#comment-126713">All the Docks 2</a></li><li class="recentcomments"><span class="comment-author-link"><a href="https://anyaigc.com/" class="url" rel="ugc external nofollow">api中转站</a></span> on <a href="https://oobrien.com/2023/07/all-the-docks-2/#comment-126712">All the Docks 2</a></li></ul></nav></div></div><div class="widget widget_meta"><div class="widget-content"><h2 class="widget-title subheading heading-size-3">Meta</h2><nav aria-label="Meta">
1830		<ul>
1831						<li><a href="https://oobrien.com/wordpress/wp-login.php">Log in</a></li>
1832			<li><a href="https://oobrien.com/feed/">Entries feed</a></li>
1833			<li><a href="https://oobrien.com/comments/feed/">Comments feed</a></li>
1834
1835			<li><a href="https://wordpress.org/">WordPress.org</a></li>
1836		</ul>
1837
1838		</nav></div></div><div class="widget widget_archive"><div class="widget-content"><h2 class="widget-title subheading heading-size-3">Archives</h2>		<label class="screen-reader-text" for="archives-dropdown-2">Archives</label>
1839		<select id="archives-dropdown-2" name="archive-dropdown">
1840			
1841			<option value="">Select Month</option>
1842				<option value='https://oobrien.com/2025/07/'> July 2025 &nbsp;(1)</option>
1843	<option value='https://oobrien.com/2024/10/'> October 2024 &nbsp;(1)</option>
1844	<option value='https://oobrien.com/2024/03/'> March 2024 &nbsp;(1)</option>
1845	<option value='https://oobrien.com/2024/01/'> January 2024 &nbsp;(1)</option>
1846	<option value='https://oobrien.com/2023/07/'> July 2023 &nbsp;(2)</option>
1847	<option value='https://oobrien.com/2023/03/'> March 2023 &nbsp;(1)</option>
1848	<option value='https://oobrien.com/2022/12/'> December 2022 &nbsp;(1)</option>
1849	<option value='https://oobrien.com/2022/10/'> October 2022 &nbsp;(2)</option>
1850	<option value='https://oobrien.com/2022/09/'> September 2022 &nbsp;(1)</option>
1851	<option value='https://oobrien.com/2022/07/'> July 2022 &nbsp;(1)</option>
1852	<option value='https://oobrien.com/2022/04/'> April 2022 &nbsp;(1)</option>
1853	<option value='https://oobrien.com/2021/12/'> December 2021 &nbsp;(1)</option>
1854	<option value='https://oobrien.com/2021/04/'> April 2021 &nbsp;(1)</option>
1855	<option value='https://oobrien.com/2021/03/'> March 2021 &nbsp;(2)</option>
1856	<option value='https://oobrien.com/2021/01/'> January 2021 &nbsp;(2)</option>
1857	<option value='https://oobrien.com/2020/08/'> August 2020 &nbsp;(4)</option>
1858	<option value='https://oobrien.com/2020/07/'> July 2020 &nbsp;(1)</option>
1859	<option value='https://oobrien.com/2020/06/'> June 2020 &nbsp;(2)</option>
1860	<option value='https://oobrien.com/2020/05/'> May 2020 &nbsp;(7)</option>
1861	<option value='https://oobrien.com/2020/04/'> April 2020 &nbsp;(2)</option>
1862	<option value='https://oobrien.com/2020/02/'> February 2020 &nbsp;(1)</option>
1863	<option value='https://oobrien.com/2020/01/'> January 2020 &nbsp;(3)</option>
1864	<option value='https://oobrien.com/2019/12/'> December 2019 &nbsp;(2)</option>
1865	<option value='https://oobrien.com/2019/11/'> November 2019 &nbsp;(5)</option>
1866	<option value='https://oobrien.com/2019/10/'> October 2019 &nbsp;(7)</option>
1867	<option value='https://oobrien.com/2019/09/'> September 2019 &nbsp;(13)</option>
1868	<option value='https://oobrien.com/2019/08/'> August 2019 &nbsp;(6)</option>
1869	<option value='https://oobrien.com/2019/07/'> July 2019 &nbsp;(1)</option>
1870	<option value='https://oobrien.com/2019/06/'> June 2019 &nbsp;(2)</option>
1871	<option value='https://oobrien.com/2019/05/'> May 2019 &nbsp;(1)</option>
1872	<option value='https://oobrien.com/2019/03/'> March 2019 &nbsp;(1)</option>
1873	<option value='https://oobrien.com/2019/02/'> February 2019 &nbsp;(3)</option>
1874	<option value='https://oobrien.com/2019/01/'> January 2019 &nbsp;(1)</option>
1875	<option value='https://oobrien.com/2018/12/'> December 2018 &nbsp;(1)</option>
1876	<option value='https://oobrien.com/2018/10/'> October 2018 &nbsp;(2)</option>
1877	<option value='https://oobrien.com/2018/09/'> September 2018 &nbsp;(1)</option>
1878	<option value='https://oobrien.com/2018/07/'> July 2018 &nbsp;(1)</option>
1879	<option value='https://oobrien.com/2018/06/'> June 2018 &nbsp;(1)</option>
1880	<option value='https://oobrien.com/2018/05/'> May 2018 &nbsp;(1)</option>
1881	<option value='https://oobrien.com/2018/04/'> April 2018 &nbsp;(3)</option>
1882	<option value='https://oobrien.com/2018/03/'> March 2018 &nbsp;(4)</option>
1883	<option value='https://oobrien.com/2018/02/'> February 2018 &nbsp;(2)</option>
1884	<option value='https://oobrien.com/2018/01/'> January 2018 &nbsp;(2)</option>
1885	<option value='https://oobrien.com/2017/11/'> November 2017 &nbsp;(2)</option>
1886	<option value='https://oobrien.com/2017/10/'> October 2017 &nbsp;(2)</option>
1887	<option value='https://oobrien.com/2017/08/'> August 2017 &nbsp;(2)</option>
1888	<option value='https://oobrien.com/2017/07/'> July 2017 &nbsp;(2)</option>
1889	<option value='https://oobrien.com/2017/05/'> May 2017 &nbsp;(5)</option>
1890	<option value='https://oobrien.com/2017/03/'> March 2017 &nbsp;(2)</option>
1891	<option value='https://oobrien.com/2017/01/'> January 2017 &nbsp;(1)</option>
1892	<option value='https://oobrien.com/2016/12/'> December 2016 &nbsp;(3)</option>
1893	<option value='https://oobrien.com/2016/11/'> November 2016 &nbsp;(3)</option>
1894	<option value='https://oobrien.com/2016/10/'> October 2016 &nbsp;(3)</option>
1895	<option value='https://oobrien.com/2016/09/'> September 2016 &nbsp;(4)</option>
1896	<option value='https://oobrien.com/2016/08/'> August 2016 &nbsp;(5)</option>
1897	<option value='https://oobrien.com/2016/07/'> July 2016 &nbsp;(3)</option>
1898	<option value='https://oobrien.com/2016/06/'> June 2016 &nbsp;(4)</option>
1899	<option value='https://oobrien.com/2016/05/'> May 2016 &nbsp;(4)</option>
1900	<option value='https://oobrien.com/2016/04/'> April 2016 &nbsp;(2)</option>
1901	<option value='https://oobrien.com/2016/03/'> March 2016 &nbsp;(2)</option>
1902	<option value='https://oobrien.com/2016/02/'> February 2016 &nbsp;(2)</option>
1903	<option value='https://oobrien.com/2016/01/'> January 2016 &nbsp;(1)</option>
1904	<option value='https://oobrien.com/2015/12/'> December 2015 &nbsp;(12)</option>
1905	<option value='https://oobrien.com/2015/11/'> November 2015 &nbsp;(5)</option>
1906	<option value='https://oobrien.com/2015/10/'> October 2015 &nbsp;(3)</option>
1907	<option value='https://oobrien.com/2015/09/'> September 2015 &nbsp;(2)</option>
1908	<option value='https://oobrien.com/2015/08/'> August 2015 &nbsp;(1)</option>
1909	<option value='https://oobrien.com/2015/07/'> July 2015 &nbsp;(5)</option>
1910	<option value='https://oobrien.com/2015/06/'> June 2015 &nbsp;(3)</option>
1911	<option value='https://oobrien.com/2015/05/'> May 2015 &nbsp;(3)</option>
1912	<option value='https://oobrien.com/2015/04/'> April 2015 &nbsp;(3)</option>
1913	<option value='https://oobrien.com/2015/03/'> March 2015 &nbsp;(6)</option>
1914	<option value='https://oobrien.com/2015/02/'> February 2015 &nbsp;(5)</option>
1915	<option value='https://oobrien.com/2015/01/'> January 2015 &nbsp;(5)</option>
1916	<option value='https://oobrien.com/2014/12/'> December 2014 &nbsp;(5)</option>
1917	<option value='https://oobrien.com/2014/11/'>
1917 November 2014 &nbsp;(6)</option>
1918	<option value='https://oobrien.com/2014/10/'> October 2014 &nbsp;(3)</option>
1919	<option value='https://oobrien.com/2014/09/'> September 2014 &nbsp;(9)</option>
1920	<option value='https://oobrien.com/2014/08/'> August 2014 &nbsp;(3)</option>
1921	<option value='https://oobrien.com/2014/07/'> July 2014 &nbsp;(2)</option>
1922	<option value='https://oobrien.com/2014/06/'> June 2014 &nbsp;(2)</option>
1923	<option value='https://oobrien.com/2014/05/'> May 2014 &nbsp;(6)</option>
1924	<option value='https://oobrien.com/2014/04/'> April 2014 &nbsp;(7)</option>
1925	<option value='https://oobrien.com/2014/03/'> March 2014 &nbsp;(6)</option>
1926	<option value='https://oobrien.com/2014/02/'> February 2014 &nbsp;(4)</option>
1927	<option value='https://oobrien.com/2014/01/'> January 2014 &nbsp;(7)</option>
1928	<option value='https://oobrien.com/2013/11/'> November 2013 &nbsp;(4)</option>
1929	<option value='https://oobrien.com/2013/10/'> October 2013 &nbsp;(9)</option>
1930	<option value='https://oobrien.com/2013/09/'> September 2013 &nbsp;(3)</option>
1931	<option value='https://oobrien.com/2013/08/'> August 2013 &nbsp;(5)</option>
1932	<option value='https://oobrien.com/2013/07/'> July 2013 &nbsp;(2)</option>
1933	<option value='https://oobrien.com/2013/06/'> June 2013 &nbsp;(8)</option>
1934	<option value='https://oobrien.com/2013/05/'> May 2013 &nbsp;(2)</option>
1935	<option value='https://oobrien.com/2013/04/'> April 2013 &nbsp;(1)</option>
1936	<option value='https://oobrien.com/2013/03/'> March 2013 &nbsp;(5)</option>
1937	<option value='https://oobrien.com/2013/02/'> February 2013 &nbsp;(3)</option>
1938	<option value='https://oobrien.com/2013/01/'> January 2013 &nbsp;(2)</option>
1939	<option value='https://oobrien.com/2012/12/'> December 2012 &nbsp;(4)</option>
1940	<option value='https://oobrien.com/2012/11/'> November 2012 &nbsp;(1)</option>
1941	<option value='https://oobrien.com/2012/10/'> October 2012 &nbsp;(3)</option>
1942	<option value='https://oobrien.com/2012/09/'> September 2012 &nbsp;(3)</option>
1943	<option value='https://oobrien.com/2012/08/'> August 2012 &nbsp;(8)</option>
1944	<option value='https://oobrien.com/2012/07/'> July 2012 &nbsp;(4)</option>
1945	<option value='https://oobrien.com/2012/06/'> June 2012 &nbsp;(5)</option>
1946	<option value='https://oobrien.com/2012/05/'> May 2012 &nbsp;(5)</option>
1947	<option value='https://oobrien.com/2012/04/'> April 2012 &nbsp;(5)</option>
1948	<option value='https://oobrien.com/2012/03/'> March 2012 &nbsp;(5)</option>
1949	<option value='https://oobrien.com/2012/02/'> February 2012 &nbsp;(10)</option>
1950	<option value='https://oobrien.com/2012/01/'> January 2012 &nbsp;(8)</option>
1951	<option value='https://oobrien.com/2011/12/'> December 2011 &nbsp;(3)</option>
1952	<option value='https://oobrien.com/2011/11/'> November 2011 &nbsp;(12)</option>
1953	<option value='https://oobrien.com/2011/10/'> October 2011 &nbsp;(3)</option>
1954	<option value='https://oobrien.com/2011/09/'> September 2011 &nbsp;(7)</option>
1955	<option value='https://oobrien.com/2011/08/'> August 2011 &nbsp;(3)</option>
1956	<option value='https://oobrien.com/2011/07/'> July 2011 &nbsp;(13)</option>
1957	<option value='https://oobrien.com/2011/06/'> June 2011 &nbsp;(6)</option>
1958	<option value='https://oobrien.com/2011/05/'> May 2011 &nbsp;(8)</option>
1959	<option value='https://oobrien.com/2011/04/'> April 2011 &nbsp;(8)</option>
1960	<option value='https://oobrien.com/2011/03/'> March 2011 &nbsp;(10)</option>
1961	<option value='https://oobrien.com/2011/02/'> February 2011 &nbsp;(15)</option>
1962	<option value='https://oobrien.com/2011/01/'> January 2011 &nbsp;(16)</option>
1963	<option value='https://oobrien.com/2010/12/'> December 2010 &nbsp;(5)</option>
1964	<option value='https://oobrien.com/2010/11/'> November 2010 &nbsp;(8)</option>
1965	<option value='https://oobrien.com/2010/10/'> October 2010 &nbsp;(10)</option>
1966	<option value='https://oobrien.com/2010/09/'> September 2010 &nbsp;(6)</option>
1967	<option value='https://oobrien.com/2010/08/'> August 2010 &nbsp;(7)</option>
1968	<option value='https://oobrien.com/2010/07/'> July 2010 &nbsp;(3)</option>
1969	<option value='https://oobrien.com/2010/06/'> June 2010 &nbsp;(3)</option>
1970	<option value='https://oobrien.com/2010/05/'> May 2010 &nbsp;(9)</option>
1971	<option value='https://oobrien.com/2010/04/'> April 2010 &nbsp;(12)</option>
1972	<option value='https://oobrien.com/2010/03/'> March 2010 &nbsp;(13)</option>
1973	<option value='https://oobrien.com/2010/02/'> February 2010 &nbsp;(4)</option>
1974	<option value='https://oobrien.com/2010/01/'> January 2010 &nbsp;(10)</option>
1975	<option value='https://oobrien.com/2009/12/'> December 2009 &nbsp;(9)</option>
1976	<option value='https://oobrien.com/2009/11/'>
1976 November 2009 &nbsp;(6)</option>
1977	<option value='https://oobrien.com/2009/10/'> October 2009 &nbsp;(12)</option>
1978	<option value='https://oobrien.com/2009/09/'> September 2009 &nbsp;(17)</option>
1979	<option value='https://oobrien.com/2009/08/'> August 2009 &nbsp;(11)</option>
1980	<option value='https://oobrien.com/2009/07/'> July 2009 &nbsp;(25)</option>
1981	<option value='https://oobrien.com/2009/06/'> June 2009 &nbsp;(9)</option>
1982	<option value='https://oobrien.com/2009/05/'> May 2009 &nbsp;(1)</option>
1983	<option value='https://oobrien.com/2009/04/'> April 2009 &nbsp;(6)</option>
1984	<option value='https://oobrien.com/2009/03/'> March 2009 &nbsp;(5)</option>
1985	<option value='https://oobrien.com/2009/02/'> February 2009 &nbsp;(2)</option>
1986	<option value='https://oobrien.com/2009/01/'> January 2009 &nbsp;(4)</option>
1987	<option value='https://oobrien.com/2008/12/'> December 2008 &nbsp;(4)</option>
1988	<option value='https://oobrien.com/2008/11/'> November 2008 &nbsp;(4)</option>
1989	<option value='https://oobrien.com/2008/10/'> October 2008 &nbsp;(12)</option>
1990	<option value='https://oobrien.com/2008/09/'> September 2008 &nbsp;(2)</option>
1991	<option value='https://oobrien.com/2008/08/'> August 2008 &nbsp;(3)</option>
1992	<option value='https://oobrien.com/2008/07/'> July 2008 &nbsp;(5)</option>
1993	<option value='https://oobrien.com/2008/06/'> June 2008 &nbsp;(2)</option>
1994	<option value='https://oobrien.com/2008/05/'> May 2008 &nbsp;(4)</option>
1995	<option value='https://oobrien.com/2008/04/'> April 2008 &nbsp;(3)</option>
1996	<option value='https://oobrien.com/2008/03/'> March 2008 &nbsp;(3)</option>
1997	<option value='https://oobrien.com/2008/02/'> February 2008 &nbsp;(3)</option>
1998	<option value='https://oobrien.com/2008/01/'> January 2008 &nbsp;(2)</option>
1999	<option value='https://oobrien.com/2007/12/'> December 2007 &nbsp;(3)</option>
2000	<option value='https://oobrien.com/2007/11/'> November 2007 &nbsp;(3)</option>
2001	<option value='https://oobrien.com/2007/10/'> October 2007 &nbsp;(10)</option>
2002	<option value='https://oobrien.com/2007/08/'> August 2007 &nbsp;(5)</option>
2003	<option value='https://oobrien.com/2007/07/'> July 2007 &nbsp;(13)</option>
2004	<option value='https://oobrien.com/2007/06/'> June 2007 &nbsp;(11)</option>
2005	<option value='https://oobrien.com/2007/05/'> May 2007 &nbsp;(2)</option>
2006	<option value='https://oobrien.com/2007/04/'> April 2007 &nbsp;(2)</option>
2007	<option value='https://oobrien.com/2007/02/'> February 2007 &nbsp;(2)</option>
2008	<option value='https://oobrien.com/2006/12/'> December 2006 &nbsp;(5)</option>
2009	<option value='https://oobrien.com/2006/11/'> November 2006 &nbsp;(5)</option>
2010	<option value='https://oobrien.com/2006/10/'> October 2006 &nbsp;(3)</option>
2011	<option value='https://oobrien.com/2006/09/'> September 2006 &nbsp;(2)</option>
2012	<option value='https://oobrien.com/2006/08/'> August 2006 &nbsp;(5)</option>
2013	<option value='https://oobrien.com/2006/07/'> July 2006 &nbsp;(7)</option>
2014	<option value='https://oobrien.com/2006/06/'> June 2006 &nbsp;(2)</option>
2015	<option value='https://oobrien.com/2006/05/'> May 2006 &nbsp;(4)</option>
2016	<option value='https://oobrien.com/2006/04/'> April 2006 &nbsp;(5)</option>
2017	<option value='https://oobrien.com/2006/03/'> March 2006 &nbsp;(6)</option>
2018	<option value='https://oobrien.com/2006/02/'> February 2006 &nbsp;(7)</option>
2019	<option value='https://oobrien.com/2006/01/'> January 2006 &nbsp;(10)</option>
2020	<option value='https://oobrien.com/2005/12/'> December 2005 &nbsp;(11)</option>
2021	<option value='https://oobrien.com/2005/11/'> November 2005 &nbsp;(8)</option>
2022	<option value='https://oobrien.com/2005/10/'> October 2005 &nbsp;(7)</option>
2023	<option value='https://oobrien.com/2005/09/'> September 2005 &nbsp;(7)</option>
2024	<option value='https://oobrien.com/2005/08/'> August 2005 &nbsp;(11)</option>
2025	<option value='https://oobrien.com/2005/07/'> July 2005 &nbsp;(4)</option>
2026	<option value='https://oobrien.com/2005/06/'> June 2005 &nbsp;(4)</option>
2027	<option value='https://oobrien.com/2005/05/'> May 2005 &nbsp;(2)</option>
2028	<option value='https://oobrien.com/2005/04/'> April 2005 &nbsp;(2)</option>
2029	<option value='https://oobrien.com/2005/03/'> March 2005 &nbsp;(4)</option>
2030	<option value='https://oobrien.com/2005/02/'> February 2005 &nbsp;(2)</option>
2031	<option value='https://oobrien.com/2005/01/'> January 2005 &nbsp;(1)</option>
2032	<option value='https://oobrien.com/2004/12/'> December 2004 &nbsp;(1)</option>
2033	<option value='https://oobrien.com/2004/11/'>
2033 November 2004 &nbsp;(4)</option>
2034	<option value='https://oobrien.com/2004/10/'> October 2004 &nbsp;(4)</option>
2035	<option value='https://oobrien.com/2004/09/'> September 2004 &nbsp;(2)</option>
2036	<option value='https://oobrien.com/2004/08/'> August 2004 &nbsp;(8)</option>
2037	<option value='https://oobrien.com/2004/07/'> July 2004 &nbsp;(7)</option>
2038	<option value='https://oobrien.com/2004/06/'> June 2004 &nbsp;(3)</option>
2039	<option value='https://oobrien.com/2004/05/'> May 2004 &nbsp;(4)</option>
2040	<option value='https://oobrien.com/2004/03/'> March 2004 &nbsp;(12)</option>
2041	<option value='https://oobrien.com/2003/12/'> December 2003 &nbsp;(1)</option>
2042	<option value='https://oobrien.com/2003/11/'> November 2003 &nbsp;(3)</option>
2043	<option value='https://oobrien.com/2003/10/'> October 2003 &nbsp;(1)</option>
2044	<option value='https://oobrien.com/2003/07/'> July 2003 &nbsp;(2)</option>
2045	<option value='https://oobrien.com/2003/03/'> March 2003 &nbsp;(1)</option>
2046
2047		</select>
2048
2049			
2049<script>
2050( ( dropdownId ) => {
2051	const dropdown = document.getElementById( dropdownId );
2052	function onSelectChange() {
2053		setTimeout( () => {
2054			if ( 'escape' === dropdown.dataset.lastkey ) {
2055				return;
2056			}
2057			if ( dropdown.value ) {
2058				document.location.href = dropdown.value;
2059			}
2060		}, 250 );
2061	}
2062	function onKeyUp( event ) {
2063		if ( 'Escape' === event.key ) {
2064			dropdown.dataset.lastkey = 'escape';
2065		} else {
2066			delete dropdown.dataset.lastkey;
2067		}
2068	}
2069	function onClick() {
2070		delete dropdown.dataset.lastkey;
2071	}
2072	dropdown.addEventListener( 'keyup', onKeyUp );
2073	dropdown.addEventListener( 'click', onClick );
2074	dropdown.addEventListener( 'change', onSelectChange );
2075})( "archives-dropdown-2" );
2076
2077//# sourceURL=WP_Widget_Archives%3A%3Awidget
2078</script>
2078
2079</div></div>
2080		<div class="widget widget_recent_entries"><div class="widget-content">
2081		<h2 class="widget-title subheading heading-size-3">Recent Posts</h2><nav aria-label="Recent Posts">
2082		<ul>
2083											<li>
2084					<a href="https://oobrien.com/2025/07/londons-misnamed-tube-stations/">London&#8217;s Misnamed Tube Stations</a>
2085									</li>
2086											<li>
2087					<a href="https://oobrien.com/2024/10/the-colne-valley-viaduct-is-complete/">The Colne Valley Viaduct is Complete</a>
2088									</li>
2089											<li>
2090					<a href="https://oobrien.com/2024/03/the-colne-valley-viaduct-crosses-the-grand-union-canal/">The Colne Valley Viaduct Crosses The Grand Union Canal</a>
2091									</li>
2092											<li>
2093					<a href="https://oobrien.com/2024/01/all-the-boroughs/">All the Boroughs?</a>
2094									</li>
2095											<li>
2096					<a href="https://oobrien.com/2023/07/all-the-docks-2/">All the Docks 2</a>
2097									</li>
2098											<li>
2099					<a href="https://oobrien.com/2023/07/building-data/">Building Data</a>
2100									</li>
2101											<li>
2102					<a href="https://oobrien.com/2023/03/consolidation/">Consolidation</a>
2103									</li>
2104											<li>
2105					<a href="https://oobrien.com/2022/12/big-feed-tidyup/">Big Feed Tidyup</a>
2106									</li>
2107											<li>
2108					<a href="https://oobrien.com/2022/10/all-the-docks-technical-notes-on-the-routes-and-map/">All the Docks: Technical Notes on the Routes and Map</a>
2109									</li>
2110											<li>
2111					<a href="https://oobrien.com/2022/10/all-the-docks-how-it-went/">All the Docks: How it Went</a>
2112									</li>
2113					</ul>
2114
2115		</nav></div></div><div class="widget widget_search"><div class="widget-content"><form role="search"  method="get" class="search-form" action="https://oobrien.com/">
2116	<label for="search-form-2">
2117		<span class="screen-reader-text">
2118			Search for:		</span>
2119		<input type="search" id="search-form-2" class="search-field" placeholder="Search &hellip;" value="" name="s" />
2120	</label>
2121	<input type="submit" class="search-submit" value="Search" />
2122</form>
2123</div></div>							</div>
2124
2125						
2126						
2127							<div class="footer-widgets column-two grid-item">
2128								<div class="widget_text widget widget_custom_html"><div class="widget_text widget-content"><h2 class="widget-title subheading heading-size-3">Borough Challenge</h2><div class="textwidget custom-html-widget"><center><b>9 hours, 25 minutes, 23 seconds</b><br />on Saturday 5 May 2018<br /><br />Current World Record for visiting all 32<br />London boroughs &amp; the City of London <br />(<a href="https://blog.oomap.co.uk/2018/05/borough-challenge/">Rules of the Challenge</a>)</center>
2129</div></div></div>
2130<div class="widget popular-posts"><div class="widget-content">
2131
2132</div></div>
2133<div class="widget widget_categories"><div class="widget-content"><h2 class="widget-title subheading heading-size-3">Categories</h2><nav aria-label="Categories">
2134			<ul>
2135					<li class="cat-item cat-item-2"><a href="https://oobrien.com/category/bike-share/">Bike Share</a>
2136</li>
2137	<li class="cat-item cat-item-58"><a href="https://oobrien.com/category/bodmas/">BODMAS</a>
2138</li>
2139	<li class="cat-item cat-item-85"><a href="https://oobrien.com/category/cdrc/">CDRC</a>
2140</li>
2141	<li class="cat-item cat-item-3"><a href="https://oobrien.com/category/conferences/">Conferences</a>
2142</li>
2143	<li class="cat-item cat-item-114"><a href="https://oobrien.com/category/cycling/">Cycling</a>
2144</li>
2145	<li class="cat-item cat-item-233"><a href="https://oobrien.com/category/data/">Data</a>
2146</li>
2147	<li class="cat-item cat-item-4"><a href="https://oobrien.com/category/data-graphics/">Data Graphics</a>
2148</li>
2149	<li class="cat-item cat-item-237"><a href="https://oobrien.com/category/escooters/">Escooters</a>
2150</li>
2151	<li class="cat-item cat-item-5"><a href="https://oobrien.com/category/geodemographics/">Geodemographics</a>
2152</li>
2153	<li class="cat-item cat-item-116"><a href="https://oobrien.com/category/hs2/">HS2</a>
2154</li>
2155	<li class="cat-item cat-item-117"><a href="https://oobrien.com/category/leisure/">Leisure</a>
2156</li>
2157	<li class="cat-item cat-item-6"><a href="https://oobrien.com/category/london/">London</a>
2158</li>
2159	<li class="cat-item cat-item-8"><a href="https://oobrien.com/category/mashups/">Mashups</a>
2160</li>
2161	<li class="cat-item cat-item-120"><a href="https://oobrien.com/category/munros/">Munros</a>
2162</li>
2163	<li class="cat-item cat-item-121"><a href="https://oobrien.com/category/for-the-record/">Notes</a>
2164</li>
2165	<li class="cat-item cat-item-122"><a href="https://oobrien.com/category/olympic-park/">Olympic Park</a>
2166</li>
2167	<li class="cat-item cat-item-9"><a href="https://oobrien.com/category/openlayers/">OpenLayers</a>
2168</li>
2169	<li class="cat-item cat-item-10"><a href="https://oobrien.com/category/openstreetmap/">OpenStreetMap</a>
2170</li>
2171	<li class="cat-item cat-item-123"><a href="https://oobrien.com/category/orienteering/">Orienteering</a>
2172</li>
2173	<li class="cat-item cat-item-115"><a href="https://oobrien.com/category/event-log/">Orienteering Events Log</a>
2174</li>
2175	<li class="cat-item cat-item-59"><a href="https://oobrien.com/category/reviews/">Reviews</a>
2176</li>
2177	<li class="cat-item cat-item-12"><a href="https://oobrien.com/category/technical/">Technical</a>
2178</li>
2179	<li class="cat-item cat-item-124"><a href="https://oobrien.com/category/training-log/">Training</a>
2180</li>
2181	<li class="cat-item cat-item-1"><a href="https://oobrien.com/category/uncategorized/">Uncategorized</a>
2182</li>
2183			</ul>
2184
2185			</nav></div></div>							</div>
2186
2187						
2188					</div><!-- .footer-widgets-wrapper -->
2189
2190				</aside><!-- .footer-widgets-outer-wrapper -->
2191
2192			
2193		</div><!-- .footer-inner -->
2194
2195	</div><!-- .footer-nav-widgets-wrapper -->
2196
2197	
2198			<footer id="site-footer" class="header-footer-group">
2199
2200				<div class="section-inner">
2201
2202					<div class="footer-credits">
2203
2204						<p class="footer-copyright">&copy;
2205							2026							<a href="https://oobrien.com/">O.O&#039;Brien</a>
2206						</p><!-- .footer-copyright -->
2207
2208						
2209						<p class="powered-by-wordpress">
2210							<a href="https://en-gb.wordpress.org/">
2211								Powered by WordPress							</a>
2212						</p><!-- .powered-by-wordpress -->
2213
2214					</div><!-- .footer-credits -->
2215
2216					<a class="to-the-top" href="#site-header">
2217						<span class="to-the-top-long">
2218							To the top <span class="arrow" aria-hidden="true">&uarr;</span>						</span><!-- .to-the-top-long -->
2219						<span class="to-the-top-short">
2220							Up <span class="arrow" aria-hidden="true">&uarr;</span>						</span><!-- .to-the-top-short -->
2221					</a><!-- .to-the-top -->
2222
2223				</div><!-- .section-inner -->
2224
2225			</footer><!-- #site-footer -->
2226
2227		
2227<script type="speculationrules">
2228{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wordpress/wp-*.php","/wordpress/wp-admin/*","/wordpress/wp-content/uploads/*","/wordpress/wp-content/*","/wordpress/wp-content/plugins/*","/wordpress/wp-content/themes/twentytwenty/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
2229</script>
vendor: 1 bytes, line 2229
2229
2230<script id="wp-emoji-settings" type="application/json">
2231{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://oobrien.com/wordpress/wp-includes/js/wp-emoji-release.min.js?ver=7.1.2"}}
2232</script>
vendor: 1 bytes, line 2232
2232
2233<script type="module">
2234/*! This file is auto-generated */
2235var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))});
2236//# sourceURL=https://oobrien.com/wordpress/wp-includes/js/wp-emoji-loader.min.js
2237</script>
2237
2238
2239	</body>
2240</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.