CentresHelmholtz Centre for Environmental Research (UFZ)
Keywordspython geostatistics kriging covariance-model srf
Research fieldEarth & Environment
Create your geo-statistical model with Python!
Get in Touch!
The GeoStat Framework is a coherent ecosystem of Python packages for geostatistical applications and subsurface simulations. It provides an easily usable open source collection of software packages. They are well documented, including exhaustive hands-on guides and examples for helping non-programmers and non-domain-experts getting started. The main applications of the packages are:
- GSTools & PyKrige - spatial random field generation, kriging, and geostatistical analyses based on variogram methods
- ogs5py - pre-processing, operating, and post-processing of subsurface flow and transport simulations by providing a Python API for the FEM solver OpenGeoSys 5
- AnaFlow & pentapy - (semi-)analytical solutions for specific groundwater-flow scenarios
- welltestpy - store, manipulate, and analyze well-based field testing campaigns with a focus on estimating parameters of subsurface heterogeneity from pumping test data.
With this collection of flexible toolboxes we aim to close the gap of missing software for real-world applications in the field of geostatistics. Especially GSTools is the first comprehensive Python-toolbox for covariance models, field generation, kriging, variogram estimation, data normalization and transformation.
The combination of the easy to use and widely adopted programming language Python, together with the extensive documentation and the community building has already come to fruition, as scientists from unrelated fields have successfully contributed novel functionality to the GeoStat Framework. Not only do the different major versions of the software packages have their own DOIs for reproducibility, but also the larger stand-alone examples.
All packages can be installed via pip and conda on all platforms:
pip install gstools pykrige ogs5py welltestpy anaflow pentapy
conda install gstools pykrige ogs5py welltestpy anaflow pentapy
In order to make workflows created with the GeoStat-Framework accessible and reproducible, we have created a companion organization called GeoStat-Examples, where we provide complex workflows and supplements for publications using packages from the GeoStat-Framework.
GeoStatTools provides geostatistical tools for various purposes:
- random field generation
- simple, ordinary, universal and external drift kriging
- conditioned field generation
- incompressible random vector field generation
- (automated) variogram estimation and fitting
- directional variogram estimation and modelling
- data normalization and transformation
- many readily provided and even user-defined covariance models
- metric spatio-temporal modelling
- plotting and exporting routines
See the documentation.
Geostatistics as a subfield of statistics accounts for the spatial correlations encountered in many applications of, for example, earth sciences. Valuable information can be extracted from these correlations, also helping to address the often encountered burden of data scarcity. Despite the value of additional data, the use of geostatistics still falls short of its potential. This problem is often connected to the lack of user-friendly software hampering the use and application of geostatistics. We therefore present GSTools, a Python-based software suite for solving a wide range of geostatistical problems. We chose Python due to its unique balance between usability, flexibility, and efficiency and due to its adoption in the scientific community. GSTools provides methods for generating random fields; it can perform kriging, variogram estimation and much more. We demonstrate its abilities by virtue of a series of example applications detailing their use.
Kriging Toolkit for Python that was formerly developed independently by Benjamin S. Murphy. See the documentation.
The code supports 2D and 3D ordinary and universal kriging. Standard
variogram models (linear, power, spherical, gaussian, exponential) are
built in, but custom variogram models can also be used. The 2D universal
kriging code currently supports regional-linear, point-logarithmic, and
external drift terms, while the 3D universal kriging code supports a
regional-linear drift term in all three spatial dimensions. Both
universal kriging classes also support generic ‘specified’ and
‘functional’ drift capabilities. With the ‘specified’ drift capability,
the user may manually specify the values of the drift(s) at each data
point and all grid points. With the ‘functional’ drift capability, the
user may provide callable function(s) of the spatial coordinates that
define the drift(s). The package includes a module that contains
functions that should be useful in working with ASCII grid files (
ogs5py is A python-API for the [OpenGeoSys 5][ogs5_link] scientific modeling package. See the documentation.
High-performance numerical codes are an indispensable tool for hydrogeologists when modeling subsurface flow and transport systems. But as they are written in compiled languages, like C/C++ or Fortran, established software packages are rarely user-friendly, limiting a wider adoption of such tools. OpenGeoSys (OGS), an open-source, finite-element solver for thermo-hydro-mechanical–chemical processes in porous and fractured media, is no exception. Graphical user interfaces may increase usability, but do so at a dramatic reduction of flexibility and are difficult or impossible to integrate into a larger workflow. Python offers an optimal trade-off between these goals by providing a highly flexible, yet comparatively user-friendly environment for software applications. Hence, we introduce ogs5py, a Python-API for the OpenGeoSys 5 scientific modeling package. It provides a fully Python-based representation of an OGS project, a large array of convenience functions for users to interact with OGS and connects OGS to the scientific and computational environment of Python.
welltestpy provides a framework to handle, process, plot and analyse data from well based field campaigns. See the documentation.
The Python package welltestpy provides a workflow to infer parameters of subsurface heterogeneity from pumping test data. It contains routines to handle, visualize, process and interpret field exploration campaigns based on well observations.
AnaFlow provides several analytical and semi-analytical solutions for the groundwater-flow equation. See the documentation.
Pumping tests are established for characterizing spatial average properties of aquifers. At the same time, they are promising tools to identify heterogeneity characteristics such as log-conductivity variance and correlation scales. We present the extended Generalized Radial Flow Model (eGRF) which combines the characterization of well flow in fractal geometry with an upscaled conductivity for pumping tests in heterogeneous media. The eGRF model is the core part of AnaFlow to calculate type curves for different pumping test scenarios under transient conditions.
pentapy is a toolbox to deal with pentadiagonal matrices in Python. See the documentation.
Pentadiagonal linear equation systems arise in many areas of science and engineering: e.g. when solving differential equations, in interpolation problems, or in numerical schemes like finite difference. A specific example is the radial symmetric groundwater flow equation with consecutive rings of different constant transmissivity and radial boundary conditions, which can be expressed as a pentadiagonal equation system.
Back to Software Spotlights Overview