Skip to content

COSIPY v2.0

Compare
Choose a tag to compare
@AnsArn AnsArn released this 22 Nov 14:08
· 23 commits to master since this release
39c71cd

COSIPY 2.0

This update is not backwards-compatible with previous versions of COSIPY.

TL;DR

  • New configuration system - convert your old config files using convert_config.py.
  • Critical bug fixes - surface temperature, refreezing, snowfall, radiation.
  • Performance - up to 30% faster for some simulations.
  • Expanded support for WRF.
  • Pip package support - install once, run anywhere.
  • Documentation update - API, tutorial.
  • CI workflow.

Please read the updated tutorial on cosipy.readthedocs.io to learn how to use the new configuration system.

Features

  • Configuration system now uses .toml files. You can now run multiple simulations from the same root directory.
  • Configuration for utilities is now centralised to a single file.
  • .py configuration files for COSIPY 1.4 can be converted to the new .toml system with a utility script.
  • Expanded support for WRF.
  • Packaging support for pip - installing with pip provides shortcuts for common COSIPY commands.
  • Updated tutorial, API, and documentation.

Breaking changes

  • Drops support for Python 3.8 and lower.
  • Replaces the entire configuration system.
  • Centralises the source directory structure.
  • Removes the output and output.full files. Output variable selection is now in the config file.
  • Some arguments have been renamed to avoid namespace collision. -c, -x, -u, -s are now reserved for handling configuration files.
  • Some output attributes and variable names have been corrected.

Critical Bug Fixes

  • The surface temperature solver no longer terminates prematurely.
  • Refreezing now conserves mass and uses the correct units. Thanks to @MarcusGastaldello for providing both these fixes.
  • Snowfall is now in metres water equivalent instead of ice equivalent. Thanks to @Richteny for spotting this.
  • Date comparisons now compare times instead of string lengths.
  • Incorrect conversion to radians in radiation module.
  • Fixed typos in output variable names.

Optimisations

  • Simulations run up to 30% faster.
  • Significant optimisations across all modules - with thanks to @MarcusGastaldello and @Richteny.
  • "Secant" is now the default minimisation algorithm.
  • Optimisations for saving data to disk.
  • Optimisations for preprocessing scripts.