v0.3.13 (Aug 31, 2025)
π§ Breaking Changes
-
Removed Iris Support: Removed
fill_cubefunction and iris dependencies from gridfill module- Use
skyborn.gridfill.xarray.fillfor xarray DataArrays instead - Iris cube support was causing package conflicts and installation difficulties
- Focus shifted to xarray-based workflows which are more common in the scientific Python ecosystem
- Use
π― Tropopause Calculation Enhancements
-
New Comprehensive Tropopause Module: Complete implementation of WMO tropopause calculation with multi-dimensional support
- 1D Profile Support: New
trop_wmo_profile()function for single atmospheric profiles - 2D Spatial Analysis: Support for (level, lat) and (level, lon) cross-sections
- 3D & 4D Gridded Data: Enhanced support for spatial and temporal datasets
- Simplified xarray Interface: Auto-generates pressure from level coordinates
- Performance: Optimized Fortran backend with 0.38ms per profile processing
- 1D Profile Support: New
-
Enhanced xarray Integration:
- Automatic Pressure Generation:
trop_wmo(temperature)- no pressure array needed - Smart Dimension Detection: Automatically detects lat, lon, level, and time dimensions
- Metadata Preservation: Maintains coordinate information and CF-compliant attributes
- Flexible Input Formats: Works with any dimension ordering and coordinate names
- Automatic Pressure Generation:
-
Improved Code Quality:
- Simplified Imports: Removed try-except blocks, direct Fortran module importing
- Parameter Consistency: Updated interface with
temperature, pressureparameter order - Better Documentation: Comprehensive examples for all supported data formats
- Removed Unused Code: Cleaned up
_detect_cyclic_longitudefunction
π New Geostrophic Wind Module
-
Complete Geostrophic Wind Implementation: New high-performance module for calculating geostrophic wind components from geopotential height fields
- SIMD-Optimized Fortran Backend: Vectorized calculations with OpenMP parallelization for optimal performance
- Multi-Dimensional Support: Handles 2D, 3D, and 4D data arrays with automatic dimension handling
- Automatic Parameter Detection: Smart longitude cyclicity detection and south-to-north latitude ordering
- Dual Interface Design: Both NumPy arrays and xarray DataArrays supported
-
xarray Integration: Seamless integration following established patterns
- Auto-Coordinate Detection:
from skyborn.calc.geostrophic.xarray import geostrophic_wind - Zero Manual Parameters:
result = geostrophic_wind(z)- that's it! - CF-Compliant Output: Standard metadata with eastward/northward wind components
- Multi-Resolution Support: Adaptive algorithms work with 0.25Β° to 10Β° grids
- Auto-Coordinate Detection:
-
Optimized Algorithms: Production-ready implementation
- Finite Difference Method: Uses geostrophic balance equations with proper boundary conditions
- Coriolis Parameter Handling: Accurate f-plane approximation with pole region handling
- Memory Efficient: Single precision (float32) processing with minimal memory footprint
- Flexible Grid Support: Works with both cyclic and regional domains
π§ Technical Improvements
-
Hybrid Build System: Implemented innovative meson-setuptools hybrid architecture for seamless extension development
- Zero-Configuration Module Addition: New Cython/C/Fortran modules automatically discovered and built
- Unified Workflow: Single command
python setup.py build_ext --inplacebuilds all extensions - Cross-Platform Optimization: Automatic compiler detection and platform-specific optimization flags
- Smart Extension Discovery:
setup.pyautomatically finds and compiles all submodules withmeson.buildfiles - Backwards Compatible: Maintains existing CI/CD workflows while enabling modern build features
- Developer Friendly: Copy template
meson.build, modify module name, and it's ready to build
-
Enhanced Extension Building: Streamlined process for adding compiled extensions
- Template-Based: Simple copy and modify approach for new extensions
- Automatic Integration: No manual
setup.pymodifications required for new modules - Parallel Builds: Meson enables efficient parallel compilation
- Incremental Updates: Only rebuilds changed modules for faster development cycles
-
Fortran Extensions: Added 2D and 1D specific interfaces (prepared for future compilation)
-
Enhanced Error Handling: Better validation for different data dimensionalities
-
Memory Optimization: Efficient processing of large multi-dimensional arrays
-
CF Compliance: Output follows Climate and Forecast metadata conventions
π New Functionality
- Spatial Correlation Analysis: Added
skyborn.calc.spatial_correlationfunction for analyzing spatial patterns of correlation between gridded data and time series - Enhanced Linear Regression: Improved
linear_regressionfunction with robust NaN value handling for climate data with missing observations - Multi-Scale Analysis: Seamlessly analyze from single profiles to global climate datasets
- Time Series Support: Process multi-year datasets with preserved temporal coordinates
- Cross-Section Analysis: Dedicated support for meridional and zonal cross-sections
- Automatic Sorting: Intelligent pressure level ordering with user override options
π§ͺ Validation & Testing
- Successfully tested on realistic atmospheric data (CESM2 model output)
- Verified accuracy: 99.96% success rate on 663,552 grid points
- Performance validated: 100 profiles processed in 38ms
- Cross-validated against standard atmospheric profiles