A geological model of the Perth basin, Australia
import os
# Importing GemPy
import gempy as gp
import gempy_viewer as gpv
# Importing auxiliary libraries
import matplotlib
matplotlib.rcParams['figure.figsize'] = (20.0, 10.0)
os.environ["aesara_FLAGS"] = "mode=FAST_RUN,device=cuda"
cwd = os.getcwd()
if 'examples' not in cwd:
data_path = os.getcwd() + '/examples'
else:
data_path = cwd + '/../..'
geo_model: gp.data.GeoModel = gp.create_geomodel(
project_name='Perth_Basin',
extent=[337000, 400000, 6640000, 6710000, -18000, 1000],
resolution=[100, 100, 100],
refinement=4,
importer_helper=gp.data.ImporterHelper(
path_to_orientations=data_path + "/data/input_data/perth_basin/Paper_GU2F_sc_faults_topo_Foliations.csv",
path_to_surface_points=data_path + "/data/input_data/perth_basin/Paper_GU2F_sc_faults_topo_Points.csv",
)
)
geo_model.structural_frame
Structural Groups: |
StructuralGroup:
Name: | default_formation |
Structural Relation: | StackRelationType.ERODE |
Elements: |
StructuralElement: |
Name: | Abrolhos_Transfer |
StructuralElement: |
Name: | Cadda |
StructuralElement: |
Name: | Cattamarra |
StructuralElement: |
Name: | Coomallo |
StructuralElement: |
Name: | Cretaceous |
StructuralElement: |
Name: | Darling |
StructuralElement: |
Name: | Eneabba |
StructuralElement: |
Name: | Eneabba_South |
StructuralElement: |
Name: | Hypo_fault_E |
StructuralElement: |
Name: | Hypo_fault_W |
StructuralElement: |
Name: | Lesueur |
StructuralElement: |
Name: | Permian |
StructuralElement: |
Name: | Urella_North |
StructuralElement: |
Name: | Urella_South |
StructuralElement: |
Name: | Woodada_Kockatea |
StructuralElement: |
Name: | Yarragadee |
|
|
Fault Relations: | | default_fo... | default_formation | |
---|
|
|
|
del_surfaces = ['Cadda', 'Woodada_Kockatea', 'Cattamarra']
for s in del_surfaces:
gp.remove_element_by_name(geo_model, s)
geo_model.structural_frame
Structural Groups: |
StructuralGroup:
Name: | default_formation |
Structural Relation: | StackRelationType.ERODE |
Elements: |
StructuralElement: |
Name: | Abrolhos_Transfer |
StructuralElement: |
Name: | Coomallo |
StructuralElement: |
Name: | Cretaceous |
StructuralElement: |
Name: | Darling |
StructuralElement: |
Name: | Eneabba |
StructuralElement: |
Name: | Eneabba_South |
StructuralElement: |
Name: | Hypo_fault_E |
StructuralElement: |
Name: | Hypo_fault_W |
StructuralElement: |
Name: | Lesueur |
StructuralElement: |
Name: | Permian |
StructuralElement: |
Name: | Urella_North |
StructuralElement: |
Name: | Urella_South |
StructuralElement: |
Name: | Yarragadee |
|
|
Fault Relations: | | default_fo... | default_formation | |
---|
|
|
|
gp.map_stack_to_surfaces(
gempy_model=geo_model,
mapping_object={
"fault_Abrolhos_Transfer": ["Abrolhos_Transfer"],
"fault_Coomallo": ["Coomallo"],
"fault_Eneabba_South": ["Eneabba_South"],
"fault_Hypo_fault_W": ["Hypo_fault_W"],
"fault_Hypo_fault_E": ["Hypo_fault_E"],
"fault_Urella_North": ["Urella_North"],
"fault_Darling": ["Darling"],
"fault_Urella_South": ["Urella_South"],
"Sedimentary_Series": ['Cretaceous', 'Yarragadee', 'Eneabba', 'Lesueur', 'Permian']
}
)
Structural Groups: |
StructuralGroup:
Name: | fault_Abrolhos_Transfer |
Structural Relation: | StackRelationType.ERODE |
Elements: |
StructuralElement: |
Name: | Abrolhos_Transfer |
|
StructuralGroup:
Name: | fault_Coomallo |
Structural Relation: | StackRelationType.ERODE |
Elements: |
StructuralElement: |
Name: | Coomallo |
|
StructuralGroup:
Name: | fault_Eneabba_South |
Structural Relation: | StackRelationType.ERODE |
Elements: |
StructuralElement: |
Name: | Eneabba_South |
|
StructuralGroup:
Name: | fault_Hypo_fault_W |
Structural Relation: | StackRelationType.ERODE |
Elements: |
StructuralElement: |
Name: | Hypo_fault_W |
|
StructuralGroup:
Name: | fault_Hypo_fault_E |
Structural Relation: | StackRelationType.ERODE |
Elements: |
StructuralElement: |
Name: | Hypo_fault_E |
|
StructuralGroup:
Name: | fault_Urella_North |
Structural Relation: | StackRelationType.ERODE |
Elements: |
StructuralElement: |
Name: | Urella_North |
|
StructuralGroup:
Name: | fault_Darling |
Structural Relation: | StackRelationType.ERODE |
Elements: |
StructuralElement: |
Name: | Darling |
|
StructuralGroup:
Name: | fault_Urella_South |
Structural Relation: | StackRelationType.ERODE |
Elements: |
StructuralElement: |
Name: | Urella_South |
|
StructuralGroup:
Name: | Sedimentary_Series |
Structural Relation: | StackRelationType.ERODE |
Elements: |
StructuralElement: |
Name: | Cretaceous |
StructuralElement: |
Name: | Yarragadee |
StructuralElement: |
Name: | Eneabba |
StructuralElement: |
Name: | Lesueur |
StructuralElement: |
Name: | Permian |
|
|
Fault Relations: | | fault_Abro... | fault_Coom... | fault_Enea... | fault_Hypo... | fault_Hypo... | fault_Urel... | fault_Darl... | fault_Urel... | Sedimentar... | fault_Abrolhos_Transfer | | | | | | | | | |
---|
fault_Coomallo | | | | | | | | | |
---|
fault_Eneabba_South | | | | | | | | | |
---|
fault_Hypo_fault_W | | | | | | | | | |
---|
fault_Hypo_fault_E | | | | | | | | | |
---|
fault_Urella_North | | | | | | | | | |
---|
fault_Darling | | | | | | | | | |
---|
fault_Urella_South | | | | | | | | | |
---|
Sedimentary_Series | | | | | | | | | |
---|
|
|
|
Select which series are faults
gp.set_is_fault(
geo_model,
fault_groups=[
"fault_Abrolhos_Transfer",
"fault_Coomallo",
"fault_Eneabba_South",
"fault_Hypo_fault_W",
"fault_Hypo_fault_E",
"fault_Urella_North",
"fault_Darling",
"fault_Urella_South"
],
)
Structural Groups: |
StructuralGroup:
Name: | fault_Abrolhos_Transfer |
Structural Relation: | StackRelationType.FAULT |
Elements: |
StructuralElement: |
Name: | Abrolhos_Transfer |
|
StructuralGroup:
Name: | fault_Coomallo |
Structural Relation: | StackRelationType.FAULT |
Elements: |
StructuralElement: |
Name: | Coomallo |
|
StructuralGroup:
Name: | fault_Eneabba_South |
Structural Relation: | StackRelationType.FAULT |
Elements: |
StructuralElement: |
Name: | Eneabba_South |
|
StructuralGroup:
Name: | fault_Hypo_fault_W |
Structural Relation: | StackRelationType.FAULT |
Elements: |
StructuralElement: |
Name: | Hypo_fault_W |
|
StructuralGroup:
Name: | fault_Hypo_fault_E |
Structural Relation: | StackRelationType.FAULT |
Elements: |
StructuralElement: |
Name: | Hypo_fault_E |
|
StructuralGroup:
Name: | fault_Urella_North |
Structural Relation: | StackRelationType.FAULT |
Elements: |
StructuralElement: |
Name: | Urella_North |
|
StructuralGroup:
Name: | fault_Darling |
Structural Relation: | StackRelationType.FAULT |
Elements: |
StructuralElement: |
Name: | Darling |
|
StructuralGroup:
Name: | fault_Urella_South |
Structural Relation: | StackRelationType.FAULT |
Elements: |
StructuralElement: |
Name: | Urella_South |
|
StructuralGroup:
Name: | Sedimentary_Series |
Structural Relation: | StackRelationType.ERODE |
Elements: |
StructuralElement: |
Name: | Cretaceous |
StructuralElement: |
Name: | Yarragadee |
StructuralElement: |
Name: | Eneabba |
StructuralElement: |
Name: | Lesueur |
StructuralElement: |
Name: | Permian |
|
|
Fault Relations: | | fault_Abro... | fault_Coom... | fault_Enea... | fault_Hypo... | fault_Hypo... | fault_Urel... | fault_Darl... | fault_Urel... | Sedimentar... | fault_Abrolhos_Transfer | | | | | | | | | |
---|
fault_Coomallo | | | | | | | | | |
---|
fault_Eneabba_South | | | | | | | | | |
---|
fault_Hypo_fault_W | | | | | | | | | |
---|
fault_Hypo_fault_E | | | | | | | | | |
---|
fault_Urella_North | | | | | | | | | |
---|
fault_Darling | | | | | | | | | |
---|
fault_Urella_South | | | | | | | | | |
---|
Sedimentary_Series | | | | | | | | | |
---|
|
|
|
gp.set_fault_relation(geo_model, fr)
print(geo_model.structural_frame.fault_relations)
[[False False False False False False False False True]
[False False False False False False False False True]
[False False False False False False False False True]
[False False False False False False False False True]
[False False False False False False False False True]
[False False False False False False False False True]
[False False False False False False False False True]
[False False False False False False False False True]
[False False False False False False False False False]]
%matplotlib inline
gpv.plot_2d(geo_model, direction=['z'])

