Unit Thickness controlled

This notebook presents a 3D synthetic model of ArchPy and demonstrate the capabilities to constrain units by thickness.

No facies or property modeling here in order to keep the notebook short

[1]:
import numpy as np
import matplotlib
from matplotlib import colors
import matplotlib.pyplot as plt
import geone
import geone.covModel as gcm
import geone.imgplot3d as imgplt3
import pyvista as pv
pv.set_jupyter_backend('static')
import sys

#For loading ArchPy, the path where ArchPy is must be added with sys
sys.path.append("../../")
#my modules
from ArchPy.base import * #ArchPy main functions
from ArchPy.tpgs import * #Truncated plurigaussians

First defining necessary stratigraphic piles (same as in the 3D_archpy_example)

[2]:
PB = Pile(name = "PB",seed=1)
P1 = Pile(name="P1",seed=1)

Dimensions of the grid

[3]:
#grid
sx = 1.5
sy = 1.5
sz = .15
x1 = 20
y1 = 10
z1 = -6
x0 = 0
y0 = 0
z0 = -15
nx = 133
ny = 67
nz = 62


dimensions = (nx, ny, nz)
spacing = (sx, sy, sz)
origin = (x0, y0, z0)

The thickness constraint is defined here, when units are setup. To enforce a specific thickness to a unit, you can simply pass the key “thickness” to surface dictionary a particular unit and put the desired thickness as value

Pile

[4]:
#units covmodel
covmodelD = gcm.CovModel2D(elem=[('cubic', {'w':0.6, 'r':[60,60]})])
covmodelC = gcm.CovModel2D(elem=[('cubic', {'w':0.2, 'r':[80,80]})])
covmodelB = gcm.CovModel2D(elem=[('cubic', {'w':0.6, 'r':[60,60]})])


#create Lithologies
dic_s_D = {"int_method" : "grf_ineq","covmodel" : covmodelD}
dic_f_D = {"f_method":"homogenous"}
D = Unit(name="D",order=1,ID = 1,color="gold",contact="onlap",surface=Surface(contact="onlap",dic_surf=dic_s_D)
         ,dic_facies=dic_f_D)

dic_s_C = {"int_method" : "grf_ineq","covmodel" : covmodelC}
dic_f_C = {"f_method":"homogenous"}
C = Unit(name="C",order=2,ID = 2,color="blue",contact="onlap",dic_facies=dic_f_C,surface=Surface(dic_surf=dic_s_C,contact="onlap"))

dic_s_B = {"int_method" : "grf_ineq","covmodel" : covmodelB, "thickness":2}
dic_f_B = {"f_method":"SubPile","SubPile":PB}
B = Unit(name="B",order=3,ID = 3,color="green",contact="onlap",dic_facies=dic_f_B,surface=Surface(contact="onlap",dic_surf=dic_s_B))

dic_s_A = {"int_method":"grf_ineq","covmodel": covmodelB}
dic_f_A = {"f_method":"homogenous"}
A = Unit(name="A",order=5,ID = 5,color="red",contact="onlap",dic_facies=dic_f_A,surface=Surface(dic_surf = dic_s_A,contact="onlap"))

#Master pile
P1.add_unit([D,C,B,A])

# PB
ds_B3 = {"int_method":"grf_ineq","covmodel":covmodelB}
df_B3 = {"f_method":"homogenous"}
B3 = Unit(name = "B3",order=1,ID = 6,color="forestgreen",surface=Surface(dic_surf=ds_B3,contact="onlap"),dic_facies=df_B3)

ds_B2 = {"int_method":"grf_ineq","covmodel":covmodelB}
df_B2 = {"f_method":"homogenous"}
B2 = Unit(name = "B2",order=2,ID = 7,color="limegreen",surface=Surface(dic_surf=ds_B2,contact="erode"),dic_facies=df_B2)

ds_B1 = {"int_method":"grf_ineq","covmodel":covmodelB}
df_B1 = {"f_method":"homogenous"}
B1 = Unit(name = "B1",order=3, ID = 8,color="palegreen",surface=Surface(dic_surf=ds_B1,contact="onlap"),dic_facies=df_B1)

