Variogram models

Scikit-GStat implements different theoretical variogram functions. These model functions expect a single lag value or an array of lag values as input data. Each function has at least a parameter a for the effective range and a parameter c0 for the sill. The nugget parameter b is optinal and will be set to \(b:=0\) if not given.

Spherical model

skgstat.models.spherical(h, r, c0, b=0)[source]

Spherical Variogram function

Implementation of the spherical variogram function. Calculates the dependent variable for a given lag (h). The nugget (b) defaults to be 0.

Parameters
  • h (float) – Specifies the lag of separating distances that the dependent variable shall be calculated for. It has to be a positive real number.

  • r (float) – The effective range. Note this is not the range parameter! However, for the spherical variogram the range and effective range are the same.

  • c0 (float) – The sill of the variogram, where it will flatten out. The function will not return a value higher than C0 + b.

  • b (float) – The nugget of the variogram. This is the value of independent variable at the distance of zero. This is usually attributed to non-spatial variance.

Returns

gamma – Unlike in most variogram function formulas, which define the function for \(2*\gamma\), this function will return \(\gamma\) only.

Return type

numpy.float64

Notes

The implementation follows 6:

\[\gamma = b + C_0 * \left({1.5*\frac{h}{a} - 0.5*\frac{h}{a}^3}\right)\]

if \(h < r\), and

\[\gamma = b + C_0\]

else. r is the effective range, which is in case of the spherical variogram just a.

References

6

Burgess, T. M., & Webster, R. (1980). Optimal interpolation and isarithmic mapping of soil properties. I.The semi-variogram and punctual kriging. Journal of Soil and Science, 31(2), 315–331, http://doi.org/10.1111/j.1365-2389.1980.tb02084.x

Exponential model

skgstat.models.exponential(h, r, c0, b=0)[source]

Exponential Variogram function

Implementation of the exponential variogram function. Calculates the dependent variable for a given lag (h). The nugget (b) defaults to be 0.

Parameters
  • h (float) – Specifies the lag of separating distances that the dependent variable shall be calculated for. It has to be a positive real number.

  • r (float) – The effective range. Note this is not the range parameter! For the exponential variogram function the range parameter a is defined to be \(a=\frac{r}{3}\). The effective range is the lag where 95% of the sill are exceeded. This is needed as the sill is only approached asymptotically by an exponential function.

  • c0 (float) – The sill of the variogram, where it will flatten out. The function will not return a value higher than C0 + b.

  • b (float) – The nugget of the variogram. This is the value of independent variable at the distance of zero. This is usually attributed to non-spatial variance.

Returns

gamma – Unlike in most variogram function formulas, which define the function for \(2*\gamma\), this function will return \(\gamma\) only.

Return type

numpy.float64

Notes

The implementation following 7, 9 and 8 is as:

\[\gamma = b + C_0 * \left({1 - e^{-\frac{h}{a}}}\right)\]

a is the range parameter, that can be calculated from the effective range r as: \(a = \frac{r}{3}\).

References

7

Cressie, N. (1993): Statistics for spatial data. Wiley Interscience.

8

Chiles, J.P., Delfiner, P. (1999). Geostatistics. Modeling Spatial Uncertainty. Wiley Interscience.

9

Journel, A G, and Huijbregts, C J. Mining geostatistics. United Kingdom: N. p., 1976.

Gaussian model

skgstat.models.gaussian(h, r, c0, b=0)[source]

Gaussian Variogram function

Implementation of the Gaussian variogram function. Calculates the dependent variable for a given lag (h). The nugget (b) defaults to be 0.

Parameters
  • h (float) – Specifies the lag of separating distances that the dependent variable shall be calculated for. It has to be a positive real number.

  • r (float) – The effective range. Note this is not the range parameter! For the exponential variogram function the range parameter a is defined to be \(a=\frac{r}{3}\). The effetive range is the lag where 95% of the sill are exceeded. This is needed as the sill is only approached asymptotically by an exponential function.

  • c0 (float) – The sill of the variogram, where it will flatten out. The function will not return a value higher than C0 + b.

  • b (float) – The nugget of the variogram. This is the value of independent variable at the distance of zero. This is usually attributed to non-spatial variance.

Returns

gamma – Unlike in most variogram function formulas, which define the function for \(2*\gamma\), this function will return \(\gamma\) only.

Return type

numpy.float64

Notes

This implementation follows 10 and 11:

\[\gamma = b + c_0 * \left({1 - e^{-\frac{h^2}{a^2}}}\right)\]

a is the range parameter, that can be calculated from the effective range r as:

\[a = \frac{r}{2}\]

References

10

Chiles, J.P., Delfiner, P. (1999). Geostatistics. Modeling Spatial Uncertainty. Wiley Interscience.

11

Journel, A G, and Huijbregts, C J. Mining geostatistics. United Kingdom: N. p., 1976.

Cubic model

skgstat.models.cubic(h, r, c0, b=0)[source]

Cubic Variogram function

Implementation of the Cubic variogram function. Calculates the dependent variable for a given lag (h). The nugget (b) defaults to be 0.

