.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "tutorial/02_mesh/solutions/e_read-file.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 or to run this example in your browser via Binder .. rst-class:: sphx-glr-example-title .. _sphx_glr_tutorial_02_mesh_solutions_e_read-file.py: .. _read_file_example: Load and Plot from a File ~~~~~~~~~~~~~~~~~~~~~~~~~ Read a dataset from a known file type. .. GENERATED FROM PYTHON SOURCE LINES 12-18 We try to make loading a mesh as easy as possible - if your data is in one of the many supported file formats, simply use :func:`pyvista.read` to load your spatially referenced dataset into a PyVista mesh object. The following code block uses a built-in example file and displays an airplane mesh. .. GENERATED FROM PYTHON SOURCE LINES 18-22 .. code-block:: Python import pyvista as pv from pyvista import examples .. GENERATED FROM PYTHON SOURCE LINES 24-26 .. code-block:: Python help(pv.read) .. rst-class:: sphx-glr-script-out .. code-block:: none Help on function read in module pyvista.core.utilities.fileio: read(filename, attrs=None, force_ext=None, file_format=None, progress_bar=False) Read any file type supported by ``vtk`` or ``meshio``. .. deprecated:: 0.35.0 Use of `attrs` is deprecated. Use a reader class using :func:`pyvista.get_reader` Automatically determines the correct reader to use then wraps the corresponding mesh as a pyvista object. Attempts native ``vtk`` readers first then tries to use ``meshio``. See :func:`pyvista.get_reader` for list of formats supported. .. note:: See https://github.com/nschloe/meshio for formats supported by ``meshio``. Be sure to install ``meshio`` with ``pip install meshio`` if you wish to use it. Parameters ---------- filename : str The string path to the file to read. If a list of files is given, a :class:`pyvista.MultiBlock` dataset is returned with each file being a separate block in the dataset. attrs : dict, optional Deprecated. Use a Reader class using :func:`pyvista.get_reader`. A dictionary of attributes to call on the reader. Keys of dictionary are the attribute/method names and values are the arguments passed to those calls. If you do not have any attributes to call, pass ``None`` as the value. force_ext : str, optional If specified, the reader will be chosen by an extension which is different to its actual extension. For example, ``'.vts'``, ``'.vtu'``. file_format : str, optional Format of file to read with meshio. progress_bar : bool, default: False Optionally show a progress bar. Ignored when using ``meshio``. Returns ------- pyvista.DataSet Wrapped PyVista dataset. Examples -------- Load an example mesh. >>> import pyvista >>> from pyvista import examples >>> mesh = pyvista.read(examples.antfile) >>> mesh.plot(cpos='xz') Load a vtk file. >>> mesh = pyvista.read('my_mesh.vtk') # doctest:+SKIP Load a meshio file. >>> mesh = pyvista.read("mesh.obj") # doctest:+SKIP .. GENERATED FROM PYTHON SOURCE LINES 27-29 PyVista supports a wide variety of file formats. The supported file extensions are listed in an internal function: .. GENERATED FROM PYTHON SOURCE LINES 29-32 .. code-block:: Python help(pv.core.utilities.reader.get_reader) .. rst-class:: sphx-glr-script-out .. code-block:: none Help on function get_reader in module pyvista.core.utilities.reader: get_reader(filename, force_ext=None) Get a reader for fine-grained control of reading data files. Supported file types and Readers: +----------------+---------------------------------------------+ | File Extension | Class | +================+=============================================+ | ``.bmp`` | :class:`pyvista.BMPReader` | +----------------+---------------------------------------------+ | ``.cas`` | :class:`pyvista.FluentReader` | +----------------+---------------------------------------------+ | ``.case`` | :class:`pyvista.EnSightReader` | +----------------+---------------------------------------------+ | ``.cgns`` | :class:`pyvista.CGNSReader` | +----------------+---------------------------------------------+ | ``.dat`` | :class:`pyvista.TecplotReader` | +----------------+---------------------------------------------+ | ``.dcm`` | :class:`pyvista.DICOMReader` | +----------------+---------------------------------------------+ | ``.dem`` | :class:`pyvista.DEMReader` | +----------------+---------------------------------------------+ | ``.facet`` | :class:`pyvista.FacetReader` | +----------------+---------------------------------------------+ | ``.foam`` | :class:`pyvista.POpenFOAMReader` | +----------------+---------------------------------------------+ | ``.g`` | :class:`pyvista.BYUReader` | +----------------+---------------------------------------------+ | ``.gif`` | :class:`pyvista.GIFReader` | +----------------+---------------------------------------------+ | ``.glb`` | :class:`pyvista.GLTFReader` | +----------------+---------------------------------------------+ | ``.gltf`` | :class:`pyvista.GLTFReader` | +----------------+---------------------------------------------+ | ``.hdf`` | :class:`pyvista.HDFReader` | +----------------+---------------------------------------------+ | ``.img`` | :class:`pyvista.DICOMReader` | +----------------+---------------------------------------------+ | ``.inp`` | :class:`pyvista.AVSucdReader` | +----------------+---------------------------------------------+ | ``.jpg`` | :class:`pyvista.JPEGReader` | +----------------+---------------------------------------------+ | ``.jpeg`` | :class:`pyvista.JPEGReader` | +----------------+---------------------------------------------+ | ``.hdr`` | :class:`pyvista.HDRReader` | +----------------+---------------------------------------------+ | ``.mha`` | :class:`pyvista.MetaImageReader` | +----------------+---------------------------------------------+ | ``.mhd`` | :class:`pyvista.MetaImageReader` | +----------------+---------------------------------------------+ | ``.nii`` | :class:`pyvista.NIFTIReader` | +----------------+---------------------------------------------+ | ``.nii.gz`` | :class:`pyvista.NIFTIReader` | +----------------+---------------------------------------------+ | ``.nhdr`` | :class:`pyvista.NRRDReader` | +----------------+---------------------------------------------+ | ``.nrrd`` | :class:`pyvista.NRRDReader` | +----------------+---------------------------------------------+ | ``.obj`` | :class:`pyvista.OBJReader` | +----------------+---------------------------------------------+ | ``.p3d`` | :class:`pyvista.Plot3DMetaReader` | +----------------+---------------------------------------------+ | ``.ply`` | :class:`pyvista.PLYReader` | +----------------+---------------------------------------------+ | ``.png`` | :class:`pyvista.PNGReader` | +----------------+---------------------------------------------+ | ``.pnm`` | :class:`pyvista.PNMReader` | +----------------+---------------------------------------------+ | ``.pts`` | :class:`pyvista.PTSReader` | +----------------+---------------------------------------------+ | ``.pvd`` | :class:`pyvista.PVDReader` | +----------------+---------------------------------------------+ | ``.pvti`` | :class:`pyvista.XMLPImageDataReader` | +----------------+---------------------------------------------+ | ``.pvtk`` | :class:`pyvista.VTKPDataSetReader` | +----------------+---------------------------------------------+ | ``.pvtr`` | :class:`pyvista.XMLPRectilinearGridReader` | +----------------+---------------------------------------------+ | ``.pvtu`` | :class:`pyvista.XMLPUnstructuredGridReader` | +----------------+---------------------------------------------+ | ``.res`` | :class:`pyvista.MFIXReader` | +----------------+---------------------------------------------+ | ``.segy`` | :class:`pyvista.SegYReader` | +----------------+---------------------------------------------+ | ``.sgy`` | :class:`pyvista.SegYReader` | +----------------+---------------------------------------------+ | ``.slc`` | :class:`pyvista.SLCReader` | +----------------+---------------------------------------------+ | ``.stl`` | :class:`pyvista.STLReader` | +----------------+---------------------------------------------+ | ``.tif`` | :class:`pyvista.TIFFReader` | +----------------+---------------------------------------------+ | ``.tiff`` | :class:`pyvista.TIFFReader` | +----------------+---------------------------------------------+ | ``.tri`` | :class:`pyvista.BinaryMarchingCubesReader` | +----------------+---------------------------------------------+ | ``.vti`` | :class:`pyvista.XMLImageDataReader` | +----------------+---------------------------------------------+ | ``.vtk`` | :class:`pyvista.VTKDataSetReader` | +----------------+---------------------------------------------+ | ``.vtm`` | :class:`pyvista.XMLMultiBlockDataReader` | +----------------+---------------------------------------------+ | ``.vtmb`` | :class:`pyvista.XMLMultiBlockDataReader` | +----------------+---------------------------------------------+ | ``.vtp`` | :class:`pyvista.XMLPolyDataReader` | +----------------+---------------------------------------------+ | ``.vtr`` | :class:`pyvista.XMLRectilinearGridReader` | +----------------+---------------------------------------------+ | ``.vts`` | :class:`pyvista.XMLStructuredGridReader` | +----------------+---------------------------------------------+ | ``.vtu`` | :class:`pyvista.XMLUnstructuredGridReader` | +----------------+---------------------------------------------+ | ``.xdmf`` | :class:`pyvista.XdmfReader` | +----------------+---------------------------------------------+ Parameters ---------- filename : str The string path to the file to read. force_ext : str, optional An extension to force a specific reader to be chosen. Returns ------- pyvista.BaseReader A subclass of :class:`pyvista.BaseReader` is returned based on file type. Examples -------- >>> import pyvista >>> from pyvista import examples >>> filename = examples.download_human(load=False) >>> filename.split("/")[-1] # omit the path 'Human.vtp' >>> reader = pyvista.get_reader(filename) >>> reader XMLPolyDataReader('.../Human.vtp') >>> mesh = reader.read() >>> mesh PolyData ... >>> mesh.plot(color='lightblue') .. GENERATED FROM PYTHON SOURCE LINES 33-35 The following code block uses a built-in example file, displays an airplane mesh and returns the camera's position: .. GENERATED FROM PYTHON SOURCE LINES 35-40 .. code-block:: Python # Get a sample file filename = examples.planefile filename .. rst-class:: sphx-glr-script-out .. code-block:: none '/home/runner/.virtualenvs/.venv/lib/python3.10/site-packages/pyvista/examples/airplane.ply' .. GENERATED FROM PYTHON SOURCE LINES 41-45 Note the above filename, it's a ``.ply`` file - one of the many supported formats in PyVista. Use ``pv.read`` to load the file as a mesh: .. GENERATED FROM PYTHON SOURCE LINES 45-50 .. code-block:: Python mesh = pv.read(filename) cpos = mesh.plot() .. image-sg:: /tutorial/02_mesh/solutions/images/sphx_glr_e_read-file_001.png :alt: e read file :srcset: /tutorial/02_mesh/solutions/images/sphx_glr_e_read-file_001.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 51-52 The points from the mesh are directly accessible as a NumPy array: .. GENERATED FROM PYTHON SOURCE LINES 52-55 .. code-block:: Python mesh.points .. rst-class:: sphx-glr-script-out .. code-block:: none pyvista_ndarray([[896.994 , 48.7601 , 82.2656 ], [906.593 , 48.7601 , 80.7452 ], [907.539 , 55.4902 , 83.6581 ], ..., [806.665 , 627.363 , 5.11482], [806.665 , 654.432 , 7.51998], [806.665 , 681.537 , 9.48744]], dtype=float32) .. GENERATED FROM PYTHON SOURCE LINES 56-57 The faces from the mesh are also directly accessible as a NumPy array: .. GENERATED FROM PYTHON SOURCE LINES 57-61 .. code-block:: Python mesh.faces.reshape(-1, 4)[:, 1:] # triangular faces .. rst-class:: sphx-glr-script-out .. code-block:: none array([[ 0, 1, 2], [ 0, 2, 3], [ 4, 5, 1], ..., [1324, 1333, 1323], [1325, 1216, 1334], [1325, 1334, 1324]]) .. GENERATED FROM PYTHON SOURCE LINES 62-67 Loading other files types is just as easy! Simply pass your file path to the :func:`pyvista.read` function and that's it! Here are a few other examples - simply replace ``examples.download_*`` in the examples below with ``pyvista.read('path/to/you/file.ext')`` .. GENERATED FROM PYTHON SOURCE LINES 69-70 Example STL file: .. GENERATED FROM PYTHON SOURCE LINES 70-74 .. code-block:: Python mesh = examples.download_cad_model() cpos = [(107.0, 68.5, 204.0), (128.0, 86.5, 223.5), (0.45, 0.36, -0.8)] mesh.plot(cpos=cpos) .. image-sg:: /tutorial/02_mesh/solutions/images/sphx_glr_e_read-file_002.png :alt: e read file :srcset: /tutorial/02_mesh/solutions/images/sphx_glr_e_read-file_002.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 75-76 Example OBJ file .. GENERATED FROM PYTHON SOURCE LINES 76-80 .. code-block:: Python mesh = examples.download_doorman() mesh.plot(cpos="xy") .. image-sg:: /tutorial/02_mesh/solutions/images/sphx_glr_e_read-file_003.png :alt: e read file :srcset: /tutorial/02_mesh/solutions/images/sphx_glr_e_read-file_003.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 81-82 Example BYU file .. GENERATED FROM PYTHON SOURCE LINES 82-86 .. code-block:: Python mesh = examples.download_teapot() mesh.plot(cpos=[-1, 2, -5], show_edges=True) .. image-sg:: /tutorial/02_mesh/solutions/images/sphx_glr_e_read-file_004.png :alt: e read file :srcset: /tutorial/02_mesh/solutions/images/sphx_glr_e_read-file_004.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 87-88 Example VTK file .. GENERATED FROM PYTHON SOURCE LINES 88-93 .. code-block:: Python mesh = examples.download_bunny_coarse() cpos = [(0.2, 0.3, 0.9), (0, 0, 0), (0, 1, 0)] mesh.plot(cpos=cpos, show_edges=True, color=True) .. image-sg:: /tutorial/02_mesh/solutions/images/sphx_glr_e_read-file_005.png :alt: e read file :srcset: /tutorial/02_mesh/solutions/images/sphx_glr_e_read-file_005.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 94-99 Exercise ^^^^^^^^ Read a file yourself with :func:`pyvista.read`. If you have a supported file format, use that! Otherwise, download this file: https://github.com/pyvista/pyvista-tutorial/raw/main/tutorial/02_mesh/scipy.vtk .. GENERATED FROM PYTHON SOURCE LINES 99-103 .. code-block:: Python # (your code here) # mesh = pv.read('path/to/file.vtk) .. GENERATED FROM PYTHON SOURCE LINES 104-111 .. raw:: html
Open In Colab
.. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 2.034 seconds) .. _sphx_glr_download_tutorial_02_mesh_solutions_e_read-file.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: binder-badge .. image:: images/binder_badge_logo.svg :target: https://mybinder.org/v2/gh/pyvista/pyvista-tutorial/gh-pages?urlpath=lab/tree/notebooks/tutorial/02_mesh/solutions/e_read-file.ipynb :alt: Launch binder :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: e_read-file.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: e_read-file.py ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_