Richard Thomas
Geographical Information Systems (GIS) Professional:
Spatial Analysis, Systems Development & Web Mapping
"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).
A selection of my written assignments, complete dissertation and project work submitted for my GIS MSc course at the University of Leeds.
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.
A variety of software and web-programming projects hosted here on GitHub ...
(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
(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).
(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.)
(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).
(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.
(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.
Email: richard.thomas _AT_ yahoo.co.uk