Skip to content
Switch branches/tags


Failed to load latest commit information.


Info: scikit-gstat needs Python >= 3.6! Codacy Badge Codecov

How to cite

In case you use SciKit-GStat in other software or scientific publications, please reference this module. It is published and has a DOI. It can be cited as:

Mirko Mälicke, Egil Möller, Helge David Schneider, & Sebastian Müller. (2021, May 28).
mmaelicke/scikit-gstat: A scipy flavoured geostatistical variogram analysis toolbox (Version v0.6.0). Zenodo.

Full Documentation

The full documentation can be found at:


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
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 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 ='sample')

V = skg.Variogram(coordinates=coordinates, values=values)
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()