geoML
Machine learning models for spatial and geoscientific data, built on variational Gaussian processes. Kriging’s assumptions, without kriging’s limits: variables of any kind in one model, non-Gaussian data through trained warpings, block support without a change-of-support formula, and simulation throughout.
import geoml
geoml.set_seed(1234)
walker, grid = geoml.datasets.walker()
inducing = geoml.data.inducing.from_kmeans(walker, 100, seed=0)
gp = geoml.latent.BasicGP(
geoml.latent.BasicInput(inducing,
transform=geoml.transform.Isotropic(50)),
size=1, kernel=geoml.kernels.Spherical())
warping = geoml.warping.ChainedWarping(
geoml.warping.Softplus(1), geoml.warping.ZScore(1))
model = geoml.models.VGPNetwork(
walker, "V", geoml.likelihood.Gaussian(warping), gp)
model.train_full(max_iter=300)
model.predict(grid, n_sim=50)
grid.variables["V"].reset_quantiles([0.05, 0.5, 0.95])
Installing
pip install -e .
Python 3.10 or newer. The dependencies are declared in pyproject.toml;
pip install -e .[dev] adds what the documentation and the type check need.
Where to go
The manual teaches the model: seventeen chapters from kriging to the variational GP, through the workflow, to three case studies. Every code block in it runs.
The API reference documents every public class and function, module by module.
Internals collects the design records: what was built, what was measured, and why the package settled where it did.
Citing
geoML implements the methods of a series of papers on Gaussian processes for geological modelling; see the repository’s README for the current list.
Licence
GPL-3, dual-licensed. See the repository for details.