Skip to content

Releases: joshduran/brukeropus

v1.4.3

14 Nov 04:29

Choose a tag to compare

Minor update that fixes bug that under parsed data series by 1. Fixes issue:

#14

v1.4.2

19 Oct 02:25

Choose a tag to compare

This hotfix release addresses issue #14

v1.4.1

18 Aug 14:50

Choose a tag to compare

  • Improved logic for determining the type of data for spectral blocks. I have sufficient data to verify that the spectral type codes repeat for 2-channel, 3-channel and 4-channel measurements. This implies there are 32 unique spectral type codes. Now, multi-channel spectral types will automatically be labeled as such (previously, each unique combination of spectral type and number of channels were added manually).
  • Added label and data key for "Match" spectral data type (type code:22)
  • Now correctly parses data series that have some skipped spectra during acquisition (e.g. take 10 measurements, skip 5, take 10 measurements). These files are now successfully parsed (previously caused a parsing error and were not accessible). The store_table attribute in the DataSeries object can be used to determine the saved spectra indices (list of start, stop tuples). For example, the above example would return: [(1, 10), (16, 25)]

v1.3.1

14 Aug 19:52

Choose a tag to compare

Bugfix release that addresses issue: #13

Added many more files to test folder to better cover the range of OPUS file data types to better prevent bugs like this from being published in the future.

v1.3.0

23 Jun 18:25

Choose a tag to compare

This release refactors a lot of the OPUS file code to be a bit more modular and separated into a larger number of files to improve clarity. This release supports a new Report data type, which allows users to access report data (e.g. multi-evaluation test reports) within the OPUSFile class.

New Features to OPUSFIle:

  • New Report and ReportTable classes introduced to provide access to report data stored in opus files.
  • __str__ dunder methods for OPUSFile and FileDirectory classes are now supported.
  • Blocks that have an error while parsing are stored in parse_error_blocks attribute to improve error handling for unexpected block characteristics.
  • Can now read "compact" spectra which are saved differently than standard data blocks. These data blocks are denoted with a "_c" (e.g. igsm_c or a_c).
  • Adjusted text parsing decoding priority to better support chinese characters.
  • Updated documentation.
  • Updated tests to reflect changes.

Changes:

  • Introduced new BlockType class which is basically a tuple with some integrated convenience functions.
  • Documented warnings for depreciated functions (integrated into BlockType now): get_type_code_label, get_block_type_label,
  • Refactored OPUSFile class into a larger number of files to make it more clear which classes depend on each other, and make it quicker to find the code of interest.

Bug Fixes:

  • Fixed bug where upper case parameter attributes were invalid
  • Update a few block types to be correctly categorized as reports

v1.3.0-beta

28 May 16:43

Choose a tag to compare

This release refactors a lot of the OPUS file code to be a bit more modular and separated into a larger number of files to improve clarity. While the release is labeled as beta, it is generally a stable release. This release supports a new report data type, and the beta is used to reflect the fact that the report functionality is still in flux and could potentially undergo breaking changes after feedback from users. The rest of the code should be considered stable.

New Features to OPUSFIle:

  • New Report and ReportTable classes introduced to provide access to report data stored in opus files.
  • Add table of contents (toc) feature to FileDirectory class to provide summary of blocks in the file and where they are stored in the OPUSFile class (useful for debugging and exploring file contents).
  • Blocks that have an error while parsing are stored in parse_error_blocks attribute to improve error handling for unexpected block characteristics.

Changes:

  • Introduced new BlockType class which is basically a tuple with some integrated convenience functions.
  • Documented warnings for depreciated functions (integrated into BlockType now): get_type_code_label, get_block_type_label,
  • Refactored OPUSFile class into a larger number of files to make it more clear which classes depend on each other, and make it quicker to find the code of interest.

To-Do before "Stable" Release:

  • Verify Report class is structured in a useful way (from user feedback)
  • Update documentation to explain some of the new features, including how to access data in Report.

v1.2.0

11 Apr 02:46

Choose a tag to compare

This release features substantially better coverage for parameter labels, generated directly from a file used by OPUS. The parameter keys and labels were extracted from the OpusParameter.xml file (OPUS version 8.7). This provides human readable labels for over 2000 OPUS parameter keys.

v1.1.1

14 Feb 04:30

Choose a tag to compare

Minor release to fix compatibility issues when reading files in 64-bit Linux environment (Issue: #6)

v1.1.0

05 Jun 04:12

Choose a tag to compare

Significant update involving a rewrite of the OPUSFile class and its constituent parts. This was rewrite was initiated to address the issue of certain OPUS files containing multiple versions of the same data block type (e.g. two absorbance data blocks). The new class attempts to correctly match duplicate data blocks to their corresponding data status block and provides access to all matched data (instead of ignoring duplicates). Despite the major rewrite, the user facing functions and attributes have largely gone unchanged (apart from newly added attributes/methods).

Notable Changes

  • Can handle files with multiple instances of a single data block type (e.g. two absorbance spectra)
    • Fixes issue: #3
    • For limited test files available, brukeropus matches data blocks with their parameter blocks identically to OPUS
    • Duplicate data entries have an appended numeral so either version can be accessed (OPUS only provides latest version)
  • Added new friendly keys to block types: 3:33, 3:34, 3:36, 3:65, 3:97
    • Fixes Issue: #2
    • Various 2-Channel, 3-Channel and 4-Channel measurement types
    • Pattern may suggest a repeat of (some) of the single-channel measurement types in the same order (e.g. 3:35 may be 2-Channel Phase)
  • Fix: y-data is now automatically scaled by the CSF parameter so y-scaling matches OPUS
  • No longer throws an Exception when reading a file smaller than 4 bytes
  • Parsing functions now take just the relevant block bytes (rather than the whole file bytes) which will enable isolated blocks to be parsed for faster and more efficient access in the future.
  • Add parse_file_and_print method to primary namespace (useful for debugging files)
  • Add "Lab and Process Parameters" label for parameter block 2:11
  • Introduced basic testing
    • Reads a directory of OPUS files and checks for inconsistencies, parsing errors, memory efficiency, etc.
    • Only tests file submodule

Full Changelog: v1.0.6...v1.1.0

v1.0.6

21 May 14:14

Choose a tag to compare

  • [Bug-fix] Fix import error for non-windows when attempting to import the Opus control class. Opus control is only supported by Windows (as is OPUS). See: #1