v0.8.4
What's New in v0.8.4
Features
Parallel Execution
- Add configurable SUMMA parallel backend (
local/slurm) with automatic fallback when SLURM is unavailable (#121) - Add intra-iteration parallel GRU execution for SUMMA calibration (#118)
- Add local
ThreadPoolExecutorbackend as alternative to SLURM for parallel SUMMA runs
Routing & Model Integration
- Add mizuRoute routing support for ngen SAC-SMA and TOPMODEL modules (#117)
- Add SUMMA+mizuRoute glacier configuration for Iceland national model
- Route mizuRoute final-evaluation output into the correct output tree (#119, #122)
- Allow log transforms on SUMMA calibration parameter bounds via config-level overrides (#122)
Calibration & Optimization
- Generalize multi-gauge calibration infrastructure for HYPE, FUSE, and SUMMA
- Add SCE-UA contraction step and per-complex parallelization strategy (#110)
- Add option to specify initial guess for optimizer (#114)
- Improve regionalization transfer function attribute mappings for SUMMA and HYPE (#113)
Data & Attributes
- Add
ATTRIBUTE_PROFILEconfig with CAMELS-SPAT and full profile presets (#108, #109) - Add glacier fraction to climate statistics and HYPE regionalization
- Add
glacier_fractioncolumn to HYPE GeoData.txt
Infrastructure
- Add Docker Compose file and per-method install Dockerfiles for validation
- Add CI lint guards to pre-commit hooks
Bug Fixes
SUMMA
- Enforce
k_macropore >= k_soilphysical constraint - Guard empty time dimension in worker time precision fix
- Tighten parameter bounds to prevent SIGSEGV crashes
- Resolve mizuRoute output path in final evaluation
HYPE
- Align Pobs subbasin IDs with GeoData +1 shift
- Use coastal basins for GeoData + disable
readobsidfor multi-gauge - Include all IGBP attributes in land-use regionalization loader
Calibration
- Fix async-DDS:
NUMBER_OF_ITERATIONSnow means total batches, not per-process target (#116) - SCE-UA: CCE always accepts random point if reflection and contraction both fail
- Fix
number_of_evolution_stepsconfig returningNoneinstead of falling through to default
Other
- Filter forcing files by dataset name to prevent grid mismatch
- Fix ngen Snow-17 BMI library filename; stop SLoTH sub-build from falsely failing
- Fix FUSE: use equal-area projection (EPSG:6933) for catchment area calculation
- Docker: pin GDAL Python bindings, align apt lists across install methods
Performance
- Vectorize climate statistics computation across all HRUs
Workshop & Examples
- Revised Logan River workshop notebooks for lumped HBV, SUMMA, async-DDS, and distributed workflows
- Add
/tmpredirect and emergency fallback to 04a notebook for environments with limited disk - Corrected Bow at Banff bounding box in lumped config example
Contributors
- Darri Eythorsson (@DarriEy)
- Tristan Montoya (@tristanmontoya)
- Peter Wagener (@peterwagener)
- Andrew Preucil (@apreucil)
- Lindsay Parker (@peterwagener)