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.1.tar.gz (28.8 kB view details)

Uploaded Source

Built Distribution

ensight_reader-0.11.1-py3-none-any.whl (25.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ensight-reader-0.11.1.tar.gz
  • Upload date:
  • Size: 28.8 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.1.tar.gz
Algorithm Hash digest
SHA256 7bfc49909f9b4aa529e1182453d8f6483c86bdf558bdc5abaaef442b2db88161
MD5 72e8a69edc3b7763541de955727ed7e1
BLAKE2b-256 fd5144a0083463ea833f00e473b50653861ab01cb7384c9c37a614124f872756

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ensight_reader-0.11.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c364f8d38ff000e223332614b4097dc4ab0a3c1ff517cee0608a191df88b596b
MD5 05dad9bb70aea6223b6a06c5d0d002f3
BLAKE2b-256 b12e1f88c31b937314f547fc244a7463dfc4a4040e1a6b5462f4006d4c7b9524

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