.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "tutorials/ch1_fundamentals/ch1_3b_cross_sections.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_tutorials_ch1_fundamentals_ch1_3b_cross_sections.py: 1.3b: 2-D sections ================== .. GENERATED FROM PYTHON SOURCE LINES 8-9 Importing .. GENERATED FROM PYTHON SOURCE LINES 9-16 .. code-block:: Python import gempy as gp import gempy_viewer as gpv import numpy as np import matplotlib.pyplot as plt np.random.seed(1234) .. GENERATED FROM PYTHON SOURCE LINES 17-20 Setup the model --------------- .. GENERATED FROM PYTHON SOURCE LINES 22-23 Importing the data from CSV-files and setting extent and resolution .. GENERATED FROM PYTHON SOURCE LINES 23-52 .. code-block:: Python data_path = 'https://raw.githubusercontent.com/cgre-aachen/gempy_data/master/' geo_model: gp.data.GeoModel = gp.create_geomodel( project_name='Tutorial_ch1_1_Basics', extent=[0, 2000, 0, 2000, 0, 750], resolution=[20, 20, 20], # * Here we define the resolution of the voxels refinement=4, # * Here we define the number of octree levels. If octree levels are defined, the resolution is ignored. importer_helper=gp.data.ImporterHelper( path_to_orientations=data_path + "/data/input_data/getting_started/simple_fault_model_orientations.csv", path_to_surface_points=data_path + "/data/input_data/getting_started/simple_fault_model_points.csv", hash_surface_points="4cdd54cd510cf345a583610585f2206a2936a05faaae05595b61febfc0191563", hash_orientations="7ba1de060fc8df668d411d0207a326bc94a6cdca9f5fe2ed511fd4db6b3f3526" ) ) gp.map_stack_to_surfaces( gempy_model=geo_model, mapping_object= # TODO: This mapping I do not like it too much. We should be able to do it passing the data objects directly { "Fault_Series": 'Main_Fault', "Strat_Series": ('Sandstone_2', 'Siltstone', 'Shale', 'Sandstone_1') } ) gp.set_is_fault( frame=geo_model.structural_frame, fault_groups=['Fault_Series'] ) .. rst-class:: sphx-glr-script-out .. code-block:: none Surface points hash: 4cdd54cd510cf345a583610585f2206a2936a05faaae05595b61febfc0191563 Orientations hash: 7ba1de060fc8df668d411d0207a326bc94a6cdca9f5fe2ed511fd4db6b3f3526 .. raw:: html
Structural Groups: StructuralGroup:
Name:Fault_Series
Structural Relation:StackRelationType.FAULT
Elements:
StructuralElement:
Name:Main_Fault

StructuralGroup:
Name:Strat_Series
Structural Relation:StackRelationType.ERODE
Elements:
StructuralElement:
Name:Sandstone_2

StructuralElement:
Name:Siltstone

StructuralElement:
Name:Shale

StructuralElement:
Name:Sandstone_1
Fault Relations:
Fault_Seri...Strat_Seri...
Fault_Series
Strat_Series
True
False