## Subpile
PB.add_unit([B3,B2,B1])
Unit D: Surface added for interpolation
Unit C: Surface added for interpolation
Unit B: Surface added for interpolation
Unit A: Surface added for interpolation
Stratigraphic unit D added ✅
Stratigraphic unit C added ✅
Stratigraphic unit B added ✅
Stratigraphic unit A added ✅
Unit B3: Surface added for interpolation
Unit B2: Surface added for interpolation
Unit B1: Surface added for interpolation
Stratigraphic unit B3 added ✅
Stratigraphic unit B2 added ✅
Stratigraphic unit B1 added ✅
[5]:
top = np.ones([ny,nx])*-6
bot = np.ones([ny,nx])*z0

Boreholes

[6]:
#logs strati
log_strati1 = [(C,-6.01),(B3,-8),(B2,-9),(B1,-9.5),(A,-10)]
log_strati2 = [(C,-6.01),(B3,-8.5),(B2,-9.5),(A,-10.5)]
log_strati3 = [(D,-6.01),(B3,-8),(B2,-8.5),(B1,-9.5),(A,-10.5)]
log_strati4 = [(D,-6.01),(B3,-9),(B2,-10),(A,-11)]
log_strati5 = [(D,-6.01),(C,-10),(A,-12)]
log_strati6 = [(D,-6.01),(A,-9)]

#create boreholes
bh1 = borehole("b1",1,x=10*1,y=10*5,z=log_strati1[0][1],depth =9,log_strati=log_strati1)
bh2 = borehole("b2",2,x=10*3,y=10*2,z=log_strati2[0][1],depth =8,log_strati=log_strati2)
bh3 = borehole("b3",3,x=10*5,y=10*6,z=log_strati3[0][1],depth =7,log_strati=log_strati3)
bh4 = borehole("b4",4,x=10*10,y=10*1,z=log_strati4[0][1],depth =8,log_strati=log_strati4)
bh5 = borehole("b5",5,x=10*15,y=10*3,z=log_strati5[0][1],depth =8,log_strati=log_strati5)
bh6 = borehole("b6",6,x=10*19,y=10*9,z=log_strati6[0][1],depth =6,log_strati=log_strati6)
[7]:
domain = np.ones([ny,nx],dtype=bool)
domain[: 5]= 0
domain[-5:] = 0
plt.imshow(domain)
[7]:
<matplotlib.image.AxesImage at 0x258caa760d0>
../_images/notebooks_3D_ArchPy_thickness_controlled_12_1.png

Table

[8]:
T1 = Arch_table(name = "P1",seed=1)
T1.set_Pile_master(P1)
T1.add_grid(dimensions, spacing, origin, top=top,bot=bot,polygon=domain)
T1.rem_all_bhs()
T1.add_bh([bh1,bh2,bh3,bh4,bh5,bh6])
Pile sets as Pile master
## Adding Grid ##
## Grid added and is now simulation grid ##
Standard boreholes removed
Fake boreholes removed
Geological map boreholes removed
Borehole 1 goes below model limits, borehole 1 depth cut
Borehole 1 added
Borehole 2 added
Borehole 3 added
Borehole 4 added
Borehole 5 added
Borehole 6 added
[9]:
T1.process_bhs()
##### ORDERING UNITS #####
Pile P1: ordering units
Stratigraphic units have been sorted according to order
Discrepency in the orders for units A and B
Changing orders for that they range from 1 to n
Pile PB: ordering units
Stratigraphic units have been sorted according to order
hierarchical relations set

 ## Computing distributions for Normal Score Transform ##

Processing ended successfully
[10]:
# plot piles
T1.plot_pile()
../_images/notebooks_3D_ArchPy_thickness_controlled_16_0.png
[11]:
# display tables
T1.get_sp(unit_kws=["covmodel"])[0]
[11]:
  name contact int_method covmodel filling_method list_facies
0 D onlap grf_ineq 0: cub (w: 0.6, r: [60, 60]) homogenous []
1 C onlap grf_ineq 0: cub (w: 0.2, r: [80, 80]) homogenous []
2 B onlap grf_ineq 0: cub (w: 0.6, r: [60, 60]) SubPile []
3 A onlap grf_ineq 0: cub (w: 0.6, r: [60, 60]) homogenous []
4 B3 onlap grf_ineq 0: cub (w: 0.6, r: [60, 60]) homogenous []
5 B2 erode grf_ineq 0: cub (w: 0.6, r: [60, 60]) homogenous []
6 B1 onlap grf_ineq 0: cub (w: 0.6, r: [60, 60]) homogenous []

