Flumy R Package (flumy)
flumy is a R Package for Flumy kernel C++ library.
More details for Flumy are available here: https://flumy.minesparis.psl.eu
This R Package can be used by
anyone who wants to generate realistic non-conditional reservoir models for
meandering channelized fluvial environment (Training images for MPS or training
datasets for GANs).
Please, use this to cite us in
any publication or results for which Flumy has been
used:
--------------------------------------------------
FLUMY™
Process-based
channelized reservoir models
Copyright ©
MINES PARIS - PSL / ARMINES
Free
download from https://flumy.minesparis.psl.eu
--------------------------------------------------
R
install.packages("flumy",repos="https://soft.mines-paristech.fr/cran")
R
# Import package
library(flumy)
library(ggplot2)
nx = 250 # Number of grid nodes along Ox
ny = 200 # Number of grid nodes along Oy
mesh = 10
# Horizontal grid mesh size: 10m
hmax = 3 # Maximum channel depth: 3m
ng = 50
# Required Net-to-Gross: 50%
isbx = 80 # Required sand bodies extension (medium
extension = few meander cutoffs)
verbose = TRUE # Verbose mode
res =
30 # Vertical resolution
(increase 'res' to get higher resolution)
dz = hmax /
res # Vertical discretization step (0.1m)
zul = 3 * hmax
# Fill a reservoir of 3 x hmax height (9m)
nz = round(zul
/ dz) # Number of vertical nodes of the resulted
block of sediments
# Launch the
simulation
seed =
123456 # Simulation seed
# Create the
simulator
flsim = Flumy(nx,
ny, mesh, verbose)
# Launch up
to zul
success = flsim$launch(seed, hmax, isbx, ng, zul)
if (!
success)
cat("Error while running Flumy\n")
# Display
the age of the simulation, the mean topography reached and the total number of
meander cutoffs
cat("Final
age:",flsim$getAge(), "yr\n")
cat("Mean
topography:",round(flsim$getDomain()$getMeanTopo(),2), "m\n")
cat("Number
of cutoffs:",flsim$getNbCutoff(),"\n")
# Retrieve
facies identifiers in a 3D regular grid
fac = flsim$getDomain()$getRegularFacies(dz,0,nz)
fac3 =
array(fac,dim=c(nz,ny,nx))
table(fac3)
# Display
the slice #2 (col.flumy and fac.flumy
are defined in the package)
nslice = 2
df = expand.grid(x = 1:nx, y = 1:ny)
df$val = factor(as.vector(matrix(fac3[nslice,,], nx, ny, byrow=T)))
values = col.flumy[as.integer(levels(df$val))] # Discard colors for missing facies
labels = fac.flumy[as.integer(levels(df$val))] # Discard labels for missing facies
ggplot(df, aes(x,
y, fill=val)) + geom_raster()
+ coord_fixed() + scale_fill_manual(values=values,
labels=labels)