.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples/real/Alesmodel.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr_examples_real_Alesmodel.py: Model of Ales, France: Plotting Sections and Maps ====================================== .. GENERATED FROM PYTHON SOURCE LINES 7-13 .. admonition:: Explanation This model is generally quite unstable and requires float64 precision to determine a solution. The lack of data in one corner for the TRIAS and LIAS series causes the model to bend unrealistically, eroding the CARBO layer, which disappears in that section. .. GENERATED FROM PYTHON SOURCE LINES 13-18 .. code-block:: Python import gempy as gp import gempy_viewer as gpv import os .. GENERATED FROM PYTHON SOURCE LINES 19-20 Setting up paths .. GENERATED FROM PYTHON SOURCE LINES 20-27 .. code-block:: Python cwd = os.getcwd() data_path = os.path.join(cwd, 'examples') if 'examples' not in cwd else os.path.join(cwd, '../..') path_interf = os.path.join(data_path, "data/input_data/AlesModel/2018_interf.csv") path_orient = os.path.join(data_path, "data/input_data/AlesModel/2018_orient_clust_n_init5_0.csv") path_dem = os.path.join(data_path, "data/input_data/AlesModel/_cropped_DEM_coarse.tif") .. GENERATED FROM PYTHON SOURCE LINES 28-29 Creating the geological model .. GENERATED FROM PYTHON SOURCE LINES 29-40 .. code-block:: Python geo_model: gp.data.GeoModel = gp.create_geomodel( project_name='Claudius', extent=[729550.0, 751500.0, 1913500.0, 1923650.0, -1800.0, 800.0], resolution=None, refinement=6, importer_helper=gp.data.ImporterHelper( path_to_orientations=path_orient, path_to_surface_points=path_interf, ) ) .. GENERATED FROM PYTHON SOURCE LINES 41-42 Setting up the section grid .. GENERATED FROM PYTHON SOURCE LINES 42-49 .. code-block:: Python gp.set_section_grid( grid=geo_model.grid, section_dict={ 'section1': ([732000, 1916000], [745000, 1916000], [200, 150]) } ) .. rst-class:: sphx-glr-script-out .. code-block:: none Active grids: GridTypes.NONE|SECTIONS|OCTREE .. raw:: html
start stop resolution dist
section1 [732000, 1916000] [745000, 1916000] [200, 150] 13000.0


.. GENERATED FROM PYTHON SOURCE LINES 50-51 Sorting lithologies .. GENERATED FROM PYTHON SOURCE LINES 51-64 .. code-block:: Python gp.map_stack_to_surfaces( gempy_model=geo_model, mapping_object={ 'fault_left': 'fault_left', 'fault_right': 'fault_right', 'fault_lr': 'fault_lr', 'Trias_Series': ('TRIAS', 'LIAS'), 'Carbon_Series': 'CARBO', 'Basement_Series': 'basement' }, remove_unused_series=True ) .. rst-class:: sphx-glr-script-out .. code-block:: none Could not find element 'basement' in any group. .. raw:: html
Structural Groups: StructuralGroup:
Name:fault_left
Structural Relation:StackRelationType.ERODE
Elements:
StructuralElement:
Name:fault_left

StructuralGroup:
Name:fault_right
Structural Relation:StackRelationType.ERODE
Elements:
StructuralElement:
Name:fault_right

StructuralGroup:
Name:fault_lr
Structural Relation:StackRelationType.ERODE
Elements:
StructuralElement:
Name:fault_lr

StructuralGroup:
Name:Trias_Series
Structural Relation:StackRelationType.ERODE
Elements:
StructuralElement:
Name:TRIAS

StructuralElement:
Name:LIAS

StructuralGroup:
Name:Carbon_Series
Structural Relation:StackRelationType.ERODE
Elements:
StructuralElement:
Name:CARBO
Fault Relations:
fault_leftfault_righ...fault_lrTrias_Seri...Carbon_Ser...
fault_left
fault_right
fault_lr
Trias_Series
Carbon_Series
True
False


