v0.3.20 (Apr 20, 2026)
Skyborn 0.3.20
This release expands Mann-Kendall trend analysis, adds modern interpolation kernels and diagnostics, modernizes several regridding and interpolation backends, and improves scatter stippling plus cross-section handling.
New Features
- Expanded Mann-Kendall trend analysis to support the same core test families as pymannkendall, while extending them to multidimensional NumPy and xarray workflows.
- Added public support for grouped multivariate, regional, correlated multivariate, seasonal, correlated seasonal, pre-whitening, trend-free pre-whitening, Hamed-Rao, Yue-Wang, and partial Mann-Kendall workflows.
- Added standalone partial-Mann-Kendall APIs for one-dimensional, multidimensional, and xarray inputs.
- Added modern Fortran kernels for hybrid-to-pressure and sigma-to-hybrid interpolation in skyborn.interp.
- Added public hybrid-level diagnostics: skyborn.interp.pressure_at_hybrid_levels and skyborn.interp.delta_pressure_hybrid.
Improvements
- Modernized the compiled rcm2rgrid, rcm2points, triple2grid, grid2triple, and shared linint2 sources to free-form Fortran .f90 while keeping the public entry points unchanged.
- Improved interpolation performance and build behavior by reducing eager-wrapper overhead, trimming temporary-array use, splitting duplicated support-library compilation in src/skyborn/interp/meson.build, and renaming the internal vinth2p acceleration module from vinth2p_backend to vinth2p_kernels.
- Improved skyborn.plot.scatter so cell-interior stippling now works better for masked rectilinear grids and also supports inferred curvilinear cell geometry.
Bug Fixes
- Extended skyborn.calc.troposphere WMO tropopause workflows to handle time-varying single-axis isobaric cross-sections such as (time, level, lat) and (time, level, lon) while preserving the correct output dimensions.
- Dropped incompatible 2D auxiliary source-grid coordinates such as TLAT and TLONG after rcm2rgrid remapping instead of raising coordinate-size conflicts.
- Restored legacy exact-hit missing-value behavior in rcm2points and rgrid2rcm so unresolved fields can still fall through to the historical interpolation logic when appropriate.
- Added focused tests for the updated Mann-Kendall, troposphere, and interpolation dispatch and wrapper paths.