When you are computing the surface, you can decide to activate or not the vertical discretization (in case you are only interested in the simulated surfaces.) But beaware that you will not be able to proceed with facies and property modeling if you do so. by default it is set to true

Compute

[12]:
T1.compute_surf(20)
########## PILE P1 ##########
Pile P1: ordering units
Stratigraphic units have been sorted according to order

#### COMPUTING SURFACE OF UNIT A
A: time elapsed for computing surface 0.016732215881347656 s

#### COMPUTING SURFACE OF UNIT B
B: time elapsed for computing surface 0.018623828887939453 s

#### COMPUTING SURFACE OF UNIT C
C: time elapsed for computing surface 0.0297393798828125 s

#### COMPUTING SURFACE OF UNIT D
D: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.005014896392822266 s

#### COMPUTING SURFACE OF UNIT A
A: time elapsed for computing surface 0.017739057540893555 s

#### COMPUTING SURFACE OF UNIT B
B: time elapsed for computing surface 0.01915574073791504 s

#### COMPUTING SURFACE OF UNIT C
C: time elapsed for computing surface 0.025644540786743164 s

#### COMPUTING SURFACE OF UNIT D
D: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.005013942718505859 s

#### COMPUTING SURFACE OF UNIT A
A: time elapsed for computing surface 0.014948368072509766 s

#### COMPUTING SURFACE OF UNIT B
B: time elapsed for computing surface 0.019369840621948242 s

#### COMPUTING SURFACE OF UNIT C
C: time elapsed for computing surface 0.030466318130493164 s

#### COMPUTING SURFACE OF UNIT D
D: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.005031585693359375 s

#### COMPUTING SURFACE OF UNIT A
A: time elapsed for computing surface 0.01730799674987793 s

#### COMPUTING SURFACE OF UNIT B
B: time elapsed for computing surface 0.021148681640625 s

#### COMPUTING SURFACE OF UNIT C
C: time elapsed for computing surface 0.03190493583679199 s

#### COMPUTING SURFACE OF UNIT D
D: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.004038095474243164 s

#### COMPUTING SURFACE OF UNIT A
A: time elapsed for computing surface 0.019120216369628906 s

#### COMPUTING SURFACE OF UNIT B
B: time elapsed for computing surface 0.02335214614868164 s

#### COMPUTING SURFACE OF UNIT C
C: time elapsed for computing surface 0.031317710876464844 s

#### COMPUTING SURFACE OF UNIT D
D: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.0050389766693115234 s

#### COMPUTING SURFACE OF UNIT A
A: time elapsed for computing surface 0.016129016876220703 s

#### COMPUTING SURFACE OF UNIT B
B: time elapsed for computing surface 0.021165132522583008 s

#### COMPUTING SURFACE OF UNIT C
C: time elapsed for computing surface 0.03229212760925293 s

#### COMPUTING SURFACE OF UNIT D
D: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.0050504207611083984 s

#### COMPUTING SURFACE OF UNIT A
A: time elapsed for computing surface 0.01670217514038086 s

#### COMPUTING SURFACE OF UNIT B
B: time elapsed for computing surface 0.0242767333984375 s

#### COMPUTING SURFACE OF UNIT C
C: time elapsed for computing surface 0.03229165077209473 s

#### COMPUTING SURFACE OF UNIT D
D: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.0050275325775146484 s

#### COMPUTING SURFACE OF UNIT A
A: time elapsed for computing surface 0.017197132110595703 s

#### COMPUTING SURFACE OF UNIT B
B: time elapsed for computing surface 0.021694660186767578 s

#### COMPUTING SURFACE OF UNIT C
C: time elapsed for computing surface 0.03425121307373047 s

#### COMPUTING SURFACE OF UNIT D
D: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.00504302978515625 s

#### COMPUTING SURFACE OF UNIT A
A: time elapsed for computing surface 0.01610732078552246 s

#### COMPUTING SURFACE OF UNIT B
B: time elapsed for computing surface 0.021120071411132812 s

#### COMPUTING SURFACE OF UNIT C
C: time elapsed for computing surface 0.028222084045410156 s

#### COMPUTING SURFACE OF UNIT D
D: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.0040874481201171875 s

#### COMPUTING SURFACE OF UNIT A
A: time elapsed for computing surface 0.015128612518310547 s

#### COMPUTING SURFACE OF UNIT B
B: time elapsed for computing surface 0.02219104766845703 s

#### COMPUTING SURFACE OF UNIT C
C: time elapsed for computing surface 0.029181480407714844 s

