Skip to main content

UFF (Universal File Format) read/write.

Project description

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, 2411, 2412, 2414, 2420, 2429 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)

pytest

binder to test the pyuff Showcase.ipynb online.

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

pyuff-2.2.tar.gz (35.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyuff-2.2-py3-none-any.whl (60.8 kB view details)

Uploaded Python 3

File details

Details for the file pyuff-2.2.tar.gz.

File metadata

  • Download URL: pyuff-2.2.tar.gz
  • Upload date:
  • Size: 35.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for pyuff-2.2.tar.gz
Algorithm Hash digest
SHA256 375424ce9b65b828e2d26829be1f1214fecbe48ac9921dfe009fc9546ebcaf69
MD5 dc9e1311791cd8f76cfc4f57559da9d2
BLAKE2b-256 4d7986df54a0fdcae9532d3e7f0cd9e51c75ad31cbbaf5fe6f75da189aaec3e6

See more details on using hashes here.

File details

Details for the file pyuff-2.2-py3-none-any.whl.

File metadata

  • Download URL: pyuff-2.2-py3-none-any.whl
  • Upload date:
  • Size: 60.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for pyuff-2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b1b724bad05ef10ca53eaa94649d1677f854756604b22f43628b3d44fc9f2972
MD5 d26e484cb72fe8046b467523ec4a56cd
BLAKE2b-256 bd47b051e84c6e6a8586122f61308484b2cb37f901f2f77da10ff205b803fc15

See more details on using hashes here.

Supported by

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