Skip to content

v0.3.11 (Aug 9, 2025)

Choose a tag to compare

@QianyeSu QianyeSu released this 08 Aug 18:50
· 1957 commits to main since this release

πŸš€ Major Performance Improvements

  • Optimized Mann-Kendall Trend Analysis: Completely rewritten for significantly improved performance:

    • Vectorized Implementation: True vectorization of Mann-Kendall S-score calculation using advanced NumPy operations
    • 15-30x Performance Boost: Processing speeds increased from ~19 to ~1,853 grid points per second for large climate datasets
    • Climate Data Optimized: Specifically tuned for typical climate data dimensions (40Γ—192Γ—288) with ~30-second processing time
    • Memory Efficient: Intelligent chunking strategy with only ~25MB memory usage for full climate grids
    • Batch Processing: Vectorized statistical calculations for clean data series, individual handling for series with missing values
    • Enhanced Dask Support: Improved map_blocks implementation for distributed computing workflows
  • Method Parameter Updates: Replaced deprecated method="auto" with method="theilslopes" throughout the codebase for consistency

πŸ”§ Technical Improvements

  • Simplified Import Structure: Removed conditional/backup import logic in favor of direct scipy.stats imports for improved maintainability
  • Code Quality Enhancements: Eliminated unused backup functions (_mk_score_backup, _theil_sen_backup) that were reducing test coverage
  • Consolidated Test Suite: Merged supplementary test files into main test suite for better organization and reduced maintenance overhead
  • Documentation Fixes: Corrected parameter names in API documentation examples (time_axis β†’ axis)
  • Advanced Vectorization: New _vectorized_mk_score() function using upper triangular indices for O(nΒ²) to O(1) complexity reduction
  • Smart Memory Management: Automatic chunk size estimation based on available memory and data dimensions
  • Robust Error Handling: Graceful handling of edge cases and problematic time series
  • Comprehensive Testing: Full test suite validation with 85% code coverage maintained

🎨 UI/UX Improvements

  • Dark Mode Compatibility: Fixed notification color gradients for better visibility in dark themes:

    • Updated notification system to use deep blue to light blue gradient for improved contrast
    • Enhanced table responsiveness styling for better dark mode support
  • Documentation Accuracy: Corrected function documentation to match actual codebase:

    • Fixed plot module function listings to reflect actual available functions
    • Removed non-existent functions from documentation (plot_field, plot_vector_field, plot_streamlines, plot_contour)
    • Added proper documentation for actual functions (add_equal_axes, createFigure, curved_quiver, add_curved_quiverkey)
    • Updated windspharm interface references for accurate Sphinx linking
    • Standardized "XArray" to "Xarray" throughout documentation

πŸ“Š Performance Benchmarks

For typical climate data analysis scenarios:

  • Small datasets (50Γ—20Γ—30): 6.3x speedup (251 β†’ 1,578 points/sec)
  • Medium datasets (100Γ—30Γ—40): 14.8x speedup (74 β†’ 1,093 points/sec)
  • Large datasets (200Γ—40Γ—50): 31.3x speedup (19 β†’ 595 points/sec)
  • Climate grids (40Γ—192Γ—288): ~30 seconds total processing time