Releases: MHKiT-Software/MHKiT-MATLAB
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
wave
module #127- Estimate extreme sea states based on short term data
- Addition of the Delft3D input and analysis within the
tidal
module #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.