The development of geophysical software by individual scientists is achievable through languages such as Python. All goals behind developing a geophysical potential field interpretation and modelling software have been achieved to date. The implication of this is that innovation can be a driving force in projects, rather than waiting for commercial vendors to provide appropriate scientific tools.
The Council for Geoscience (CGS) is the so called "Geological Survey" of South Africa. Like many similar institutions around the world, financial restrictions play a significant role in limiting what tools are available to scientists. It was from this need to stay scientifically current, while keeping the software inexpensive, that the examination of Python first started and ultimately ended up in the PyGMI project.
The origins of PyGMI started with two separate projects. The first was a joint project where the CGS was responsible for the creation of a software interface for cluster analysis code, developed by the University of Potsdam (Paasche et al 2009). The resulting project was done entirely in Python. Data could be imported, filtered, analyzed and displayed in graph form using Matplotlib.
The second project stemmed from the need to perform 3D modelling on geophysical data. The creation of 3D models can be extremely time-consuming. Packages available tend to follow either the modelling of individual 2.5D profiles, which are then joined up into 3D sections, or modelling fully in three dimensions using polygonal based models. The initial idea was to use the VTK library as the means to create, display and interrogate the model, while using the Scipy and Numpy libraries to perform the actual potential field calculations. It soon became apparent that editing the resulting mesh quickly became complex and time consuming. The ability to easily create and change a model is the very basis of forward modelling and for this reason a new approach was adopted. The newer 3D modelling package was designed to allow the user to model simply by drawing the model, in the same way one would draw views of a house using a paint program. This implies the need to have a front view, as well as a top view. The model is therefore voxel based rather than polygonal. The final model can be displayed either within the PyGMI software, or exported to Google Earth for examination.
Ultimately these two projects formed the basis of what is now the actual PyGMI package -- which is a modular collection of various techniques, including multivariate statistical analysis and potential field modelling. The interface follows a flow diagram approach and the individual modules are independent enough to ensure that they do not interfere with code which has preceded them in previous modules.
The PyGMI software is available for free download at: https://code.google.com/p/pygmi/