.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples/01_readers/01_read_OMF_sites.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_01_readers_01_read_OMF_sites.py: Reading OMF Project Into Python =============================== This tutorial demonstrates how to read an OMF (Open Mining Format) project file in Python, visualize it using PyVista, and convert it to a format suitable for further analysis with Subsurface. .. GENERATED FROM PYTHON SOURCE LINES 9-12 Required Libraries ------------------ First, we import the necessary libraries for handling and visualizing OMF files. .. GENERATED FROM PYTHON SOURCE LINES 12-23 .. code-block:: Python import omfvista import pyvista import subsurface from subsurface import TriSurf from dotenv import dotenv_values from subsurface.modules.visualization import to_pyvista_mesh, pv_plot from subsurface.modules.writer import base_structs_to_binary_file .. GENERATED FROM PYTHON SOURCE LINES 24-27 Load OMF Project ---------------- Here, we define a function to load an OMF project using a path specified in a .env file. .. GENERATED FROM PYTHON SOURCE LINES 27-36 .. code-block:: Python def load_omf(): config = dotenv_values() path = config.get('PATH_TO_MODEL_2') omf_project = omfvista.load_project(path) return omf_project omf_project = load_omf() .. GENERATED FROM PYTHON SOURCE LINES 37-40 Visualize OMF with PyVista -------------------------- Utilize PyVista for an interactive visualization of the OMF project. .. GENERATED FROM PYTHON SOURCE LINES 40-43 .. code-block:: Python omf_project.plot(multi_colors=True, show_edges=True, notebook=False) .. image-sg:: /examples/01_readers/images/sphx_glr_01_read_OMF_sites_001.png :alt: 01 read OMF sites :srcset: /examples/01_readers/images/sphx_glr_01_read_OMF_sites_001.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 44-47 Convert OMF to Unstructured Single Block ---------------------------------------- Convert the loaded OMF project into an unstructured single block for further processing. .. GENERATED FROM PYTHON SOURCE LINES 47-63 .. code-block:: Python block_name = omf_project.get_block_name(4) polydata_obj: pyvista.PolyData = omf_project[block_name] unstruct_pyvista: pyvista.UnstructuredGrid = polydata_obj.cast_to_unstructured_grid() cells_pyvista = unstruct_pyvista.cells.reshape(-1, 4)[:, 1:] unstruct: subsurface.UnstructuredData = subsurface.UnstructuredData.from_array( vertex=unstruct_pyvista.points, cells=cells_pyvista, ) # Optional: Export to Liquid Earth if required TO_LIQUID_EARTH = False # Replace with actual condition if TO_LIQUID_EARTH: base_structs_to_binary_file("leapfrog1", unstruct) .. GENERATED FROM PYTHON SOURCE LINES 64-67 Visualize Unstructured Data --------------------------- Finally, visualize the converted unstructured data using Subsurface and PyVista. .. GENERATED FROM PYTHON SOURCE LINES 67-71 .. code-block:: Python ts = TriSurf(mesh=unstruct) subsurface_mesh = to_pyvista_mesh(ts) pv_plot([subsurface_mesh], image_2d=False) .. image-sg:: /examples/01_readers/images/sphx_glr_01_read_OMF_sites_002.png :alt: 01 read OMF sites :srcset: /examples/01_readers/images/sphx_glr_01_read_OMF_sites_002.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 2.693 seconds) .. _sphx_glr_download_examples_01_readers_01_read_OMF_sites.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: 01_read_OMF_sites.ipynb <01_read_OMF_sites.ipynb>` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: 01_read_OMF_sites.py <01_read_OMF_sites.py>` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_