Overview
Geostatistical functions describe geospatial association of samples based on their locations. These functions have different properties, which are relevant for specific applications, and are documented in the Variograms, Covariances and Transiograms sections.
Below we list the general properties of all geostatistical functions as well as utilities to properly plot these functions.
Properties
The following properties can be checked about a geostatistical function:
GeoStatsFunctions.isstationary
— Methodisstationary(f)
Check if geostatistical function f
possesses the 2nd-order stationary property.
GeoStatsFunctions.isisotropic
— Methodisisotropic(f)
Tells whether or not the geostatistical function f
is isotropic.
LinearAlgebra.issymmetric
— Methodissymmetric(f)
Tell whether or not the geostatistical function f
is symmetric.
GeoStatsFunctions.isbanded
— Methodisbanded(f)
Tells whether or not the geostatistical function f
produces a banded matrix.
GeoStatsFunctions.metricball
— Methodmetricball(f)
Return the metric ball of the geostatistical function f
.
Base.range
— Methodrange(f)
Return the maximum effective range of the geostatistical function f
.
GeoStatsFunctions.nvariates
— Methodnvariates(f)
Return the number of (co)variates of the geostatistical function f
.
Plotting
The function funplot
/funplot!
can be used to plot any geostatistical function, including composite anisotropic models.
GeoStatsFunctions.funplot
— Functionfunplot(f; [options])
Plot the geostatistical function f
with given options
.
Common options:
color
- colorsize
- size (line width)maxlag
- maximum laglabels
- variable names
Empirical function options:
pointsize
- size of pointsshowtext
- show text countstextsize
- size of text countsshowhist
- show histogramhistcolor
- color of histogram
Notes
- This function will only work in the presence of a Makie.jl backend via package extensions in Julia v1.9 or later versions of the language.
GeoStatsFunctions.funplot!
— Functionfunplot!(fig, f; [options])
Mutating version of [funplot
[@ref] where the figure fig
is updated with the plot of the geostatistical function f
.
See the documentation of funplot
for options
.
Consider the following example with an anisotropic Gaussian variogram:
γ = GaussianVariogram(ranges=(3, 2, 1))
GaussianVariogram
├─ ranges: (3.0 m, 2.0 m, 1.0 m)
├─ rotation: UniformScaling{Bool}(true)
├─ sill: 1.0
└─ nugget: 0.0
funplot(γ)

The function surfplot
/surfplot!
can be used to plot surfaces of association given a normal direction:
GeoStatsFunctions.surfplot
— Functionsurfplot(f; [options])
Plot the geostatistical surface f
with given options
.
Common options
colormap
- Color mapmaxlag
- maximum laglabels
- variable names
Theoretical function options
normal
- Normal direction to plane (default to vertical)nlags
- Number of lags (default to20
)nangs
- Number of angles (default to50
)
Notes
- This function will only work in the presence of a Makie.jl backend via package extensions in Julia v1.9 or later versions of the language.
GeoStatsFunctions.surfplot!
— Functionsurfplot!(fig, f; [options])
Mutating version of [surfplot
[@ref] where the figure fig
is updated with the plot of the geostatistical surface f
.
See the documentation of surfplot
for options
.
surfplot(γ)
