Posts by Year


Moving window operations across arrays

3 minute read

Applying functions using moving windows are a common feature of geospatial data analysis and often exist “under the hood” of GIS software. If you’ve ever calculated a slope or aspect grid from a raster elevation datas...

Back to Top ↑


Fork vs Spawn in Python Multiprocessing

9 minute read

I recently got stuck trying to plot multiple figures in parallel with Matplotlib. It took five hours to find a two-line fix to make it work. Afterwards I spent even more hours learning about multiprocessing in order t...

CentOS 7, Ansible and the end of Python 2

2 minute read

Python 2 vs 3 mismatches have been causing problems in our CentOS 7 server adminstration. We use Ansible for automatic configuration and continuous integration deployments. A few of our long-used jobs recently broke b...

Back to Top ↑


BGS contribution to Parse Server open-source platform

3 minute read

A number of BGS projects are using the open source Parse Server platform. Previously an MBaaS (mobile backend as a service) purchased by Facebook in 2013, Parse was closed in 2017 and subsequently open-sourced under ...

Experimenting with GraphQL

11 minute read

Some background, a development team within the BGS Informatics department were tasked with creating an API to expose sensor data (in this case sensor data from instrumentation placed within boreholes). The API to be p...

Moving code into the open

6 minute read

We recently released our internally-developed etlhelper tool under an open source licence. This post is a reflection on the experience, explaining what we did and why and with advice for future projects. The take-home...

Back to Top ↑