[ANN] UFFFiles.jl

Hi all,

If you, like me, are working with experimental data or in the broad field of engineering, you have probably encountered UFF (Universal File Format) files.

To the best of my knowledge, some other programming languages have packages for reading and writing UFF files. In the Python world, we can use the excellent pyuff. In Matlab, users can adopt uff.m.

In Julia, we can of course call pyuff using PythonCall.jl and CondaPkg.jl, but it requires the user to postprocess the PyObject. As conversion is quite cumbersome given the diversity of UFF datasets and fields, I decided to develop a package for reading and writing UFF files directly in Julia. Tada! Here is where UFFFiles.jl comes into the scene.

For this initial release, only the reading functionalities are implemented (the writing functions will be released very soon) and the supported datasets are:

  • Dataset 15 - Nodes
  • Dataset 18 - Coordinate Systems
  • Dataset 55 - Data at Nodes
  • Dataset 58 - Function at Nodal DOF
  • Dataset 82 - Tracelines
  • Dataset 151 - Header
  • Dataset 164 - Units
  • Dataset 2411 - Nodes - Double Precision
  • Dataset 2412 - Elements
  • Dataset 2414 - Analysis Data

Please do not hesitate to provide feedbacks, to open issues or to contribute through PR. Your help will be welcomed!

To get a better overview of the package, the documentation is available here.

Enjoy!

12 Likes

My first response is appreciation. I will be sure to check it out. I used the matlab version in my matlab code and use it to transfer data between different software packages. For the reference on this standard, University of Cincinnati keeps the original SDRL documentation here.
It has crossed my mind that something like this should be developed and am glad that you have embarked on this journey

Thanks @Jake! I give the link to UC webpage in the documentation. I took it as a reference for the docstrings of my parsing functions.

The long story short is that I had exactly the same workflow as you. I first used the matlab package, then pyuff through PythonCall, but I was not satisfied. So, I decided to develop the package :grinning_face_with_smiling_eyes:

As you have noticed, I focused my work on the datasets used in Modal Analysis :wink:.