.. GENERATED FROM PYTHON SOURCE LINES 53-56 Add sections ~~~~~~~~~~~~ .. GENERATED FROM PYTHON SOURCE LINES 59-62 pass section dictionary with startpoint, endpoint and resolution for every section: .. GENERATED FROM PYTHON SOURCE LINES 64-73 .. code-block:: Python gp.set_section_grid( grid=geo_model.grid, section_dict={ 'section1': ([0, 0], [2000, 2000], [100, 80]), 'section2': ([800, 0], [800, 2000], [150, 100]), 'section3': ([0, 200], [1500, 500], [200, 150]) } # p1,p2,resolution ) .. rst-class:: sphx-glr-script-out .. code-block:: none Active grids: ['regular' 'sections'] .. raw:: html
start stop resolution dist
section1 [0, 0] [2000, 2000] [100, 80] 2828.427125
section2 [800, 0] [800, 2000] [150, 100] 2000.000000
section3 [0, 200] [1500, 500] [200, 150] 1529.705854


.. GENERATED FROM PYTHON SOURCE LINES 74-77 Add topography ~~~~~~~~~~~~~~ .. GENERATED FROM PYTHON SOURCE LINES 79-86 .. code-block:: Python gp.set_topography_from_random( grid=geo_model.grid, fractal_dimension=1.2, d_z=np.array([300, 750]), topography_resolution=np.array([50, 50]) ) .. rst-class:: sphx-glr-script-out .. code-block:: none Active grids: ['regular' 'topography' 'sections'] .. GENERATED FROM PYTHON SOURCE LINES 87-89 Active grids: .. GENERATED FROM PYTHON SOURCE LINES 91-93 .. code-block:: Python geo_model.grid.active_grids_bool .. rst-class:: sphx-glr-script-out .. code-block:: none array([ True, False, True, True, False, False]) .. GENERATED FROM PYTHON SOURCE LINES 94-96 .. code-block:: Python gpv.plot_section_traces(geo_model) .. image-sg:: /tutorials/ch1_fundamentals/images/sphx_glr_ch1_3b_cross_sections_001.png :alt: Cell Number: -1 Direction: z :srcset: /tutorials/ch1_fundamentals/images/sphx_glr_ch1_3b_cross_sections_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none .. GENERATED FROM PYTHON SOURCE LINES 99-102 .. code-block:: Python geo_model.interpolation_options.mesh_extraction = False sol = gp.compute_model(geo_model) .. rst-class:: sphx-glr-script-out .. code-block:: none /home/leguark/gempy/gempy/core/data/geo_model.py:118: UserWarning: Both octree levels and resolution are set. The default grid for the `raw_array_solution`and plots will be the dense regular grid. To use octrees instead, set resolution to None in the regular grid. warnings.warn("Both octree levels and resolution are set. The default grid for the `raw_array_solution`" Setting Backend To: AvailableBackends.numpy /home/leguark/gempy/gempy/core/data/geo_model.py:118: UserWarning: Both octree levels and resolution are set. The default grid for the `raw_array_solution`and plots will be the dense regular grid. To use octrees instead, set resolution to None in the regular grid. warnings.warn("Both octree levels and resolution are set. The default grid for the `raw_array_solution`" .. GENERATED FROM PYTHON SOURCE LINES 103-105 .. code-block:: Python gpv.plot_2d(geo_model, section_names=['topography']) .. image-sg:: /tutorials/ch1_fundamentals/images/sphx_glr_ch1_3b_cross_sections_002.png :alt: Geological map :srcset: /tutorials/ch1_fundamentals/images/sphx_glr_ch1_3b_cross_sections_002.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none /home/leguark/gempy_viewer/gempy_viewer/API/_plot_2d_sections_api.py:104: UserWarning: Section contacts not implemented yet. We need to pass scalar field for the sections grid warnings.warn( .. GENERATED FROM PYTHON SOURCE LINES 106-108 .. code-block:: Python gpv.plot_2d(geo_model, section_names=['section1']) .. image-sg:: /tutorials/ch1_fundamentals/images/sphx_glr_ch1_3b_cross_sections_003.png :alt: section1 :srcset: /tutorials/ch1_fundamentals/images/sphx_glr_ch1_3b_cross_sections_003.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none /home/leguark/gempy_viewer/gempy_viewer/API/_plot_2d_sections_api.py:104: UserWarning: Section contacts not implemented yet. We need to pass scalar field for the sections grid warnings.warn( .. GENERATED FROM PYTHON SOURCE LINES 109-117 .. code-block:: Python gpv.plot_2d( model=geo_model, section_names=['section1', 'section2', 'section3', 'topography'], show_topography=True ) # sphinx_gallery_thumbnail_number = 4 .. image-sg:: /tutorials/ch1_fundamentals/images/sphx_glr_ch1_3b_cross_sections_004.png :alt: section1, section2, section3, Geological map :srcset: /tutorials/ch1_fundamentals/images/sphx_glr_ch1_3b_cross_sections_004.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none /home/leguark/gempy_viewer/gempy_viewer/API/_plot_2d_sections_api.py:104: UserWarning: Section contacts not implemented yet. We need to pass scalar field for the sections grid warnings.warn( .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 4.121 seconds) .. _sphx_glr_download_tutorials_ch1_fundamentals_ch1_3b_cross_sections.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: ch1_3b_cross_sections.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: ch1_3b_cross_sections.py ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_