Sympl is a Toolkit for building Earth system models in Python.
Sympl is a Toolkit for building Earth system models in Python. For more information, read the documentation at https://sympl.readthedocs.io.
- Free software: BSD license
- Documentation: https://sympl.readthedocs.io.
- Fixed value of planetary radius, added specific heat of water vapor.
- Added some more physical constants.
- Added readthedocs support.
- Overhaul of documentation.
- Docstrings now use numpy style instead of Google style.
- Expanded tests.
- Added function to put prognostic tendencies in diagnostic output.
- NetCDFMonitor is actually working now, and has tests.
- There are now helper functions for automatically extracting required numpy arrays with correct dimensions and units from input state dictionaries. See the note about _properties attributes in Breaking changes below.
- Added base object for testing components
- Renamed set_dimension_names to set_direction_names, set_dimension_names is now deprecated and gives a warning. add_direction_names was added to append to the dimension list instead of replacing it.
- The constant stefan_boltzmann is now called stefan_boltzmann_constant to maintain consistency with other names.
- Removed add_dicts_inplace from public API
- combine_dimensions will raise exceptions in a few more cases where it should do so. Particularly, if there is an extra dimension in the arrays.
- Default out_dims is removed from combine_dimensions.
- input_properties, tendency_properties, etc. dictionaries have been added to components, which contain information about the units and dimensions required for those arrays, and can include more properties as required by individual projects. This makes it possible to extract appropriate numpy arrays from a model state in an automated fashion based on these properties, significantly reducing boilerplate code. These dictionaries need to be defined by subclasses, instead of the old “inputs”, “outputs” etc. lists which are auto-generated from these new dictionaries.
- Class wrapping now works by inheritance, instead of by monkey patching methods.
- All Exception classes (e.g. SharedKeyException) have been renamed to “Error” classes (e.g. SharedKeyError) to be consistent with normal Python naming conventions
- First release on PyPI.