Skip to content

Releases: MHKiT-Software/MHKiT-MATLAB

MHKiT-MATLAB v0.6.0 Release

18 Feb 00:20
55921ca
Compare
Choose a tag to compare

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:
      • Dimensional averaging [5b6d20a]
      • Speed and velocity calculations [8ad973b]
      • Time series analysis capabilities
    • 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 classification
        • index: Index information
      • Supports:
        • Scalar values
        • Python/NumPy arrays
        • pandas DataFrame/Series

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]
  • 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

09 Jul 22:26
e780f1c
Compare
Choose a tag to compare

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

Fixes

  • Allow user to specific surface elevation generation method #126
  • Properly map the gamma parameter in the jonswap function #136

v0.4.1

05 Mar 19:46
21453d1
Compare
Choose a tag to compare

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
  • 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

31 Mar 20:09
114c443
Compare
Choose a tag to compare

v0.4.0 features:

  • WPTO Hindcast IO functions
  • CDIP IO functions
  • tidal ebb and flood plots
  • wave resource updates

MHKiT-MATLAB v0.3.1

03 Nov 22:26
14f4f6b
Compare
Choose a tag to compare

Updates to QC module to coincide with updates to the Pecos package v0.1.9

MHKiT-MATLAB v0.3.0

02 Oct 13:57
3ad41c1
Compare
Choose a tag to compare

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

02 Jul 13:37
1c31ddf
Compare
Choose a tag to compare

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

21 Jan 16:48
Compare
Choose a tag to compare

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.