#### COMPUTING SURFACE OF UNIT D
D: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.004025459289550781 s

#### COMPUTING SURFACE OF UNIT A
A: time elapsed for computing surface 0.01560068130493164 s

#### COMPUTING SURFACE OF UNIT B
B: time elapsed for computing surface 0.02021050453186035 s

#### COMPUTING SURFACE OF UNIT C
C: time elapsed for computing surface 0.03139209747314453 s

#### COMPUTING SURFACE OF UNIT D
D: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.005024909973144531 s

#### COMPUTING SURFACE OF UNIT A
A: time elapsed for computing surface 0.018152713775634766 s

#### COMPUTING SURFACE OF UNIT B
B: time elapsed for computing surface 0.022151708602905273 s

#### COMPUTING SURFACE OF UNIT C
C: time elapsed for computing surface 0.03180646896362305 s

#### COMPUTING SURFACE OF UNIT D
D: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.0041615962982177734 s

#### COMPUTING SURFACE OF UNIT A
A: time elapsed for computing surface 0.01724553108215332 s

#### COMPUTING SURFACE OF UNIT B
B: time elapsed for computing surface 0.023412704467773438 s

#### COMPUTING SURFACE OF UNIT C
C: time elapsed for computing surface 0.031601667404174805 s

#### COMPUTING SURFACE OF UNIT D
D: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.005104780197143555 s

#### COMPUTING SURFACE OF UNIT A
A: time elapsed for computing surface 0.020002126693725586 s

#### COMPUTING SURFACE OF UNIT B
B: time elapsed for computing surface 0.01999807357788086 s

#### COMPUTING SURFACE OF UNIT C
C: time elapsed for computing surface 0.03099966049194336 s

#### COMPUTING SURFACE OF UNIT D
D: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.00600433349609375 s

#### COMPUTING SURFACE OF UNIT A
A: time elapsed for computing surface 0.017509937286376953 s

#### COMPUTING SURFACE OF UNIT B
B: time elapsed for computing surface 0.022002458572387695 s

#### COMPUTING SURFACE OF UNIT C
C: time elapsed for computing surface 0.03399848937988281 s

#### COMPUTING SURFACE OF UNIT D
D: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.0050008296966552734 s

#### COMPUTING SURFACE OF UNIT A
A: time elapsed for computing surface 0.01900625228881836 s

#### COMPUTING SURFACE OF UNIT B
B: time elapsed for computing surface 0.022506237030029297 s

#### COMPUTING SURFACE OF UNIT C
C: time elapsed for computing surface 0.029000043869018555 s

#### COMPUTING SURFACE OF UNIT D
D: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.00500035285949707 s

#### COMPUTING SURFACE OF UNIT A
A: time elapsed for computing surface 0.016013383865356445 s

#### COMPUTING SURFACE OF UNIT B
B: time elapsed for computing surface 0.02299976348876953 s

#### COMPUTING SURFACE OF UNIT C
C: time elapsed for computing surface 0.03151082992553711 s

#### COMPUTING SURFACE OF UNIT D
D: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.004998922348022461 s

#### COMPUTING SURFACE OF UNIT A
A: time elapsed for computing surface 0.017999649047851562 s

#### COMPUTING SURFACE OF UNIT B
B: time elapsed for computing surface 0.022005081176757812 s

#### COMPUTING SURFACE OF UNIT C
C: time elapsed for computing surface 0.03600001335144043 s

#### COMPUTING SURFACE OF UNIT D
D: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.004506587982177734 s

#### COMPUTING SURFACE OF UNIT A
A: time elapsed for computing surface 0.021003246307373047 s

#### COMPUTING SURFACE OF UNIT B
B: time elapsed for computing surface 0.023101329803466797 s

#### COMPUTING SURFACE OF UNIT C
C: time elapsed for computing surface 0.031758785247802734 s

#### COMPUTING SURFACE OF UNIT D
D: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.006000518798828125 s

#### COMPUTING SURFACE OF UNIT A
A: time elapsed for computing surface 0.018680095672607422 s

#### COMPUTING SURFACE OF UNIT B
B: time elapsed for computing surface 0.02147531509399414 s

#### COMPUTING SURFACE OF UNIT C
C: time elapsed for computing surface 0.0319972038269043 s

#### COMPUTING SURFACE OF UNIT D
D: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.004151344299316406 s
##########################