.. GENERATED FROM PYTHON SOURCE LINES 65-66 Changing colors .. GENERATED FROM PYTHON SOURCE LINES 66-70 .. code-block:: Python geo_model.structural_frame.get_element_by_name("LIAS").color = "#015482" geo_model.structural_frame.get_element_by_name("TRIAS").color = "#9f0052" geo_model.structural_frame.get_element_by_name("CARBO").color = "#ffbe00" .. GENERATED FROM PYTHON SOURCE LINES 71-72 Plotting the 2D model .. GENERATED FROM PYTHON SOURCE LINES 72-74 .. code-block:: Python gpv.plot_2d(geo_model, direction='y') .. image-sg:: /examples/real/images/sphx_glr_Alesmodel_001.png :alt: Cell Number: mid Direction: y :srcset: /examples/real/images/sphx_glr_Alesmodel_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none .. GENERATED FROM PYTHON SOURCE LINES 75-76 Plotting section traces .. GENERATED FROM PYTHON SOURCE LINES 76-78 .. code-block:: Python gpv.plot_section_traces(geo_model) .. image-sg:: /examples/real/images/sphx_glr_Alesmodel_002.png :alt: Cell Number: -1 Direction: z :srcset: /examples/real/images/sphx_glr_Alesmodel_002.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none .. GENERATED FROM PYTHON SOURCE LINES 79-80 Setting faults .. GENERATED FROM PYTHON SOURCE LINES 80-90 .. code-block:: Python gp.set_is_fault( frame=geo_model.structural_frame, fault_groups=[ geo_model.structural_frame.get_group_by_name('fault_left'), geo_model.structural_frame.get_group_by_name('fault_right'), geo_model.structural_frame.get_group_by_name('fault_lr') ], change_color=True ) .. raw:: html
Structural Groups: StructuralGroup:
Name:fault_left
Structural Relation:StackRelationType.FAULT
Elements:
StructuralElement:
Name:fault_left

StructuralGroup:
Name:fault_right
Structural Relation:StackRelationType.FAULT
Elements:
StructuralElement:
Name:fault_right

StructuralGroup:
Name:fault_lr
Structural Relation:StackRelationType.FAULT
Elements:
StructuralElement:
Name:fault_lr

StructuralGroup:
Name:Trias_Series
Structural Relation:StackRelationType.ERODE
Elements:
StructuralElement:
Name:TRIAS

StructuralElement:
Name:LIAS

StructuralGroup:
Name:Carbon_Series
Structural Relation:StackRelationType.ERODE
Elements:
StructuralElement:
Name:CARBO
Fault Relations:
fault_leftfault_righ...fault_lrTrias_Seri...Carbon_Ser...
fault_left
fault_right
fault_lr
Trias_Series
Carbon_Series
True
False


.. GENERATED FROM PYTHON SOURCE LINES 91-92 Setting topography from file .. GENERATED FROM PYTHON SOURCE LINES 92-101 .. code-block:: Python gp.set_topography_from_file( grid=geo_model.grid, filepath=path_dem, crop_to_extent=[729550.0, 751500.0, 1913500.0, 1923650.0] ) # Plotting 3D model with topography gpv.plot_3d(geo_model, show_topography=True, ve=1, image=True) .. image-sg:: /examples/real/images/sphx_glr_Alesmodel_003.png :alt: Alesmodel :srcset: /examples/real/images/sphx_glr_Alesmodel_003.png :class: sphx-glr-single-img .. image-sg:: /examples/real/images/sphx_glr_Alesmodel_004.png :alt: Alesmodel :srcset: /examples/real/images/sphx_glr_Alesmodel_004.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none Active grids: GridTypes.NONE|SECTIONS|TOPOGRAPHY|OCTREE .. GENERATED FROM PYTHON SOURCE LINES 102-103 Getting the Carbon Series .. GENERATED FROM PYTHON SOURCE LINES 103-105 .. code-block:: Python carbo = geo_model.structural_frame.get_group_by_name("Carbon_Series") .. GENERATED FROM PYTHON SOURCE LINES 106-107 Modifying interpolation options for better model fitting .. GENERATED FROM PYTHON SOURCE LINES 107-115 .. code-block:: Python geo_model.interpolation_options.number_octree_levels_surface = 4 geo_model.interpolation_options.kernel_options.range = 0.8 gp.modify_surface_points( geo_model=geo_model, elements_names=["CARBO", "LIAS", "TRIAS"], nugget=0.005 ) .. raw:: html
Structural Groups: StructuralGroup:
Name:fault_left
Structural Relation:StackRelationType.FAULT
Elements:
StructuralElement:
Name:fault_left

