Note
Click here to download the full example code
Model 3 - Recumbent Fold¶
A recumbent (overturned) fold. We start by importing the necessary dependencies:
Importing GemPy
import gempy as gp
# Importing auxiliary libraries
import pandas as pd
pd.set_option('precision', 2)
Creating the model by importing the input data and displaying it:
data_path = 'https://raw.githubusercontent.com/cgre-aachen/gempy_data/master/'
path_to_data = data_path + "/data/input_data/jan_models/"
geo_data = gp.create_data('recumbent',
extent=[0, 1000, 0, 1000, 0, 1000], resolution=[50, 50, 50],
path_o=path_to_data + "model3_orientations.csv",
path_i=path_to_data + "model3_surface_points.csv")
Out:
Active grids: ['regular']
X | Y | Z | smooth | surface | G_x | G_y | G_z | ||
---|---|---|---|---|---|---|---|---|---|
surface_points | 0 | 0 | 200 | 800 | 2.00e-06 | rock1 | NaN | NaN | NaN |
1 | 0 | 200 | 200 | 2.00e-06 | rock1 | NaN | NaN | NaN | |
2 | 100 | 200 | 790 | 2.00e-06 | rock1 | NaN | NaN | NaN | |
3 | 100 | 200 | 210 | 2.00e-06 | rock1 | NaN | NaN | NaN | |
4 | 200 | 200 | 780 | 2.00e-06 | rock1 | NaN | NaN | NaN | |
... | ... | ... | ... | ... | ... | ... | ... | ... | |
102 | 300 | 800 | 430 | 2.00e-06 | rock2 | NaN | NaN | NaN | |
103 | 400 | 800 | 560 | 2.00e-06 | rock2 | NaN | NaN | NaN | |
104 | 400 | 800 | 440 | 2.00e-06 | rock2 | NaN | NaN | NaN | |
orientations | 0 | 200 | 500 | 780 | 1.00e-02 | rock1 | -0.1 | 1.00e-12 | -1.0 |
1 | 200 | 500 | 220 | 1.00e-02 | rock1 | -0.1 | 1.00e-12 | 1.0 |
107 rows × 8 columns
Setting and ordering the units and series:
gp.map_stack_to_surfaces(geo_data, {"Strat_Series": ('rock2', 'rock1'), "Basement_Series": ('basement')})
surface | series | order_surfaces | color | id | |
---|---|---|---|---|---|
0 | rock1 | Strat_Series | 1 | #015482 | 1 |
1 | rock2 | Strat_Series | 2 | #9f0052 | 2 |
2 | basement | Basement_Series | 1 | #ffbe00 | 3 |
gp.plot_2d(geo_data, direction=['y'])

Out:
<gempy.plot.visualization_2d.Plot2D object at 0x7f8f57ed6e50>
Calculating the model:
interp_data = gp.set_interpolator(geo_data, theano_optimizer='fast_compile')
Out:
Setting kriging parameters to their default values.
Compiling theano function...
Level of Optimization: fast_compile
Device: cpu
Precision: float64
Number of faults: 0
Compilation Done!
Kriging values:
values
range 1.7e+03
$C_o$ 7.1e+04
drift equations [3, 3]
values | ||
---|---|---|
Structure | isLith | True |
isFault | False | |
number faults | 0 | |
number surfaces | 2 | |
number series | 2 | |
number surfaces per series | [2, 0] | |
len surfaces surface_points | [55, 50] | |
len series surface_points | [105, 0] | |
len series orientations | [2, 0] | |
Options | dtype | float64 |
output | geology | |
theano_optimizer | fast_compile | |
device | cpu | |
verbosity | None | |
Kriging | range | 1.7e+03 |
$C_o$ | 7.1e+04 | |
drift equations | [3, 3] | |
Rescaling | rescaling factor | 20000 |
centers | [350.0, 5000.0, 500.0] |
Displaying the result in x and y direction:
sphinx_gallery_thumbnail_number = 2
gp.plot_2d(geo_data, cell_number=[25],
direction=['y'], show_data=True)
gp.save_model(geo_data)

Out:
True
Total running time of the script: ( 0 minutes 6.464 seconds)