"Winner of the AGI Student of the Year Award 2014 having successfully completed an MSc in Geographical Information Systems (GIS). I look to integrate these new GIS skills with business and software skills from my design engineer background; to use a broad perspective built on previous experience to develop a strong focus within the GIS field. (Currently working for Bristol City Council)."

Project Work

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

Urban Food Growing Trail
Web App screenshot

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).

Leeds Listed Buildings
Web App screenshot

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.

Rain Radar Data Extraction
Example decoded UK rainfall radar image

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 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).

Synthetic vs actual MSOA flows
Generated synthetic (MSOA) flows compared to actual flows

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.

Bike vs Car commuter simulation
Bike vs Car commuter simulation

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


Email: richard.thomas _AT_ yahoo.co.uk @BristolThomas

Valid CSS!