Maps, GIS and geospatial web

Productivity GIS tools


Cartographers and GIS professionals often require custom routines for project-specific work or pre-processing that supports bigger problems. I have been tasked to develop several in-house tools for the Cartography team at Outdooractive, that everyone accesses directly within their QGIS. The scripts live in an online repository so that updates are installed in just one pull.


I developed an optimised topology checker for dangling line geometries in trail networks, similar to the native QGIS 'Topology Checker'. The advantage was that dangle points can be exported into permanent files and manipulated accordingly during checking procedures. Additional attributes were added to the geometries to integrate better with other in-house tools. Another checker tool was also created to distinguish between parent trails and export separate dangle files for each. These tools are crucial for fast network checking in large areas, jumping from point to point to inspect.

Data Cleaning

Apart from custom scripts, I have routinely created QGIS models to get through repetitive tasks. A notable example is cleaning new data topologies from duplicate segments to avoid errors in later processing. This was achieved by running a model in 'Per Feature' mode, making a spatial comparison and extracting clean geometries, before merging all resulting layers back together.


An important way to improve a cartographer's everyday work is to provide custom tools to better and faster visualise data. A routine problem we have at Outdooractive is understanding which trail codes run through which segments of our line network. This usually required setting a new time-consuming filter query in the network layer and visualising by labels and color. I made a geoprocessing tool to provide a fast way to inspect available trails in the layer by manipulating symbology. The tool finds all unique trail codes in the input attribute and generates a new symbology rule based on a filtering query for that code. After execution, the network layer can be symbolised to show only one of the available trails, just by checking that symbol rule in the layers panel. Specific styles can be copied between rules in layer properties.


Cover Image for Infrastructure map
For Upwork Client,

Country-wide infrastructure visualisation

Cover Image for Line network processing
For Outdooractive,

Data integration with smart suggestions

Cover Image for Structure from motion
For University of Glasgow,

Drone photogrammetry and point-cloud

Cover Image for Land plot database
For University of Glasgow,

Custom geodatabase schema

Cover Image for Windfarm visual impact
For University of Glasgow,

Landscape change in animated 3D

Cover Image for Coordinate transformations
For University of Glasgow,

Programming geomatics in Python

Cover Image for Windfarm siting algorithm
For Coursera,

Automating a site-finding workflow

Cover Image for Image classifications
For Various,

Processing multi-band satellite imagery