StratiGraphics.jl

Stratrigraphy simulation solver for the GeoStats.jl framework
Author JuliaEarth
Popularity
6 Stars
Updated Last
1 Year Ago
Started In
August 2017

StratiGraphics.jl

A tool for creating 3D stratigraphy from 2D geostatistical processes.

StratiGraphics Animation

This package provides an implementation of Markov-Poisson sampling as described in Hoffimann 2018. In this method, geostatistical algorithms from the GeoStats.jl framework are used to quickly generate surfaces of a 3D stratigraphic model.

Installation

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

] add StratiGraphics

Usage

To illustrate the usage of the package, consider a set of satellite images containing spatial patterns that we would like to reproduce in a 3D stratigraphic model:

Flow Images

Each image can serve as a training image for a multiple-point geostatistical process such as ImageQuilting.jl:

using ImageQuilting

solver1 = ImgQuilt(:land => (TI=TI1, tilesize=(30,30,1)))
solver2 = ImgQuilt(:land => (TI=TI2, tilesize=(30,30,1)))
solver3 = ImgQuilt(:land => (TI=TI3, tilesize=(30,30,1)))

procs = [GeoStatsProcess(solver) for solver in [solver1,solver2,solver3]]

We define a geological environment as a set of geological processes, a set of transition probabilities between the processes, and an event duration process:

using StratiGraphics

# transition probabilities
P = rand(3,3)
P = P ./ sum(P, dims=2)

# event duration process
ΔT = ExponentialDuration(1.0)

env = Environment(procs, P, ΔT)

We can simulate the envinroment from an initial state (e.g. flat land) and for a number of epochs to produce a geological record:

nepochs = 10

init = LandState(zeros(100,100))

record = simulate(env, init, nepochs)

From the record, we can produce the strata in the form of surfaces:

strata = Strata(record)

We can choose between an :erosional (default) versus a :depositional stacking:

strata = Strata(record, :depositional)

We can then convert the surfaces into a 3D voxel model by specifying the vertical resolution:

voxelize(strata, 50) # produce a 100x100x50 voxel model

Voxelized Models

For a reproducible example, please check this notebook.

Citation

If you find StratiGraphics.jl useful in your work, please consider citing the thesis:

@PHDTHESIS{Hoffimann2018,
  title={Morphodynamic Analysis and Statistical Synthesis of Geomorphic Data},
  author={Hoffimann, J{\'u}lio},
  school={Stanford University},
  url={https://searchworks.stanford.edu/view/12746435},
  year={2018},
  month={September}
}

Asking for help

If you have any questions, please open an issue.

Used By Packages

No packages found.