Parameters
  • h (float) – Specifies the lag of separating distances that the dependent variable shall be calculated for. It has to be a positive real number.

  • r (float) – The effective range. Note this is not the range parameter! However, for the cubic variogram the range and effective range are the same.

  • c0 (float) – The sill of the variogram, where it will flatten out. The function will not return a value higher than C0 + b.

  • b (float) – The nugget of the variogram. This is the value of independent variable at the distance of zero. This is usually attributed to non-spatial variance.

Returns

gamma – Unlike in most variogram function formulas, which define the function for \(2*\gamma\), this function will return \(\gamma\) only.

Return type

numpy.float64

Notes

This implementation is taken from [12]_:

\[\gamma = b + C_0 * \left[{7 * \left(\frac{h^2}{a^2}\right) - \frac{35}{4} * \left(\frac{h^3}{a^3}\right) + \frac{7}{2} * \left(\frac{h^5}{a^5}\right) - \frac{3}{4} * \left(\frac{h^7}{a^7}\right)}\right]\]

a is the range parameter. For the cubic function, the effective range and range parameter are the same.

References

12

Montero, J.-M., Mateu, J., & others. (2015). Spatial and spatio-temporal geostatistical modeling and kriging (Vol. 998). John Wiley & Sons.

Stable model

skgstat.models.stable(h, r, c0, s, b=0)[source]

Stable Variogram function

Implementation of the stable variogram function. Calculates the dependent variable for a given lag (h). The nugget (b) defaults to be 0.

Changed in version 0.4.4: Now returns the nugget at lag 0

Parameters
  • h (float) – Specifies the lag of separating distances that the dependent variable shall be calculated for. It has to be a positive real number.

  • r (float) – The effective range. Note this is not the range parameter! For the stable variogram function the range parameter a is defined to be \(a = \frac{r}{3^{\frac{1}{s}}}\). The effective range is the lag where 95% of the sill are exceeded. This is needed as the sill is only approached asymptotically by the e-function part of the stable model.

  • c0 (float) – The sill of the variogram, where it will flatten out. The function will not return a value higher than C0 + b.

  • s (float) – Shape parameter. For s <= 2 the model will be shaped more like a exponential or spherical model, for s > 2 it will be shaped most like a Gaussian function.

  • b (float) – The nugget of the variogram. This is the value of independent variable at the distance of zero. This is usually attributed to non-spatial variance.

Returns

gamma – Unlike in most variogram function formulas, which define the function for \(2*\gamma\), this function will return \(\gamma\) only.

Return type

numpy.float64

Notes

The implementation is taken from [12]_:

\[\gamma = b + C_0 * \left({1. - e^{- {\frac{h}{a}}^s}}\right)\]

a is the range parameter and is calculated from the effective range r as:

\[a = \frac{r}{3^{\frac{1}{s}}}\]

References

12

Montero, J.-M., Mateu, J., & others. (2015). Spatial and spatio-temporal geostatistical modeling and kriging (Vol. 998). John Wiley & Sons.

Matérn model

skgstat.models.matern(h, r, c0, s, b=0)[source]

Matérn Variogram function

Implementation of the Matérn variogram function. Calculates the dependent variable for a given lag (h). The nugget (b) defaults to be 0.

Changed in version 0.4.4: now returns the nugget instead of NaN for lag 0.

Parameters
  • h (float) – Specifies the lag of separating distances that the dependent variable shall be calculated for. It has to be a positive real number.

  • r (float) – The effective range. Note this is not the range parameter! For the Matérn variogram function the range parameter a is defined to be \(a = \frac{r}{2}\) and \(a = \frac{r}{3}\) if s is smaller than 0.5 or larger than 10. The effective range is the lag where 95% of the sill are exceeded. This is needed as the sill is only approached asymptotically by Matérn model.

  • c0 (float) – The sill of the variogram, where it will flatten out. The function will not return a value higher than C0 + b.

  • s (float) – Smoothness parameter. The smoothness parameter can shape a smooth or rough variogram function. A value of 0.5 will yield the exponential function, while a smoothness of +inf is exactly the Gaussian model. Typically a value of 10 is close enough to Gaussian shape to simulate its behaviour. Low values are considered to be ‘smooth’, while larger values are considered to describe a ‘rough’ random field.

  • b (float) – The nugget of the variogram. This is the value of independent variable at the distance of zero. This is usually attributed to non-spatial variance.

Returns

gamma – Unlike in most variogram function formulas, which define the function for \(2*\gamma\), this function will return \(\gamma\) only.

Return type

numpy.float64

Notes

The implementation is taken from 13:

\[\gamma (h) = b + C_0 \left( 1 - \frac{1}{2^{\upsilon - 1} \Gamma(\upsilon)}\left(\frac{h}{a}\right)^\upsilon K_\upsilon \left(\frac{h}{a}\right)\right)\]

a is the range parameter and is calculated from the effective range r as:

\[a = \frac{r}{2}\]

References

13

Zimmermann, B., Zehe, E., Hartmann, N. K., & Elsenbeer, H. (2008). Analyzing spatial data: An assessment of assumptions, new methods, and uncertainty using soil hydraulic data. Water Resources Research, 44(10), 1–18. https://doi.org/10.1029/2007WR006604