In case you use SciKit-GStat in other software or scientific publications, please reference this module. There is a GMD publication. Please cite it like:
Mälicke, M.: SciKit-GStat 1.0: a SciPy-flavored geostatistical variogram estimation toolbox written in Python, Geosci. Model Dev., 15, 2505–2532, https://doi.org/10.5194/gmd-15-2505-2022, 2022.
The code itself is published and has a DOI. It can be cited as:
Mirko Mälicke, Romain Hugonnet, Helge David Schneider, Sebastian Müller, Egil Möller, & Johan Van de Wauw. (2022). mmaelicke/scikit-gstat: Version 1.0 (v1.0.0). Zenodo. https://doi.org/10.5281/zenodo.5970098
The full documentation can be found at: https://mmaelicke.github.io/scikit-gstat
SciKit-Gstat is a scipy-styled analysis module for geostatistics. It includes
two base classes Variogram
and OrdinaryKriging
. Additionally, various
variogram classes inheriting from Variogram
are available for solving
directional or space-time related tasks.
The module makes use of a rich selection of semi-variance
estimators and variogram model functions, while being extensible at the same
time.
The estimators include:
- matheron
- cressie
- dowd
- genton
- entropy
- two experimental ones: quantiles, minmax
The models include:
- sperical
- exponential
- gaussian
- cubic
- stable
- matérn
with all of them in a nugget and no-nugget variation. All the estimator are implemented using numba's jit decorator. The usage of numba might be subject to change in future versions.
pip install scikit-gstat
Note: It can happen that the installation of numba or numpy is failing using pip. Especially on Windows systems. Usually, a missing Dll (see eg. #31) or visual c++ redistributable is the reason.
git clone https://github.com/mmaelicke/scikit-gstat.git
cd scikit-gstat
pip install -r requirements.txt
pip install -e .
From Version 0.5.5 on scikit-gstat is also available on conda-forge. Note that for versions < 1.0 conda-forge will not always be up to date, but from 1.0 on, each minor release will be available.
conda install -c conda-forge scikit-gstat
The Variogram class needs at least a list of coordiantes and values. All other attributes are set by default. You can easily set up an example by using the skgstat.data sub-module, that includes a growing list of sample data.
import skgstat as skg
# the data functions return a dict of 'sample' and 'description'
coordinates, values = skg.data.pancake(N=300).get('sample')
V = skg.Variogram(coordinates=coordinates, values=values)
print(V)
spherical Variogram
-------------------
Estimator: matheron
Effective Range: 353.64
Sill: 1512.24
Nugget: 0.00
All variogram parameters can be changed in place and the class will automatically invalidate and update dependent results and parameters.
V.model = 'exponential'
V.n_lags = 15
V.maxlag = 500
# plot - matplotlib and plotly are available backends
fig = V.plot()