A tool for creating 3D stratigraphy from 2D geostatistical processes.
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.
Get the latest stable release with Julia's package manager:
] add StratiGraphics
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:
Each image can serve as a training image for a multiple-point geostatistical process such as ImageQuilting.jl:
using ImageQuilting
proc1 = QuiltingProcess(TI1, (30,30))
proc2 = QuiltingProcess(TI2, (30,30))
proc3 = QuiltingProcess(TI3, (30,30))
procs = [proc1, proc2, proc3]
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 environment 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
For a reproducible example, please check the GeoStatsTutorials.
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}
}
If you have any questions, please open an issue.