Perth Basin, Western Australia

Regional stratigraphy and major normal faults of the northern Perth Basin

This model covers the northern Perth Basin, Western Australia, including eight major normal faults (among them the Darling Fault) offsetting a Permian-to-Cretaceous sedimentary sequence.

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)
cwd = os.getcwd()
if 'examples' not in cwd:
    data_path = os.getcwd() + '/examples'
else:
    data_path = cwd + '/../..'
geo_model = gp.create_geomodel(
    project_name='Perth_Basin',
    extent=[337000, 400000, 6640000, 6710000, -18000, 1000],
    refinement=6,
    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",
    )
)
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
True
False


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
True
False


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
True
False


Select which series are faults

gp.set_is_fault(
    geo_model,
    [
        "fault_Abrolhos_Transfer",
        "fault_Coomallo",
        "fault_Eneabba_South",
        "fault_Hypo_fault_W",
        "fault_Hypo_fault_E",
        "fault_Urella_North",
        "fault_Darling",
        "fault_Urella_South"
    ],
)

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]]
gpv.plot_2d(geo_model, direction=['z'])
Cell Number: mid Direction: z
<gempy_viewer.modules.plot_2d.visualization_2d.Plot2D object at 0x7f3e14f032d0>
[-2800.  1000.]
Active grids: GridTypes.OCTREE|TOPOGRAPHY|NONE

Topography(_regular_grid=RegularGrid(resolution=array([192, 256,  64]), extent=array([ 3.37e+05,  4.00e+05,  6.64e+06,  6.71e+06, -1.80e+04,  1.00e+03]), values=array([[ 3.37164062e+05,  6.64013672e+06, -1.78515625e+04],
       [ 3.37164062e+05,  6.64013672e+06, -1.75546875e+04],
       [ 3.37164062e+05,  6.64013672e+06, -1.72578125e+04],
       ...,
       [ 3.99835938e+05,  6.70986328e+06,  2.57812500e+02],
       [ 3.99835938e+05,  6.70986328e+06,  5.54687500e+02],
       [ 3.99835938e+05,  6.70986328e+06,  8.51562500e+02]],
      shape=(3145728, 3)), mask_topo=array([], shape=(0, 3), dtype=bool), _transform=None, _base_resolution=array([6, 8, 2])), values_2d=array([[[ 3.37000000e+05,  6.64000000e+06, -8.39147067e+02],
        [ 3.37000000e+05,  6.64027451e+06, -7.87038174e+02],
        [ 3.37000000e+05,  6.64054902e+06, -7.43806087e+02],
        ...,
        [ 3.37000000e+05,  6.70945098e+06, -1.01702181e+03],
        [ 3.37000000e+05,  6.70972549e+06, -9.62665055e+02],
        [ 3.37000000e+05,  6.71000000e+06, -9.02652722e+02]],

       [[ 3.37329843e+05,  6.64000000e+06, -8.45509106e+02],
        [ 3.37329843e+05,  6.64027451e+06, -8.07154510e+02],
        [ 3.37329843e+05,  6.64054902e+06, -7.77055023e+02],
        ...,
        [ 3.37329843e+05,  6.70945098e+06, -9.91611095e+02],
        [ 3.37329843e+05,  6.70972549e+06, -9.45242811e+02],
        [ 3.37329843e+05,  6.71000000e+06, -8.97111509e+02]],

       [[ 3.37659686e+05,  6.64000000e+06, -8.25487379e+02],
        [ 3.37659686e+05,  6.64027451e+06, -7.88725276e+02],
        [ 3.37659686e+05,  6.64054902e+06, -7.43281635e+02],
        ...,
        [ 3.37659686e+05,  6.70945098e+06, -9.23235105e+02],
        [ 3.37659686e+05,  6.70972549e+06, -8.77676638e+02],
        [ 3.37659686e+05,  6.71000000e+06, -8.57097627e+02]],

       ...,

       [[ 3.99340314e+05,  6.64000000e+06, -1.26479236e+03],
        [ 3.99340314e+05,  6.64027451e+06, -1.18979385e+03],
        [ 3.99340314e+05,  6.64054902e+06, -1.13495191e+03],
        ...,
        [ 3.99340314e+05,  6.70945098e+06, -1.34370283e+03],
        [ 3.99340314e+05,  6.70972549e+06, -1.35875555e+03],
        [ 3.99340314e+05,  6.71000000e+06, -1.32592610e+03]],

       [[ 3.99670157e+05,  6.64000000e+06, -1.19395572e+03],
        [ 3.99670157e+05,  6.64027451e+06, -1.11955152e+03],
        [ 3.99670157e+05,  6.64054902e+06, -1.08116437e+03],
        ...,
        [ 3.99670157e+05,  6.70945098e+06, -1.30324540e+03],
        [ 3.99670157e+05,  6.70972549e+06, -1.32203653e+03],
        [ 3.99670157e+05,  6.71000000e+06, -1.27123499e+03]],

       [[ 4.00000000e+05,  6.64000000e+06, -1.13597243e+03],
        [ 4.00000000e+05,  6.64027451e+06, -1.06163021e+03],
        [ 4.00000000e+05,  6.64054902e+06, -1.01937065e+03],
        ...,
        [ 4.00000000e+05,  6.70945098e+06, -1.26587597e+03],
        [ 4.00000000e+05,  6.70972549e+06, -1.24971634e+03],
        [ 4.00000000e+05,  6.71000000e+06, -1.20352799e+03]]],
      shape=(192, 256, 3)), source=None, values=array([[ 3.37000000e+05,  6.64000000e+06, -8.39147067e+02],
       [ 3.37000000e+05,  6.64027451e+06, -7.87038174e+02],
       [ 3.37000000e+05,  6.64054902e+06, -7.43806087e+02],
       ...,
       [ 4.00000000e+05,  6.70945098e+06, -1.26587597e+03],
       [ 4.00000000e+05,  6.70972549e+06, -1.24971634e+03],
       [ 4.00000000e+05,  6.71000000e+06, -1.20352799e+03]],
      shape=(49152, 3)), resolution=(192, 256), raster_shape=())
