Note
Click here to download the full example code
Model 4 - PinchoutΒΆ
Forcing GemPy to create a layer of varying thickness. We start by importing the necessary dependencies:
Importing GemPy
import gempy as gp
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('pinchout',
extent=[0, 1000, 0, 1000, 0, 1000], resolution=[50, 50, 50],
path_o=path_to_data + "model4_orientations.csv",
path_i=path_to_data + "model4_surface_points.csv")
Out:
Active grids: ['regular']
X | Y | Z | smooth | surface | G_x | G_y | G_z | ||
---|---|---|---|---|---|---|---|---|---|
surface_points | 0 | 0 | 200 | 300 | 2.00e-06 | rock1 | NaN | NaN | NaN |
1 | 0 | 800 | 300 | 2.00e-06 | rock1 | NaN | NaN | NaN | |
2 | 500 | 200 | 375 | 2.00e-06 | rock1 | NaN | NaN | NaN | |
3 | 500 | 800 | 375 | 2.00e-06 | rock1 | NaN | NaN | NaN | |
4 | 1000 | 200 | 450 | 2.00e-06 | rock1 | NaN | NaN | NaN | |
5 | 1000 | 800 | 450 | 2.00e-06 | rock1 | NaN | NaN | NaN | |
6 | 0 | 200 | 700 | 2.00e-06 | rock2 | NaN | NaN | NaN | |
7 | 0 | 800 | 700 | 2.00e-06 | rock2 | NaN | NaN | NaN | |
8 | 500 | 200 | 625 | 2.00e-06 | rock2 | NaN | NaN | NaN | |
9 | 500 | 800 | 625 | 2.00e-06 | rock2 | NaN | NaN | NaN | |
10 | 1000 | 200 | 550 | 2.00e-06 | rock2 | NaN | NaN | NaN | |
11 | 1000 | 800 | 550 | 2.00e-06 | rock2 | NaN | NaN | NaN | |
orientations | 3 | 500 | 500 | 375 | 1.00e-02 | rock1 | -0.15 | 1.00e-12 | 0.99 |
4 | 500 | 200 | 375 | 1.00e-02 | rock1 | -0.15 | 1.00e-12 | 0.99 | |
5 | 500 | 800 | 375 | 1.00e-02 | rock1 | -0.15 | 1.00e-12 | 0.99 | |
0 | 500 | 500 | 625 | 1.00e-02 | rock2 | 0.15 | 1.00e-12 | 0.99 | |
1 | 500 | 200 | 625 | 1.00e-02 | rock2 | 0.15 | 1.00e-12 | 0.99 | |
2 | 500 | 800 | 625 | 1.00e-02 | rock2 | 0.15 | 1.00e-12 | 0.99 |
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 0x7f8f6462a610>
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]
Displaying the result in x and y direction:
gp.plot_2d(geo_data, cell_number=[25],
direction=['x'], show_data=True)

Out:
<gempy.plot.visualization_2d.Plot2D object at 0x7f8f6f8d4c40>
sphinx_gallery_thumbnail_number = 3
gp.plot_2d(geo_data, cell_number=[25],
direction=['y'], show_data=True)

Out:
<gempy.plot.visualization_2d.Plot2D object at 0x7f8f6f0912e0>
gp.save_model(geo_data)
Out:
True
Total running time of the script: ( 0 minutes 4.773 seconds)