Skip to main content

pytest Documentation Status

pyuff

Universal File Format read and write

This module defines an UFF class to manipulate with the UFF (Universal File Format) files.

Read from and write of data-set types 15, 55, 58, 58b, 82, 151, 164, 1858, 2400, 2411, 2412, 2414, 2420, 2429, 2467 are supported.

Check out the documentation.

To install the package, run:

pip install pyuff

Showcase

To analyse UFF file we first load the uff module and example file:

import pyuff
uff_file = pyuff.UFF('data/beam.uff')

To check which datasets are written in the file use:

uff_file.get_set_types()

Reading from the UFF file

To load all datasets from the UFF file to data object use:

data = uff_file.read_sets()

The first dataset 58 contains following keys:

data[4].keys()

Most important keys are x: x-axis and data: y-axis that define the stored response:

plt.semilogy(data[4]['x'], np.abs(data[4]['data']))
plt.xlabel('Frequency  [Hz]')
plt.ylabel('FRF Magnitude [dB m/N]')
plt.xlim([0,1000])
plt.show()

Writing measurement data to UFF file

Loading the accelerance data:

measurement_point_1 = np.genfromtxt('data/meas_point_1.txt', dtype=complex)
measurement_point_2 = np.genfromtxt('data/meas_point_2.txt', dtype=complex)
measurement_point_3 = np.genfromtxt('data/meas_point_3.txt', dtype=complex)
measurement_point_1[0] = np.nan*(1+1.j)
measurement = [measurement_point_1, measurement_point_2, measurement_point_3]

Creating the UFF file where we add dataset 58 for measurement consisting of the dictionary-like keys containing the measurement data and the information about the measurement:

for i in range(3):
    print('Adding point {:}'.format(i + 1))
    response_node = 1
    response_direction = 1
    reference_node = i + 1
    reference_direction = 1
    acceleration_complex = measurement[i]
    frequency = np.arange(0, 1001)
    name = 'TestCase'
    data = {'type':58,
            'func_type': 4,
            'rsp_node': response_node,
            'rsp_dir': response_direction,
            'ref_dir': reference_direction,
            'ref_node': reference_node,
            'data': acceleration_complex,
            'x': frequency,
            'id1': 'id1',
            'rsp_ent_name': name,
            'ref_ent_name': name,
            'abscissa_spacing':1,
            'abscissa_spec_data_type':18,
            'ordinate_spec_data_type':12,
            'orddenom_spec_data_type':13}
    uffwrite = pyuff.UFF('./data/measurement.uff')
    uffwrite.write_set(data,'add')

Or we can use support function prepare_58 to prepare the dictionary for creating the UFF file. Functions for other datasets can be found in supported datasets.

for i in range(3):
print('Adding point {:}'.format(i + 1))
response_node = 1
response_direction = 1
reference_node = i + 1
reference_direction = 1
acceleration_complex = measurement[i]
frequency = np.arange(0, 1001)
name = 'TestCase'
pyuff.prepare_58(func_type=4,
            rsp_node=response_node,
            rsp_dir=response_direction,
            ref_dir=reference_direction,
            ref_node=reference_node,
            data=acceleration_complex,
            x=frequency,
            id1='id1',
            rsp_ent_name=name,
            ref_ent_name=name,
            abscissa_spacing=1,
            abscissa_spec_data_type=18,
            ordinate_spec_data_type=12,
            orddenom_spec_data_type=13)

Metadata

Release files for pyuff 2.6.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyuff 2.6.1
File Size Uploaded Provenance Actions
pyuff-2.6.1.tar.gz 57.6 kB With provenance Details for pyuff-2.6.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pyuff 2.6.1
File Interpreter ABI Platform Actions
pyuff-2.6.1-py3-none-any.whl Python 3 none any Details for pyuff-2.6.1-py3-none-any.whl

Total release size: 128.9 kB

Release files / pyuff-2.6.1.tar.gz

Download URL pyuff-2.6.1.tar.gz
Size 57.6 kB
Tags Source
SHA-256 checksum
How to use checksums
a86405835f8afc57aaa3b5e05a7d70adb6cbf763bd59b9c782c02636e34f9e22
BLAKE2b-256 checksum
How to use checksums
c572790d2ba420dc0f0481f641ec5acfb645c8583bdcebed55e5b6e366baa04f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 13, 2026.

Transparency log

Release files / pyuff-2.6.1-py3-none-any.whl

Download URL pyuff-2.6.1-py3-none-any.whl
Size 71.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
28e4454d70b9cce7462888f9d6de6559019ac5fae19a595fa80cbe74b2fbbe47
BLAKE2b-256 checksum
How to use checksums
c88531854f7855ad1b9343c42471f35b8b4be33d3c7ff1b3fa4017948b19bea1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 13, 2026.

Transparency log

Security for pyuff 2.6.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for pyuff-2.6.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 13, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

2.6.1 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page