Python's growth relative to other languages based on Stack Overflow question views

Ranging from those who are old hands at Python through to those who are relatively new, the BGS Python community is active, collaborative and growing! So let's have a quick run through why we are using Python, how we are applying it and how the BGS user community has developed over the past year.

Python is extremely readable which makes it easy to share code with limited prior understanding – this means you can get the basics down fast, improving your productivity straight away whilst continuing to learn and advance

Numerous packages exist providing tools that can help with a range of computational tasks, whatever your application e.g. NumPy, pandas

Python is used in a range of areas of BGS work e.g. data analysis, making plots, machine learning, GIS, process automation, API development, database input/output – ultimately, those with a Python skillset could contribute to any of these areas Current applications



There are a number of existing projects at BGS already being developed around a Python workflow, some of which have developed following these early Python user group meetings. Examples of existing projects include:

The creation of the BGS_ETL library for easy access to Oracle and other databases, used for API development and data transfer

Twitter data harvesting as part of the GeoSocial project

Terrain analysis modelling including the handling of input data uncertainty

The development of a range of BGS products through ArcGIS including components of GeoSure

Creating workflows for the handling of satellite time series data (a) shows a satellite data-derived map of the average ground motions around Bandung city in Indonesia. Each of the pixels in this map has an associated time series, one of which is shown in (b)

(b) the blue bar on the time series shows how a Python developed automated change detector accurately determines the timing of the gradient change in the ground motion







Implementing parallelisation of processing work flows over the BGS's High Performance Computer

Volcanic ash dispersion model output plotting

The development of an automated workflow for handling and plotting laboratory data focus on water movement through clay samples

As part of the workflow used to assist with laboratory experiments analysing the swelling pressure and permeability of a clay, data is taken from a custom-built constant volume steel pressure vessel containing the clay (a). Observations e.g. the absolute mechanical pressure over time (b) are then made available within a Python environment for further analysis Interrogation of meteorological data for input into assessing potential changes from climate-geological interactions Seasonal rainfall records for various regions across Great Britain

The BGS Python user community



To bring all Python users together at BGS, we have started a number of Python working groups meeting roughly every two weeks at both our Edinburgh and Keyworth sites. Meetings are open to anyone working at BGS and the content varies from week to week.



The aim of these clinics is to:

Help new users install Python and configure their laptops to use it

Expose scientists to software development methods and tools to will help them write better code

Offer an environment for developers and analysts to share existing and in-development workflows, including problems

Make everyone aware of who's who at BGS when it comes to Python programming, ultimately spurring on potential collaboration The meetings that have taken place so far have also helped us identify people’s varying skills and potential training requirements. As a result, we will soon be running general Beginner Python training courses both at both Edinburgh and Keyworth to introduce those new to Python (or even coding in general) for the first time and to provide a grounding in the core concepts.



For more information on Python, or our digital or data work, please visit the









There are a number of existing projects at BGS already being developed around a Python workflow, some of which have developed following these early Python user group meetings. Examples of existing projects include:To bring all Python users together at BGS, we have started a number of Python working groups meeting roughly every two weeks at both our Edinburgh and Keyworth sites. Meetings are open to anyone working at BGS and the content varies from week to week.The aim of these clinics is to:The meetings that have taken place so far have also helped us identify people’s varying skills and potential training requirements. As a result, we will soon be running general Beginner Python training courses both at both Edinburgh and Keyworth to introduce those new to Python (or even coding in general) for the first time and to provide a grounding in the core concepts.For more information on Python, or our digital or data work, please visit the BGS Data website

There are so many different programming languages out there and each has its own pros, cons and associated learning curve. Here at the British Geological Survey, one language that is being increasingly used by a number of us for a variety of tasks is Python. This reflects the global increase in the use of Python as a language, which you can read about in this article from stackoverflow