Releases: joshduran/brukeropus
v1.4.3
v1.4.2
v1.4.1
- 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_tableattribute in theDataSeriesobject 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
v1.3.0
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
ReportandReportTableclasses introduced to provide access to report data stored in opus files. __str__dunder methods forOPUSFileandFileDirectoryclasses are now supported.- Blocks that have an error while parsing are stored in
parse_error_blocksattribute 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
BlockTypeclass which is basically atuplewith some integrated convenience functions. - Documented warnings for depreciated functions (integrated into
BlockTypenow):get_type_code_label,get_block_type_label, - Refactored
OPUSFileclass 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
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
ReportandReportTableclasses introduced to provide access to report data stored in opus files. - Add table of contents (
toc) feature toFileDirectoryclass to provide summary of blocks in the file and where they are stored in theOPUSFileclass (useful for debugging and exploring file contents). - Blocks that have an error while parsing are stored in
parse_error_blocksattribute to improve error handling for unexpected block characteristics.
Changes:
- Introduced new
BlockTypeclass which is basically atuplewith some integrated convenience functions. - Documented warnings for depreciated functions (integrated into
BlockTypenow):get_type_code_label,get_block_type_label, - Refactored
OPUSFileclass 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
Reportclass 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
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
v1.1.0
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,
brukeropusmatches 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
CSFparameter 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_printmethod 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