GeoStatsModule

GeoStats.jl is an extensible framework for geospatial data science and geostatistical modeling fully written in Julia. It is comprised of several modules for advanced geometric processing, state-of-the-art geostatistical algorithms and sophisticated visualization of geospatial data.

All further information is provided in the online documentation.

source
Star us on GitHub!

If you have found this software useful, please consider starring it on GitHub. This gives us an accurate lower bound of the (satisfied) user count.

Organizations using the framework:

Would like to become a sponsor? Press the sponsor button in our GitHub repository.

### Textbooks

The following textbooks can be useful to learn the framework. Click on the cover to learn more.

## Overview

In many fields of science, such as mining engineering, hydrogeology, petroleum engineering, and environmental sciences, traditional statistical methods fail to provide unbiased estimates of resources due to the presence of geospatial correlation. Geostatistics (a.k.a. geospatial statistics) is the branch of statistics developed to overcome this limitation. Particularly, it is the branch that takes geospatial coordinates of data into account.

GeoStats.jl is an attempt to bring together bleeding-edge research in the geostatistics community into a comprehensive framework for geospatial data science and geostatistical modeling, as well as to empower researchers and practitioners with a toolkit for fast assessment of different modeling approaches. For a guided tour, please watch our JuliaCon2021 talk:

If you have questions, feature requests, or would like to brainstorm ideas, don't hesitate to start a topic in our community channel.

## Installation

Get the latest stable release with Julia's package manager:

## Quick example

Below is a quick preview of the high-level interface:

using GeoStats

import CairoMakie as Mke

# attribute table
table = (; Z=[1.,0.,1.])

# coordinates for each row
coord = [(25.,25.), (50.,75.), (75.,50.)]

# georeference data
geotable = georef(table, coord)

# interpolation domain
grid = CartesianGrid(100, 100)

# choose an interpolation model
model = Kriging(GaussianVariogram(range=35.))

# perform interpolation over grid
interp = geotable |> Interpolate(grid, model)

# visualize the solution
viz(interp.geometry, color = interp.Z)

For a more detailed example, please consult the Quickstart.

## Project organization

The project is split into various packages:

PackageDescription
GeoStats.jlMain package reexporting full stack of packages for geostatistics.
Meshes.jlComputational geometry and advanced meshing algorithms.
GeoTables.jlGeospatial tables compatible with the framework.
DataScienceTraits.jlTraits for geospatial data science.
TableTransforms.jlTransforms and pipelines with tabular data.
StatsLearnModels.jlStatistical learning models for geospatial prediction.
GeoStatsBase.jlBase package with core geostatistical definitions.
GeoStatsFunctions.jlGeostatistical functions and related tools.
GeoStatsModels.jlGeostatistical models for geospatial interpolation.
GeoStatsProcesses.jlGeostatistical processes for geospatial simulation.
GeoStatsTransforms.jlGeostatistical transforms for geospatial data.
GeoStatsValidation.jlGeostatistical validation methods.

Other packages can be installed separately for additional functionality:

PackageDescription
GeoIO.jlLoad/save geospatial tables in various formats.
DrillHoles.jlDesurvey/composite drillhole data.
GeoArtifacts.jlArtifacts for geospatial data science.

## Citing the software

If you find this software useful in your work, please consider citing it:

@ARTICLE{Hoffimann2018,
title={GeoStats.jl – High-performance geostatistics in Julia},
author={Hoffimann, Júlio},
journal={Journal of Open Source Software},
publisher={The Open Journal},
volume={3},
pages={692},
number={24},
ISSN={2475-9066},
DOI={10.21105/joss.00692},
url={https://dx.doi.org/10.21105/joss.00692},
year={2018},
month={Apr}
}

We ❤ to see our list of publications growing.