Built-in
Below is the list of solvers that are readily available after loading the project.
Estimation
GeoStatsSolvers.IDW
— TypeIDW(var₁=>param₁, var₂=>param₂, ...)
Inverse distance weighting estimation solver.
Parameters
neighbors
- Number of neighbors (default to all the data)distance
- A distance defined in Distances.jl (default toEuclidean()
)power
- Power of the distances (default to1
)
References
Shepard 1968. A two-dimensional interpolation function for irregularly-spaced data.
GeoStatsSolvers.LWR
— TypeLWR(var₁=>param₁, var₂=>param₂, ...)
Locally weighted regression estimation solver.
Parameters
neighbors
- Number of neighbors (default to all the data)distance
- A distance from Distances.jl (default toEuclidean()
)weightfun
- Weighting function (default toexp(-3*h^2/2)
)
References
- Stone 1977. Consistent non-parametric regression.
- Cleveland 1979. Robust locally weighted regression and smoothing scatterplots.
- Cleveland & Grosse 1991. Computational methods for local regression.
GeoStatsSolvers.Kriging
— TypeKriging(var₁=>param₁, var₂=>param₂, ...)
A polyalgorithm Kriging estimation solver.
Each pair var=>param
specifies the KrigingParam
param
for the Kriging variable var
. In order to avoid boilerplate code, the constructor expects pairs of Symbol
and NamedTuple
instead.
Parameters
variogram
- Variogram model (default toGaussianVariogram()
)mean
- Simple Kriging meandegree
- Universal Kriging degreedrifts
- External Drift Kriging drift functions
Latter options override former options. For example, by specifying drifts
, the user is telling the algorithm to ignore degree
and mean
. If no option is specified, Ordinary Kriging is used by default with the variogram
only.
minneighbors
- Minimum number of neighbors (default to1
)maxneighbors
- Maximum number of neighbors (default tonothing
)neighborhood
- Search neighborhood (default tonothing
)distance
- Distance used to find nearest neighbors (default toEuclidean()
)
The maxneighbors
option can be used to perform approximate Kriging with a subset of data points per estimation location. If maxneighbors
is set to nothing
, global Kriging is performed. Two neighborhood search methods are available depending on the value of neighborhood
:
If a
neighborhood
is provided, local Kriging is performed by sliding theneighborhood
in the domain.If
neighborhood
is not provided, the Kriging system is built usingmaxneighbors
nearest neighbors according to adistance
.
Examples
Solve the variable :var₁
with Simple Kriging by specifying the mean
, and the variable :var₂
with Universal Kriging by specifying the degree
and the variogram
model.
julia> Kriging(
:var₁ => (mean=1.,),
:var₂ => (degree=1, variogram=SphericalVariogram(range=20.))
)
Solve all variables of the problem with the default parameters (i.e. Ordinary Kriging with unit Gaussian variogram):
julia> Kriging()
Simulation
GeoStatsSolvers.LUGS
— TypeLUGS(var₁=>param₁, var₂=>param₂, ...)
LU Gaussian simulation.
Parameters
variogram
- Theoretical variogram (default toGaussianVariogram()
)mean
- Mean of unconditional simulation (default to0
)mapping
- Data mapping method (default toNearestMapping()
)factorization
- Factorization method (default tocholesky
)
Joint parameters
correlation
- correlation coefficient between two covariates (default to0
).
Global parameters
rng
- random number generator (default toRandom.GLOBAL_RNG
)
Examples
Simulate two variables var₁
and var₂
independently:
julia> LUGS(:var₁ => (variogram=SphericalVariogram(),mean=10.),
:var₂ => (variogram=GaussianVariogram(),))
Simulate two correlated variables var₁
and var₂
with correlation 0.7
:
julia> LUGS(:var₁ => (variogram=SphericalVariogram(),mean=10.),
:var₂ => (variogram=GaussianVariogram(),),
(:var₁,:var₂) => (correlation=0.7,))
References
GeoStatsSolvers.FFTGS
— TypeFFTGS(var₁=>param₁, var₂=>param₂, ...)
FFT Gaussian simulation.
Parameters
variogram
- theoretical variogram (default toGaussianVariogram()
)mean
- mean of Gaussian field (default to0
)
In the case of conditional simulation, the following parameters can be passed to the underlying Kriging
solver:
minneighbors
- Minimum number of neighbors (default to1
)maxneighbors
- Maximum number of neighbors (default to10
)neighborhood
- Search neighborhood (default tonothing
)distance
- Distance used to find nearest neighbors (default toEuclidean()
)
Global parameters
threads
- number of threads in FFT (default to all physical cores)rng
- random number generator (default toRandom.GLOBAL_RNG
)
References
Gutjahr 1997. General joint conditional simulations using a fast Fourier transform method
Gómez-Hernández, J. & Srivastava, R. 2021. One Step at a Time: The Origins of Sequential Simulation and Beyond
GeoStatsSolvers.SGS
— TypeSGS(var₁=>param₁, var₂=>param₂, ...)
Sequential Gaussian simulation.
Parameters
variogram
- Variogram model (default toGaussianVariogram()
)mean
- mean for simple Kriging (default to0.0
)path
- Simulation path (default toLinearPath()
)minneighbors
- Minimum number of neighbors (default to1
)maxneighbors
- Maximum number of neighbors (default to10
)neighborhood
- Search neighborhood (default tonothing
)distance
- Distance used to find nearest neighbors (default toEuclidean()
)mapping
- Data mapping method (default toNearestMapping()
)
For each location in the simulation path
, a maximum number of neighbors maxneighbors
is used to fit a Gaussian distribution. The neighbors are searched according to a neighborhood
.
Global parameters
rng
- random number generator (default toRandom.GLOBAL_RNG
)
References
- Gomez-Hernandez & Journel 1993. Joint Sequential Simulation of MultiGaussian Fields
GeoStatsSolvers.SPDEGS
— TypeSPDEGS(var₁=>param₁, var₂=>param₂, ...)
SPDE Gaussian simulation.
Parameters
sill
- Sill or total variance (default to1.0
)range
- Range or correlation length (default to1.0
)
References
GeoStatsSolvers.CookieCutter
— TypeCookieCutter(master, others)
A cookie-cutter simulation solver.
Parameters
master
- Master simulation solver (a.k.a. facies solver)others
- Solvers for each value of the master realization
Examples
Simulate lithofacies with image quilting and fill porosity values with LU Gaussian simulation:
julia> f = IQ(:facies => (TI=IMG, template=(30,30,1)))
julia> p₀ = LUGS(:poro => (variogram=SphericalVariogram(range=10.),))
julia> p₁ = LUGS(:poro => (variogram=SphericalVariogram(range=20.),))
julia> CookieCutter(f, Dict(0=>p₀, 1=>p₁))
Learning
GeoStatsSolvers.PointwiseLearn
— TypePointwiseLearn(model)
A learning solver that converts geospatial data to a tabular format with features (and possibly labels) for each point, and then solves the problem with classical statistical learning model
.
Parameters
model
- Learning model implementing theMLJModelInterface.jl
.
References
- Hoffimann et al. 2020. Geostatistical Learning: Challenges and Opportunities