gpv.plot_3d(geo_model)
Perth basin
<gempy_viewer.modules.plot_3d.vista.GemPyToVista object at 0x7f3e14f6fbd0>
gp.compute_model(
    gempy_model=geo_model,
    engine_config=gp.data.GemPyEngineConfig(
        backend=gp.data.AvailableBackends.PYTORCH,
        dtype="float64",
    )
)
Setting Backend To: AvailableBackends.PYTORCH
GPU enabled. Using device: cuda
GPU device count: 1
Current GPU device: 0
Chunking done: 10 chunks
Chunking done: 11 chunks
Chunking done: 7 chunks
Chunking done: 10 chunks
Chunking done: 9 chunks
Chunking done: 7 chunks
Chunking done: 7 chunks
Chunking done: 7 chunks
Chunking done: 8 chunks
Chunking done: 7 chunks
Chunking done: 61 chunks
Chunking done: 36 chunks
Chunking done: 48 chunks
Chunking done: 45 chunks
Chunking done: 36 chunks
Chunking done: 36 chunks
Chunking done: 36 chunks
Chunking done: 42 chunks
Chunking done: 36 chunks
Chunking done: 317 chunks
Chunking done: 19 chunks
Chunking done: 25 chunks
Chunking done: 23 chunks
Chunking done: 19 chunks
Chunking done: 19 chunks
Chunking done: 19 chunks
Chunking done: 22 chunks
Chunking done: 19 chunks
Chunking done: 163 chunks
Chunking done: 26 chunks
Solutions: 6 Octree Levels, 13 DualContouringMeshes


gpv.plot_2d(geo_model, cell_number="mid")
Cell Number: mid Direction: y
<gempy_viewer.modules.plot_2d.visualization_2d.Plot2D object at 0x7f3e3f725850>
gpv.plot_2d(geo_model, cell_number="mid", series_n=-1, show_scalar=True)
Cell Number: mid Direction: y
<gempy_viewer.modules.plot_2d.visualization_2d.Plot2D object at 0x7f3e3d5656d0>
gpv.plot_2d(geo_model, cell_number=[12], direction=["y"], show_data=True, show_topography=True)
Cell Number: 12 Direction: y
<gempy_viewer.modules.plot_2d.visualization_2d.Plot2D object at 0x7f3e144013d0>

sphinx_gallery_thumbnail_number = 6

gpv.plot_3d(geo_model, show_lith=True, show_boundaries=True, show_topography=True, ve=None)
Perth basin
<gempy_viewer.modules.plot_3d.vista.GemPyToVista object at 0x7f3e14f8e430>

Total running time of the script: (1 minutes 22.137 seconds)

Gallery generated by Sphinx-Gallery