Releases: MHKiT-Software/MHKiT-MATLAB
MHKiT-MATLAB v1.0.1 Release
Version 1.0.1
Release Highlights
Bug fixes and documentation improvements
Details
Bug Fixes
- Issue #171 - Failing Loads: bin_statistics test
- Fixed by @hivanov-nrel in PR #188
- MHKiT-Documentation build errors:
MHKiT-Software/MHKiT#92 (comment) - Fixed by @simmsa in PR #187
Documentation Improvements
- Added GitHub Action to check docstring formatting
- Verifies docstrings use a format that is compatible with MHKiT-Documentation build system
- https://github.com/MHKiT-Software/MHKiT-MATLAB/actions/workflows/check_docstrings.yml
- Implemented by @simmsa in PR #187
- Added CONTRIBUTING.md
- Added INSTALL.md
- Updated National Laboratory of the Rockies (NLR) branding
MHKiT-MATLAB v1.0.0 Release
Version 1.0.0
Release Highlights
- New acoustics, and mooring modules
- Improvements to Wave, WDRT, and DOLFYN modules
- New examples for acoustics, mooring, and WEC-sim, and improved examples for DOLFYN and wave modules
- Multiple bug fixes and performance improvements
PR #174 - Acoustics Module
- Authors: @hivanov-nrel
- Reviewer: @simmsa
- Addition of acoustics module:
- Reading and standardization of of OceanSonics icListen and OceanInstruments Soundtrap hydrophone files
- Implementation of numerical computation sections IEC 62600-40 "Acoustic characterization of marine energy converters" standard
- Spectrogram data visualizations using
plot_spectrogram - Sound exposure level calculations with auditory weighting functions for 5 groups of marine mammals
- Complete example livescript in examples/acoustics_example.mlx
PR #176 - Wave Module Native MATLAB Implementation
- Authors: @MShabara
- Reviewer: @simmsa
- Convert wave module functions to native MATLAB code:
- wave/resource/standardize_wave_spectra_frequency.m:
- wave/resource/frequency_moment.m:
- wave/resource/energy_period.m:
- wave/resource/significant_wave_height.m:
- wave/resource/jonswap_spectrum.m:
- wave/resource/pierson_moskowitz_spectrum.m:
- wave/resource/surface_elevation.m:
PR #153 - Mooring Module
- Author: @hivanov-nrel
- Reviewer: @simmsa
- Addition of the mooring module, which includes
- Read in MoorDyn files into MATLAB
- Function to calculate mooring line lay length
- Functions to visualize mooring line dynamics in 2D or 3D.
- Example LiveScript demonstrating the functionality of the mooring module
PR #173 - Dolfyn Turbulence Functionality
- Author: @simmsa
- Reviewer: @browniea
- Addition of turbulence calculations for acoustic doppler instruments
- Turbulence intensity, noise, and reynolds stress calculations
- Updates to examples/adcp_example.mlx live script
PR #175 - WEC-Sim Power Performance Example
- Author: @akeeste
- Reviewer: @simmsa
- Addition of examples/wecsim_example.mlx
- Analysis of WEC-Sim output mat file using MHKiT
- Leverage MHKiT wave module to calculate spectra and statistics on surface elevation
PR #170 - WDRT Final Tasks
- Author: @hivanov-nrel
- Reviewer: @simmsa
- Expanded WDRT functionality by adding
automatic_hs_thresholdandreturn_year_valuefunctions
PR #169 - Code Compatibility Improvements
- Author: @simmsa
- Reviewer: @hivanov-nrel
- Fix code compatibility issues detailed in issues #115, #116, #117, #118, #119, #120, #121, and #122
Bug Fixes
- Issue #172 - Fix Failing MLER Test - @hivanov-nrel
- Issue #152 - Fix dimensionality differences in environmental_contours_example - @simmsa
- Issue #146, #74 - Finish WDRT Parity - @hivanov-nrel
- Issue #145 - Fix build errors in documentation - @simmsa
- Issue #114, #115, #116, #117, #118, #119, #121, #122 - MATLAB code compatibility issues
MHKiT-MATLAB v0.6.0 Release
MHKiT-MATLAB v0.6.0
Release Highlights
- Added module and example for upcrossing analysis
- Expanded WDRT and extreme wave analysis capability
- Expanded DOLFYN functionality with performance optimizations and enhanced visualization
- Enhanced MATLAB-Python interoperability with robust type conversion
- Added support for MATLAB 2024b, Python 3.10-3.12, and MHKiT-Python v0.9.0
- Improved version control capabilities with diffable example formats
Breaking Changes
- Removed support for:
- MHKiT-Python versions below v0.9.0
- MATLAB versions 2021b and 2022b
- Python versions 3.8 and 3.9
Impact:
- Users must upgrade to MATLAB 2023a or newer
- Python environment must use version 3.10-3.12
- Users must upgrade to MHKiT-Python v0.9.0 or newer
New Features
Wave Module
- Added Upcrossing Analysis Functions and Example (@MShabara) #151
- Enables time-series analysis of wave heights and periods using upcrossing methods
- Documentation: Upcrossing Analysis
- Enhanced Environmental Contours (@hivanov-nrel) #147
- Added support for IFORM and direct sampling methods
- Improved extreme condition analysis capabilities
- See examples in
environmental_contours_example.mlx
DOLFYN Module
- Enhanced Data Processing (@simmsa) #141
- Added statistical functions:
- Performance Optimizations:
- Added caching for improved read_signature speed [85bf6e0]
- Enhanced NetCDF attribute handling
- Expanded visualization capabilities [8e4d81d]:
- New subplot functionality
- Custom colormaps similar to matplotlib (viridis, bluewhitered)
- Histogram generation
- Improved attribute visualization and customization
- New comprehensive ADCP example in
adcp_example.mlx
Technical Improvements
Compatibility
- Added official support for MATLAB 2024b
- Added support for MHKiT-Python v0.9.0 (@simmsa) #149
- Compatible with Python 3.10-3.12
- Enhanced type conversion system between MATLAB and Python
MATLAB-Python Interoperability
- Added robust type conversion system:
- New
typecast_spectra_to_mhkit_python: Standardizes spectra data sent to Python - New
typecast_from_mhkit_python: Standardizes Python output for MATLAB- Returns consistent struct format:
data: Native MATLAB type (scalar, array, or struct)type: Data classificationindex: Index information
- Supports:
- Scalar values
- Python/NumPy arrays
- pandas DataFrame/Series
- Returns consistent struct format:
- New
Version Control Improvements
- Added Diffable Examples (@simmsa) #157
- MATLAB Markup (.m) versions of examples for better version tracking
- Maintains Livescript functionality while enabling git-based collaboration
- Improves documentation clarity and maintainability
New Examples
- Strain Analysis Example (@simmsa, @akeeste) #156
- Demonstrates structural load analysis techniques
- Shows data processing workflow for strain measurements
- Includes practical visualizations and analysis methods
- Upcrossing Analysis Example (@MShabara) #151
- Shows wave height and period analysis workflow
- Includes practical applications of statistical methods
- ADCP Data Processing Example (@simmsa) #141
- Illustrates acoustic doppler current profiler data analysis
- Demonstrates new DOLFYN visualization capabilities
- Includes comprehensive processing workflow
Bug Fixes
- Fixed WPTO hindcast download issue specific to
omni-directional_wave_power[8284aa2]- Issue #143
- Fixed in PR #144
- Improved robustness and clarity of hindcast downloads
- Corrected time scale representation in short-term extremes example (@MShabara) [#150, 3acf336]
- Fixed Delft3D masked array type conversion issues [2a290e5]
- Enhanced NetCDF attribute handling and extraction [f63002d]
Dependencies
- MATLAB ≥ 2023a
- MHKiT-Python ≥ v0.9.0
- Python 3.10-3.12
Contributors
Special thanks to all contributors who made this release possible:
v0.5.0
v0.5.0
New Features
- Addition of the WEC Design Response Toolbox within the
wavemodule #127- Estimate extreme sea states based on short term data
- Addition of the Delft3D input and analysis within the
tidalmodule #124- Analyze modeled river/tidal flow data using same tools as ADCP and resource data
Improvements
- More detailed and complete installation instructions
- Update MATLAB/Python compatibility matrix
Fixes
v0.4.1
New Features
- DOLfYN IO & Rotations(#79)
- IO
- Implement DOLfYN IO functionality for classic Nortek data format
- Add support for RDI file read
- Initial development for NetCDF read and write functionality
- Rotations
- Speed optimizations, bug fixes, and rotations for DOLfYN
- IO
- Power Quality Flicker (#105)
- Update power quality flicker assessment workflow and calculations
- CDIP Data IO and Graphics (#83)
- Implement CDIP data collection and plotting functions
- Wave Updates (#70)
- Add depth_regime, wave_length, and depth flags
- Implement updates to wave-related functions and tests
- Cache hindcast data calls (309f512)
- Add MATLAB/Python compatibility to README (576b406)
Bug Fixes
- #59 Magnitude and Phase Function for MATLAB (#76)
- Implement magnitude and phase function for MATLAB
- #65 Tidal Ebb and Flood Plots for MATLAB (#73)
- Implement tidal ebb and flood plots for MATLAB
- WPTO for MATLAB (#61)
- Address issues related to WPTO for MATLAB
- Fix python namespace conflict warnings (be70376)
Developer Improvements
- Fix Github Actions Workflow to automate unit testing #102
- Linux, macOS, and Windows Units are performing nominally
- Fix/update failing unit tests where possible
- 100% (151 / 151) of test cases are passing
- Add built in MATLAB code coverage (1f5f93a)
Thank you to @kchong75, @H0R5E, @kbrode22, @parangat94, @Matthew-Boyd, @hivanov-nrel, @rpauly18, @Alex-McVey, @simmsa for your contributions!
MHKiT-Matlab v0.4.0
v0.4.0 features:
- WPTO Hindcast IO functions
- CDIP IO functions
- tidal ebb and flood plots
- wave resource updates
MHKiT-MATLAB v0.3.1
Updates to QC module to coincide with updates to the Pecos package v0.1.9
MHKiT-MATLAB v0.3.0
Third official release of MHKiT-MATLAB adding:
- wave.io.ndbc Module: functions for downloading and converting NDBC data into MHKIT formats.
- wave.io.wecsim Module: functions for converting WEC-Sim data into MHKiT formats.
- river.performance and tidal.performance Module: new functionality to assess device performance from blade/rotor type devices.
- Loads Module: new function for computing blade moments.
MHKiT-MATLAB v0.2.0
This is the second official release of MHKiT-MATLAB which adds:
- Loads Module: functions to perform mechanical loads assessments
- Power Module: functions to assess power production and power quality
MHKiT-MATLAB v0.1.0
The first official release of MHKiT, developed in Python and MATLAB, includes the following modules:
-
QC Module: Perform quality control analysis
-
Wave Module: Calculate quantities of interest for wave energy converters (WEC)
-
River Module: Calculate quantities of interest for river energy converters (REC)
-
Tidal Module: Calculate quantities of interest for tidal energy converters (TEC)
-
Utils Module: Includes helper functions
The v0.1.0 release includes methods for resource assessment, device performance, graphics, io and and quality control.