########## PILE PB ##########
Pile PB: ordering units
Stratigraphic units have been sorted according to order

#### COMPUTING SURFACE OF UNIT B1
B1: time elapsed for computing surface 0.02362990379333496 s

#### COMPUTING SURFACE OF UNIT B2
B2: time elapsed for computing surface 0.017000198364257812 s

#### COMPUTING SURFACE OF UNIT B3
B3: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.003999233245849609 s

#### COMPUTING SURFACE OF UNIT B1
B1: time elapsed for computing surface 0.024003267288208008 s

#### COMPUTING SURFACE OF UNIT B2
B2: time elapsed for computing surface 0.018505096435546875 s

#### COMPUTING SURFACE OF UNIT B3
B3: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.002999544143676758 s

#### COMPUTING SURFACE OF UNIT B1
B1: time elapsed for computing surface 0.017000198364257812 s

#### COMPUTING SURFACE OF UNIT B2
B2: time elapsed for computing surface 0.013000011444091797 s

#### COMPUTING SURFACE OF UNIT B3
B3: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.004000186920166016 s

#### COMPUTING SURFACE OF UNIT B1
B1: time elapsed for computing surface 0.017003774642944336 s

#### COMPUTING SURFACE OF UNIT B2
B2: time elapsed for computing surface 0.014997005462646484 s

#### COMPUTING SURFACE OF UNIT B3
B3: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.004002571105957031 s

#### COMPUTING SURFACE OF UNIT B1
B1: time elapsed for computing surface 0.024516820907592773 s

#### COMPUTING SURFACE OF UNIT B2
B2: time elapsed for computing surface 0.017998218536376953 s

#### COMPUTING SURFACE OF UNIT B3
B3: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.004002809524536133 s

#### COMPUTING SURFACE OF UNIT B1
B1: time elapsed for computing surface 0.019996166229248047 s

#### COMPUTING SURFACE OF UNIT B2
B2: time elapsed for computing surface 0.019002199172973633 s

#### COMPUTING SURFACE OF UNIT B3
B3: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.006003379821777344 s

#### COMPUTING SURFACE OF UNIT B1
B1: time elapsed for computing surface 0.022007226943969727 s

#### COMPUTING SURFACE OF UNIT B2
B2: time elapsed for computing surface 0.015500783920288086 s

#### COMPUTING SURFACE OF UNIT B3
B3: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.003000497817993164 s

#### COMPUTING SURFACE OF UNIT B1
B1: time elapsed for computing surface 0.021000146865844727 s

#### COMPUTING SURFACE OF UNIT B2
B2: time elapsed for computing surface 0.01700448989868164 s

#### COMPUTING SURFACE OF UNIT B3
B3: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.0039997100830078125 s

#### COMPUTING SURFACE OF UNIT B1
B1: time elapsed for computing surface 0.02299952507019043 s

#### COMPUTING SURFACE OF UNIT B2
B2: time elapsed for computing surface 0.016010046005249023 s

#### COMPUTING SURFACE OF UNIT B3
B3: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.003505229949951172 s

#### COMPUTING SURFACE OF UNIT B1
B1: time elapsed for computing surface 0.0200042724609375 s

#### COMPUTING SURFACE OF UNIT B2
B2: time elapsed for computing surface 0.018000125885009766 s

#### COMPUTING SURFACE OF UNIT B3
B3: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.004000663757324219 s

#### COMPUTING SURFACE OF UNIT B1
B1: time elapsed for computing surface 0.023000001907348633 s

#### COMPUTING SURFACE OF UNIT B2
B2: time elapsed for computing surface 0.01799941062927246 s

#### COMPUTING SURFACE OF UNIT B3
B3: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.0030028820037841797 s

#### COMPUTING SURFACE OF UNIT B1
B1: time elapsed for computing surface 0.022513866424560547 s

#### COMPUTING SURFACE OF UNIT B2
B2: time elapsed for computing surface 0.017000198364257812 s

#### COMPUTING SURFACE OF UNIT B3
B3: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.004000186920166016 s

#### COMPUTING SURFACE OF UNIT B1
B1: time elapsed for computing surface 0.02200031280517578 s

#### COMPUTING SURFACE OF UNIT B2
B2: time elapsed for computing surface 0.016000032424926758 s

#### COMPUTING SURFACE OF UNIT B3
B3: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.0040035247802734375 s

