"After working for over 20 years as a silicon chip design engineer, in 2014 I completed an MSc in Geographical Information Systems (GIS) with Distinction and was winner of the AGI Student of the Year Award." (Currently working as a GIS Technical Consultant for Atkins).

University of Leeds

Geographic Information Systems (GIS) MSc Coursework

A selection of my written assignments, complete dissertation and project work submitted for my GIS MSc course at the University of Leeds.

Cycle Commuting Analysis of Bristol (Guest Blog @ CycleStreets.net - 19/12/2015)

An outline of how the CycleStreets Journey Planner API was used as a powerful tool for the cycle commuting analysis of my MSc dissertation. As an extension of my MSc work, 2 additional detailed maps of the Bristol area are presented (based on the same datasets) giving an indication of the number of cyclists along individual streets if all commutes greater than 1km within the Bristol Urban Area were by bicycle.

Project Work

A variety of software and web-programming projects hosted here on GitHub ...


QGIS to OpenLayers workflow demo: Dorset & Somerset Canal WebGIS

(GitHub Repository: DS_Canal)

This is a QGIS to OpenLayers workflow demo using my 2 recently developed NPM JavaScript modules:

OpenLayers OGC GeoPackage Loader (ol-load-geopackage): Load OGC GeoPackage vector data tables into OpenLayers Vector Sources,

OpenLayers SLD Styler (ol-sld-styler): Style OpenLayers vector layers using SLD data, generate a map legend and/or embed symbols in a layer selector.

Data and styling for the web map is generated primarily in QGIS and exported as 2 OGC GeoPackages using the Package Layers Processing Toolbox operation. This allows the web map to be quickly rebuilt from subsequent updated QGIS exports with the workflow:

Update data/styles in QGIS

Export with "Package Layers"

Refresh WebGIS in browser

LeafletJS-based Web App: Urban Food Growing Trail

(GitHub Repository: urban-food-growing-trail)

This is a single-page "web app" written in HTML5/CSS3/JavaScript which implements an interactive map for exploring the Urban Food Growing Trail created by the Incredible Edible Bristol community food growing movement. As it is targeted at mobile phones with poor network connectivity (as well as for desktop perusal), it uses the compact LeafletJS mapping API (smaller than OpenLayers or GoogleMaps APIs), avoids unnecessary inclusion of libraries (such as jQuery) and features JavaScript "minification" at build time. Although usable before all data (and info pane image thumbnails) have loaded it continues to load all of these asynchronously in the background in order for popups and information panes to render quickly during continued operation. Map tiles at multiple zoom levels must be loaded dynamically (though are cached by the browser). It takes advantage of the responsive design features of the sidebar plugin so that information pane sidebars (desktop) become full screen (mobile).

Google Maps API-based Web App: Leeds Listed Buildings

(GitHub Repository: Leeds_Listed_Buildings)

This is a single-page "web app" written in HTML5/CSS3/JavaScript which implements an interactive map for exploring "Listed Buildings" in Leeds demonstrating use of the Google Maps JavaScript API. For each building it provides links to further images and details in the online Historic England and English Heritage web sites.
(Note: since this was written, an API key is required so this will display an error and darkened map, but otherwise still work.)

Python Module: Rain Radar Data Extraction

(GitHub Repository: MetOffice_NIMROD)

This module can parse data from UK Met Office Rain Radar NIMROD image files, display header data and allow extraction of raster image to an ESRI ASCII (.asc) format file for import into ArcGIS. Additionally, a bounding box may be specified to clip the image to the area of interest. It is designed to be imported as a Python module or run directly as a command line script. This module has now been included alongside the official MetOffice data repository (file "nimrod.py") at the Centre for Environmental Data Archival (CEDA). It was developed from an earlier Python ArcGIS script-based methodology I put together for automated extraction of recorded time-series rainfall data for an MSc project: Hydrological modelling with real rainfall and flow data (3.3 MB PDF).

Java Application: Generating synthetic origin-destination commuter flow data

(GitHub Repository: GenSynthFlow; Documentation: UML Diagram, JavaDoc)

This is an implementation of an original algorithm to create a "synthetic data set" that is an estimate of the numbers of workers commuting between their home area (origin) and place of work (destination), based on constraints derived from 2011 Census of England and Wales data. Specifically, it generates Synthetic Flow Data between census Output Areas (OA) and Workplace Zones (WZ) based on tables of total commuters from each OA and from each WZ, combined with spatial data to derive commute distance. This was developed as part of my MSc dissertation as the actual data was not (and still isn't publicly) available.

Java Graphical Application: Interactive Commuting Simulator

(GitHub Repository: CommuterSim; Documentation: JavaDoc)

This was an experiment in developing an interactive software environment to explore the effects of varying input parameters for a behavioural model: stepping through time in a simulator whilst rendering simulator state as a simple 2D bar chart, with cumulative results rendered in a more sophisticated manner (using the JFreeChart library). The actual model used was a (rather simplistic) behavioural model of trade-offs between commuting by car or bike. The tabbed GUI was implemented using the Java Swing toolkit. This project was developed as a free-choice assignment in my MSc course.

Other Interests

Acknowledgments

Email: richard.thomas _AT_ yahoo.co.uk