Skip to main content

A pure Python reader for the EnSight Gold format

Project description

CI - build CI - coverage MyPy checked PyPI - Version PyPI - Status PyPI - Python Version License

ensight-reader

This library provides a pure Python reader (with some writing capability) for the EnSight Gold data format, a common format for results of computational fluid dynamics (CFD) simulations. It also comes with a few CLI tools, notably ensight_transform which allows you to perform in-place scaling/translation/etc. of the geometry in your case.

The library designed for efficient, selective, memory-mapped access to data from EnSight Gold case – something that would be useful when importing the data into other systems. If you're looking for a more "batteries included" solution, look at vtkEnSightGoldBinaryReader from the VTK library (see docs for comparison).

Requirements

  • Python 3.9+
  • NumPy 1.21+

Installation

pip install ensight-reader

Example – Python API

import ensightreader
import numpy as np

case = ensightreader.read_case("example.case")
geofile = case.get_geometry_model()

part_names = geofile.get_part_names()                # ["internalMesh", ...]
part = geofile.get_part_by_name(part_names[0])
N = part.number_of_nodes

with geofile.open() as fp_geo:
    node_coordinates = part.read_coordinates(fp_geo)  # np.ndarray((N, 3), dtype=np.float32)

variable = case.get_variable("UMean")

with variable.mmap_writable() as mm_var:
    data = variable.read_node_data(mm_var, part.part_id)
    data[:] = np.sqrt(data)                           # transform variable data in-place

Example – CLI

# increment X coordinate
ensight_transform --translate 1 0 0 sphere.case

# scale by 1000 (eg. m -> mm conversion)
ensight_transform --scale 1e3 1e3 1e3 sphere.case

# rotation matrix
ensight_transform --matrix \
    0 -1  0  0 \
    1  0  0  0 \
    0  0  1  0 \
    0  0  0  1 \
    sphere.case

# transform only "internalMesh" part
ensight_transform --translate 1 0 0 --only-parts internalMesh motorbike.case

To learn more, please see the documentation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ensight-reader-0.11.0.tar.gz (23.2 kB view details)

Uploaded Source

Built Distribution

ensight_reader-0.11.0-py3-none-any.whl (25.5 kB view details)

Uploaded Python 3

File details

Details for the file ensight-reader-0.11.0.tar.gz.

File metadata

  • Download URL: ensight-reader-0.11.0.tar.gz
  • Upload date:
  • Size: 23.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for ensight-reader-0.11.0.tar.gz
Algorithm Hash digest
SHA256 40f7e0c953217f34bea8397619bb92388939db6b955f73a60ef5904286d1d53a
MD5 f754ada0cb0a7f7a7f371f48b123146e
BLAKE2b-256 a8ee74d55ddfcf198786559ad2ae20e01bc9e26193bcc595821f6312152eef9f

See more details on using hashes here.

File details

Details for the file ensight_reader-0.11.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ensight_reader-0.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4f6bdafd2291046ef839ca44d97c8a91a0403f65760c9e56b55e613ce28e3a85
MD5 93e66cccef66051f211a174410b58528
BLAKE2b-256 922c3170f18ec336c9979ed40aa4f5e107176cafdd5f88a4942d0208fcd61b7e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page