#### COMPUTING SURFACE OF UNIT B1
B1: time elapsed for computing surface 0.021999597549438477 s

#### COMPUTING SURFACE OF UNIT B2
B2: time elapsed for computing surface 0.021509170532226562 s

#### COMPUTING SURFACE OF UNIT B3
B3: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.002992391586303711 s

#### COMPUTING SURFACE OF UNIT B1
B1: time elapsed for computing surface 0.01800060272216797 s

#### COMPUTING SURFACE OF UNIT B2
B2: time elapsed for computing surface 0.01899886131286621 s

#### COMPUTING SURFACE OF UNIT B3
B3: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.004002094268798828 s

#### COMPUTING SURFACE OF UNIT B1
B1: time elapsed for computing surface 0.02300095558166504 s

#### COMPUTING SURFACE OF UNIT B2
B2: time elapsed for computing surface 0.017509937286376953 s

#### COMPUTING SURFACE OF UNIT B3
B3: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.0030007362365722656 s

#### COMPUTING SURFACE OF UNIT B1
B1: time elapsed for computing surface 0.018001079559326172 s

#### COMPUTING SURFACE OF UNIT B2
B2: time elapsed for computing surface 0.0169985294342041 s

#### COMPUTING SURFACE OF UNIT B3
B3: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.00400090217590332 s

#### COMPUTING SURFACE OF UNIT B1
B1: time elapsed for computing surface 0.019997119903564453 s

#### COMPUTING SURFACE OF UNIT B2
B2: time elapsed for computing surface 0.016998767852783203 s

#### COMPUTING SURFACE OF UNIT B3
B3: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.0030024051666259766 s

#### COMPUTING SURFACE OF UNIT B1
B1: time elapsed for computing surface 0.020505666732788086 s

#### COMPUTING SURFACE OF UNIT B2
B2: time elapsed for computing surface 0.01800084114074707 s

#### COMPUTING SURFACE OF UNIT B3
B3: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.003998994827270508 s

#### COMPUTING SURFACE OF UNIT B1
B1: time elapsed for computing surface 0.023000478744506836 s

#### COMPUTING SURFACE OF UNIT B2
B2: time elapsed for computing surface 0.017999649047851562 s

#### COMPUTING SURFACE OF UNIT B3
B3: time elapsed for computing surface 0.0 s

Time elapsed for getting domains 0.0040018558502197266 s
##########################


### 2.4878933429718018: Total time elapsed for computing surfaces ###

Outputs

Checking the mean thickness of B unit. We can see that it is close to the given value of 2 m, except where boreholes indicate that this unit is absent. This highlights a contradiction between the concept of a 2 m thickness and the data, which show that the unit can sometimes be absent. ArchPy does not issue any warnings for this kind of issue, so it is up to the user to ensure that their model makes sense.

[13]:
plt.imshow(np.mean((T1.get_surfaces_unit(B, typ="top") - T1.get_surfaces_unit(B, typ="bot")), axis=0))
plt.colorbar()
[13]:
<matplotlib.colorbar.Colorbar at 0x258ccd9b210>
../_images/notebooks_3D_ArchPy_thickness_controlled_23_1.png

Plotting units

ArchPy integrates multiple plotting utilities that mostly rely on Pyvista and Geone. Below are some examples

[14]:
p = pv.Plotter()
v_ex = 1

T1.plot_units(0, v_ex=v_ex, plotter=p, slicex=(0.2, 0.5, 0.8), slicey=(0.2, 0.5, 0.8))
T1.plot_bhs(plotter=p, v_ex=v_ex)
p.show()
../_images/notebooks_3D_ArchPy_thickness_controlled_25_0.png

Cross-sections

ArchPy integrates the possibility to make cross-section, interactively or not. You can pass a list of point where to draw the cross-section. Boreholes are projected on the cross-section if they are at a distance less than dist_max. You can choose which realization to plot with iu parameter. The width of the boreholes can be set with width parameter.

[15]:
#cross section
#first a list of points must be defined
p1 = [10,10]
p2 = [50,70]
p3 = [150,90]
T1.plot_cross_section([p1,p2,p3],iu=5, ratio_aspect=2, dist_max=15, width=2, h_level=0, typ="units")
../_images/notebooks_3D_ArchPy_thickness_controlled_27_0.png
[16]:
T1.plot_proba(B, filtering_interval=[0.01, 1])
../_images/notebooks_3D_ArchPy_thickness_controlled_28_0.png