<gempy_viewer.modules.plot_2d.visualization_2d.Plot2D object at 0x7fc8de705360>
gp.set_topography_from_random(geo_model.grid)
[-2800. 1000.]
Active grids: GridTypes.NONE|TOPOGRAPHY|DENSE
<gempy.core.data.grid_modules.topography.Topography object at 0x7fc89b430ac0>

<gempy_viewer.modules.plot_3d.vista.GemPyToVista object at 0x7fc89b433580>
gp.compute_model(
gempy_model=geo_model,
engine_config= gp.data.GemPyEngineConfig(
backend=gp.data.AvailableBackends.PYTORCH,
dtype="float64",
)
)
Setting Backend To: AvailableBackends.PYTORCH
Chunking done: 23 chunks
Chunking done: 31 chunks
Chunking done: 29 chunks
Chunking done: 23 chunks
Chunking done: 23 chunks
Chunking done: 23 chunks
Chunking done: 27 chunks
Chunking done: 23 chunks
Chunking done: 201 chunks
Chunking done: 7 chunks
Solutions: 4 Octree Levels, 13 DualContouringMeshes
gpv.plot_2d(geo_model, cell_number="mid")

<gempy_viewer.modules.plot_2d.visualization_2d.Plot2D object at 0x7fc89b447790>
gpv.plot_2d(geo_model, cell_number="mid", series_n=-1, show_scalar=True)

<gempy_viewer.modules.plot_2d.visualization_2d.Plot2D object at 0x7fc89b4463e0>
gpv.plot_2d(geo_model, cell_number=[12], direction=["y"], show_data=True, show_topography=True)

<gempy_viewer.modules.plot_2d.visualization_2d.Plot2D object at 0x7fc8d9da1f90>
sphinx_gallery_thumbnail_number = 6
gpv.plot_3d(geo_model, show_topography=True)

<gempy_viewer.modules.plot_3d.vista.GemPyToVista object at 0x7fc8deb95a20>
Total running time of the script: (1 minutes 29.880 seconds)
Gallery generated by Sphinx-Gallery