# Problems

The project provides solutions to three types of geostatistical problems. These problems can be defined unambiguously and independently of solvers, which is quite convenient for fair comparison of alternative workflows.

## Estimation

GeoStatsBase.EstimationProblemType
EstimationProblem(sdata, sdomain, vars)

A spatial estimation problem on a given spatial domain sdomain in which the variables to be estimated are listed in vars. The data of the problem is stored in spatial data sdata.

Examples

Create an estimation problem for precipitation measurements:

julia> EstimationProblem(sdata, sdomain, :precipitation)

Create an estimation problem for precipitation and CO₂:

julia> EstimationProblem(sdata, sdomain, (:precipitation,:CO₂))

### Example

Define a 2D estimation problem:

# list of properties with coordinates
props = (Z=[1.,0.,1.],)
coord = [(25.,25.), (50.,75.), (75.,50.)]

# estimation problem
𝒟 = georef(props, coord)
𝒢 = CartesianGrid(100, 100)
𝒫 = EstimationProblem(𝒟, 𝒢, :Z)
2D EstimationProblem
data:      3 MeshData{2,Float64}
domain:    100×100 CartesianGrid{2,Float64}
variables: Z (Float64)

Solve the problem with a few built-in solvers:

# few built-in solvers
S1 = IDW(:Z => (distance=Euclidean(),))
S2 = IDW(:Z => (distance=Chebyshev(),))
S3 = Kriging(:Z => (variogram=GaussianVariogram(range=35.),))

# solve the problem
sol = [solve(𝒫, S) for S in (S1, S2, S3)]

# plot the solution
contourf(sol)
contourf(sol)