StructuralGroup:
Name:fault_right
Structural Relation:StackRelationType.FAULT
Elements:
StructuralElement:
Name:fault_right

StructuralGroup:
Name:fault_lr
Structural Relation:StackRelationType.FAULT
Elements:
StructuralElement:
Name:fault_lr

StructuralGroup:
Name:Trias_Series
Structural Relation:StackRelationType.ERODE
Elements:
StructuralElement:
Name:TRIAS

StructuralElement:
Name:LIAS

StructuralGroup:
Name:Carbon_Series
Structural Relation:StackRelationType.ERODE
Elements:
StructuralElement:
Name:CARBO
Fault Relations:
fault_leftfault_righ...fault_lrTrias_Seri...Carbon_Ser...
fault_left
fault_right
fault_lr
Trias_Series
Carbon_Series
True
False


.. GENERATED FROM PYTHON SOURCE LINES 116-117 Displaying the structural frame .. GENERATED FROM PYTHON SOURCE LINES 117-120 .. code-block:: Python print(geo_model.structural_frame) geo_model.structural_frame .. rst-class:: sphx-glr-script-out .. code-block:: none StructuralFrame( structural_groups=[ StructuralGroup( name=fault_left, structural_relation=StackRelationType.FAULT, elements=[ Element( name=fault_left, color=#527682, is_active=True ) ] ), StructuralGroup( name=fault_right, structural_relation=StackRelationType.FAULT, elements=[ Element( name=fault_right, color=#527682, is_active=True ) ] ), StructuralGroup( name=fault_lr, structural_relation=StackRelationType.FAULT, elements=[ Element( name=fault_lr, color=#527682, is_active=True ) ] ), StructuralGroup( name=Trias_Series, structural_relation=StackRelationType.ERODE, elements=[ Element( name=TRIAS, color=#9f0052, is_active=True ), Element( name=LIAS, color=#015482, is_active=True ) ] ), StructuralGroup( name=Carbon_Series, structural_relation=StackRelationType.ERODE, elements=[ Element( name=CARBO, color=#ffbe00, is_active=True ) ] ) ], fault_relations= [[False, False, False, True, True], [False, False, False, True, True], [False, False, False, True, True], [False, False, False, False, False], [False, False, False, False, False]], .. raw:: html
Structural Groups: StructuralGroup:
Name:fault_left
Structural Relation:StackRelationType.FAULT
Elements:
StructuralElement:
Name:fault_left

StructuralGroup:
Name:fault_right
Structural Relation:StackRelationType.FAULT
Elements:
StructuralElement:
Name:fault_right

StructuralGroup:
Name:fault_lr
Structural Relation:StackRelationType.FAULT
Elements:
StructuralElement:
Name:fault_lr

StructuralGroup:
Name:Trias_Series
Structural Relation:StackRelationType.ERODE
Elements:
StructuralElement:
Name:TRIAS

StructuralElement:
Name:LIAS

StructuralGroup:
Name:Carbon_Series
Structural Relation:StackRelationType.ERODE
Elements:
StructuralElement:
Name:CARBO
Fault Relations:
fault_leftfault_righ...fault_lrTrias_Seri...Carbon_Ser...
fault_left
fault_right
fault_lr
Trias_Series
Carbon_Series
True
False


.. GENERATED FROM PYTHON SOURCE LINES 121-129 Explanation of model characteristics and adjustments This model has characteristics that make it difficult to get the right default values: - It is large, and we want high resolution - Some series have a large conditional number (i.e., the model input is not very stable) To address these issues: - Reduce the chunk size during evaluation to trade speed for memory - Reduce the std of the error parameter in octree refinement, which evaluates fewer voxels but may leave some without refinement Enable debugging options to help tune these parameters. .. GENERATED FROM PYTHON SOURCE LINES 131-132 Setting verbose and condition number options for debugging .. GENERATED FROM PYTHON SOURCE LINES 132-135 .. code-block:: Python geo_model.interpolation_options.evaluation_options.verbose = True geo_model.interpolation_options.kernel_options.compute_condition_number = True .. GENERATED FROM PYTHON SOURCE LINES 136-139 Observations and parameter adjustments The octree refinement is making the octree grid almost dense, and smaller chunks are needed to avoid running out of memory. Adjusting parameters accordingly: .. GENERATED FROM PYTHON SOURCE LINES 139-143 .. code-block:: Python geo_model.interpolation_options.evaluation_options.octree_error_threshold = 0.5 geo_model.interpolation_options.evaluation_options.evaluation_chunk_size = 50_000 .. GENERATED FROM PYTHON SOURCE LINES 144-145 Computing the model with the adjusted settings .. GENERATED FROM PYTHON SOURCE LINES 145-155 .. code-block:: Python geo_model.interpolation_options.mesh_extraction = False _ = gp.compute_model( geo_model, engine_config=gp.data.GemPyEngineConfig( backend=gp.data.AvailableBackends.PYTORCH, use_gpu=True, dtype="float64" ) ) .. rst-class:: sphx-glr-horizontal * .. image-sg:: /examples/real/images/sphx_glr_Alesmodel_005.png :alt: Voxel Scalar Values with Refinement Status :srcset: /examples/real/images/sphx_glr_Alesmodel_005.png :class: sphx-glr-multi-img * .. image-sg:: /examples/real/images/sphx_glr_Alesmodel_006.png :alt: Voxel Scalar Values with Refinement Status :srcset: /examples/real/images/sphx_glr_Alesmodel_006.png :class: sphx-glr-multi-img * .. image-sg:: /examples/real/images/sphx_glr_Alesmodel_007.png :alt: Voxel Scalar Values with Refinement Status :srcset: /examples/real/images/sphx_glr_Alesmodel_007.png :class: sphx-glr-multi-img * .. image-sg:: /examples/real/images/sphx_glr_Alesmodel_008.png :alt: Voxel Scalar Values with Refinement Status :srcset: /examples/real/images/sphx_glr_Alesmodel_008.png :class: sphx-glr-multi-img * .. image-sg:: /examples/real/images/sphx_glr_Alesmodel_009.png :alt: Voxel Scalar Values with Refinement Status :srcset: /examples/real/images/sphx_glr_Alesmodel_009.png :class: sphx-glr-multi-img * .. image-sg:: /examples/real/images/sphx_glr_Alesmodel_010.png :alt: Voxel Scalar Values with Refinement Status :srcset: /examples/real/images/sphx_glr_Alesmodel_010.png :class: sphx-glr-multi-img * .. image-sg:: /examples/real/images/sphx_glr_Alesmodel_011.png :alt: Voxel Scalar Values with Refinement Status :srcset: /examples/real/images/sphx_glr_Alesmodel_011.png :class: sphx-glr-multi-img * .. image-sg:: /examples/real/images/sphx_glr_Alesmodel_012.png :alt: Voxel Scalar Values with Refinement Status :srcset: /examples/real/images/sphx_glr_Alesmodel_012.png :class: sphx-glr-multi-img * .. image-sg:: /examples/real/images/sphx_glr_Alesmodel_013.png :alt: Voxel Scalar Values with Refinement Status :srcset: /examples/real/images/sphx_glr_Alesmodel_013.png :class: sphx-glr-multi-img * .. image-sg:: /examples/real/images/sphx_glr_Alesmodel_014.png :alt: Voxel Scalar Values with Refinement Status :srcset: /examples/real/images/sphx_glr_Alesmodel_014.png :class: sphx-glr-multi-img * .. image-sg:: /examples/real/images/sphx_glr_Alesmodel_015.png :alt: Voxel Scalar Values with Refinement Status :srcset: /examples/real/images/sphx_glr_Alesmodel_015.png :class: sphx-glr-multi-img * .. image-sg:: /examples/real/images/sphx_glr_Alesmodel_016.png :alt: Voxel Scalar Values with Refinement Status :srcset: /examples/real/images/sphx_glr_Alesmodel_016.png :class: sphx-glr-multi-img * .. image-sg:: /examples/real/images/sphx_glr_Alesmodel_017.png :alt: Voxel Scalar Values with Refinement Status :srcset: /examples/real/images/sphx_glr_Alesmodel_017.png :class: sphx-glr-multi-img * .. image-sg:: /examples/real/images/sphx_glr_Alesmodel_018.png :alt: Voxel Scalar Values with Refinement Status :srcset: /examples/real/images/sphx_glr_Alesmodel_018.png :class: sphx-glr-multi-img * .. image-sg:: /examples/real/images/sphx_glr_Alesmodel_019.png :alt: Voxel Scalar Values with Refinement Status :srcset: /examples/real/images/sphx_glr_Alesmodel_019.png :class: sphx-glr-multi-img .. rst-class:: sphx-glr-script-out .. code-block:: none Setting Backend To: AvailableBackends.PYTORCH Condition number: 2917573.7407638184. Chunking done: 19 chunks Condition number: 1174481.1989654184. Chunking done: 9 chunks Condition number: 1642063.3117937546. Chunking done: 11 chunks Condition number: 1586673.9519253937. Chunking done: 248 chunks Condition number: 1122611.6721707566. Chunking done: 198 chunks Chunking done: 32 chunks Chunking done: 26 chunks Number of voxels marked by stats: 136 of torch.Size([512]). Number of voxels marked by corners : 328 Total voxels: 136 Dense Grid would be 512 voxels Number of voxels marked by stats: 129 of torch.Size([512]). Number of voxels marked by corners : 328 Total voxels: 186 Dense Grid would be 512 voxels Number of voxels marked by stats: 152 of torch.Size([512]). Number of voxels marked by corners : 328 Total voxels: 242 Dense Grid would be 512 voxels Number of voxels marked by stats: 136 of torch.Size([512]). Number of voxels marked by corners : 328 Total voxels: 314 Dense Grid would be 512 voxels Number of voxels marked by stats: 170 of torch.Size([512]). Number of voxels marked by corners : 328 Total voxels: 367 Dense Grid would be 512 voxels Chunking done: 27 chunks Chunking done: 22 chunks Chunking done: 16 chunks Chunking done: 8 chunks Chunking done: 9 chunks Chunking done: 205 chunks Chunking done: 164 chunks Number of voxels marked by stats: 1014 of torch.Size([3360]). Number of voxels marked by corners : 1656 Total voxels: 1014 Dense Grid would be 4096 voxels Number of voxels marked by stats: 976 of torch.Size([3360]). Number of voxels marked by corners : 1656 Total voxels: 1429 Dense Grid would be 4096 voxels Number of voxels marked by stats: 1135 of torch.Size([3360]). Number of voxels marked by corners : 1656 Total voxels: 1852 Dense Grid would be 4096 voxels Number of voxels marked by stats: 1051 of torch.Size([3360]). Number of voxels marked by corners : 1656 Total voxels: 2390 Dense Grid would be 4096 voxels Number of voxels marked by stats: 1247 of torch.Size([3360]). Number of voxels marked by corners : 1656 Total voxels: 2741 Dense Grid would be 4096 voxels Chunking done: 14 chunks Chunking done: 7 chunks Chunking done: 8 chunks Chunking done: 184 chunks Chunking done: 147 chunks Chunking done: 108 chunks Chunking done: 51 chunks Chunking done: 62 chunks Chunking done: 1459 chunks Chunking done: 1167 chunks Number of voxels marked by stats: 7902 of torch.Size([24048]). Number of voxels marked by corners : 8203 Total voxels: 7902 Dense Grid would be 32768 voxels Number of voxels marked by stats: 7629 of torch.Size([24048]). Number of voxels marked by corners : 8203 Total voxels: 11219 Dense Grid would be 32768 voxels Number of voxels marked by stats: 8784 of torch.Size([24048]). Number of voxels marked by corners : 8203 Total voxels: 14630 Dense Grid would be 32768 voxels Number of voxels marked by stats: 8070 of torch.Size([24048]). Number of voxels marked by corners : 8203 Total voxels: 18800 Dense Grid would be 32768 voxels Number of voxels marked by stats: 9624 of torch.Size([24048]). Number of voxels marked by corners : 8203 Total voxels: 21430 Dense Grid would be 32768 voxels Chunking done: 102 chunks Chunking done: 48 chunks Chunking done: 59 chunks Chunking done: 1378 chunks Chunking done: 1103 chunks .. GENERATED FROM PYTHON SOURCE LINES 156-157 Plotting the 2D model with and without topography .. GENERATED FROM PYTHON SOURCE LINES 157-161 .. code-block:: Python gpv.plot_2d(geo_model, show_topography=False, section_names=['topography'], show_lith=True) gpv.plot_2d(geo_model, cell_number=[4], direction=['y'], show_topography=True, show_data=True) gpv.plot_2d(geo_model, cell_number=[-4], direction=['y'], show_topography=True, show_data=True) .. rst-class:: sphx-glr-horizontal * .. image-sg:: /examples/real/images/sphx_glr_Alesmodel_020.png :alt: Geological map :srcset: /examples/real/images/sphx_glr_Alesmodel_020.png :class: sphx-glr-multi-img * .. image-sg:: /examples/real/images/sphx_glr_Alesmodel_021.png :alt: Cell Number: 4 Direction: y :srcset: /examples/real/images/sphx_glr_Alesmodel_021.png :class: sphx-glr-multi-img * .. image-sg:: /examples/real/images/sphx_glr_Alesmodel_022.png :alt: Cell Number: -4 Direction: y :srcset: /examples/real/images/sphx_glr_Alesmodel_022.png :class: sphx-glr-multi-img .. rst-class:: sphx-glr-script-out .. code-block:: none /home/leguark/TeamCity/work/3a8738c25f60c3c9/venv/lib/python3.10/site-packages/gempy_viewer/API/_plot_2d_sections_api.py:106: UserWarning: Section contacts not implemented yet. We need to pass scalar field for the sections grid warnings.warn( .. GENERATED FROM PYTHON SOURCE LINES 162-164 Setting thumbnail number for Sphinx-Gallery sphinx_gallery_thumbnail_number = -1 .. GENERATED FROM PYTHON SOURCE LINES 164-165 .. code-block:: Python gpv.plot_3d(geo_model, show_lith=True, show_topography=True, kwargs_plot_structured_grid={'opacity': 0.8}) .. image-sg:: /examples/real/images/sphx_glr_Alesmodel_023.png :alt: Alesmodel :srcset: /examples/real/images/sphx_glr_Alesmodel_023.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 53.019 seconds) .. _sphx_glr_download_examples_real_Alesmodel.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: Alesmodel.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: Alesmodel.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: Alesmodel.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_