• Stars
    star
    223
  • Rank 177,900 (Top 4 %)
  • Language
    Jupyter Notebook
  • License
    MIT License
  • Created about 7 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Geostatistical variogram estimation expansion in the scipy style

SciKit-GStat

Info: scikit-gstat needs Python >= 3.6!

https://img.shields.io/pypi/v/scikit-gstat?color=green&logo=pypi&logoColor=yellow&style=flat-square:alt:PyPI https://img.shields.io/github/v/release/mmaelicke/scikit-gstat?color=green&logo=github&style=flat-square:alt:GitHubrelease(latestbydate) Codecov

How to cite

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

Full Documentation

The full documentation can be found at: https://mmaelicke.github.io/scikit-gstat

Description

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.

Installation

PyPI

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:

git clone https://github.com/mmaelicke/scikit-gstat.git
cd scikit-gstat
pip install -r requirements.txt
pip install -e .

Conda-Forge:

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

Quickstart

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()

./example.png