Recent Releases of climlab
climlab - Version 0.9.1
Bug fix and clean up of the codebase.
Some legacy code for former Python 2.7 support was removed (hasn't been tested or supported in a long time).
What's Changed
- Preserve ASR diagnostic array shape for simple EBM by @brian-rose in https://github.com/climlab/climlab/pull/251
- Remove legacy Python 2 code by @brian-rose in https://github.com/climlab/climlab/pull/252
- Doc updates for v0.9.1 release by @brian-rose in https://github.com/climlab/climlab/pull/253
Full Changelog: https://github.com/climlab/climlab/compare/v0.9.0...v0.9.1
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose about 2 months ago

climlab - Version 0.9.0
A major new release with significant new functionality and compatibility with the latest Python and Numpy versions.
New capabilities
- Full support for aerosols in RRTMG
- New moist atmospheric physics
- A new SimplifiedBettsMiller moist convection process following Frierson (2007)
- A simple LargeScaleCondensation process to represent condensation and precipitation from large-scale moisture convergence.
- A new Limiter process that implements min/max bounds for state variables
- Better consistency for internally generated diagnostics, including a new additive assumption for same-named diagnostics produced by multiple subprocesses.
- Support for multiple time-averaging methods for solar zenith angle, including more flexible support for zenith angle in RRTMG and CAM3 radiation processes.
The compiled Fortran dependencies have also been updated, with some breaking changes to their interfaces. Thus climlab 0.9.0 requires climlab-rrtmg >= 0.4.1 and climlab-cam3-radiation >= 0.3.
This release also includes numerous documentation improvements, bug fixes, and support for Numpy 2 and Python 3.12 / 3.13.
What's Changed
- Bump conda-incubator/setup-miniconda from 2 to 3 by @dependabot in https://github.com/climlab/climlab/pull/197
- Support for aerosols in RRTMG by @brian-rose in https://github.com/climlab/climlab/pull/198
- Add tests for larger number of levels in RCM by @brian-rose in https://github.com/climlab/climlab/pull/205
- Update akmaev_adjustment.py by @timjupp in https://github.com/climlab/climlab/pull/204
- Refactor insolation code to clarify zenith angle formulas by @brian-rose in https://github.com/climlab/climlab/pull/206
- Set nopython=True for Numba by @brian-rose in https://github.com/climlab/climlab/pull/207
- adding support for time-averaging in xarray exporting of diagnostics by @dorrih-stardust in https://github.com/climlab/climlab/pull/214
- SW aerosol table roll bug fix by @dorrih-stardust in https://github.com/climlab/climlab/pull/213
- Make diffusive and advective fluxes proper Field objects by @brian-rose in https://github.com/climlab/climlab/pull/219
- New Limiter process that implements min/max bounds for state variables by @brian-rose in https://github.com/climlab/climlab/pull/221
- Make same-named diagnostics additive by @brian-rose in https://github.com/climlab/climlab/pull/222
- Diagnostics improvements for GreyGas model by @brian-rose in https://github.com/climlab/climlab/pull/223
- Switch CI builds to use Miniforge by @brian-rose in https://github.com/climlab/climlab/pull/225
- Add SimplifiedBettsMiller convection process by @brian-rose in https://github.com/climlab/climlab/pull/229
- Add LargeScaleCondensation process by @brian-rose in https://github.com/climlab/climlab/pull/230
- Get inheritance graphs working again by @brian-rose in https://github.com/climlab/climlab/pull/232
- Basic docs on additive diagnostics by @brian-rose in https://github.com/climlab/climlab/pull/233
- Update the quickstart doc page by @brian-rose in https://github.com/climlab/climlab/pull/234
- Improve insolation handling by @brian-rose in https://github.com/climlab/climlab/pull/209
- Temporary pin to previous climlab-rrtmg by @brian-rose in https://github.com/climlab/climlab/pull/236
- Check to make sure CAM3 radiation gets scalar greenhouse gas VMRs by @brian-rose in https://github.com/climlab/climlab/pull/239
- Numpy 2 compatible broadcasting in implicit solver by @brian-rose in https://github.com/climlab/climlab/pull/241
- Pin to previous sphinx version due to nbsphinx incompatibility by @brian-rose in https://github.com/climlab/climlab/pull/242
- Compatibility with updated Fortran radiation driver by @brian-rose in https://github.com/climlab/climlab/pull/243
- Better support for zenith angle in Insolation process objects by @brian-rose in https://github.com/climlab/climlab/pull/235
- Fully support and test coszen weighting options by @brian-rose in https://github.com/climlab/climlab/pull/244
- Test on Python 3.13 by @brian-rose in https://github.com/climlab/climlab/pull/245
- Clean up and bump to version 0.9.0 by @brian-rose in https://github.com/climlab/climlab/pull/246
- Release notes for v0.9.0 by @brian-rose in https://github.com/climlab/climlab/pull/247
- Fix typo by @brian-rose in https://github.com/climlab/climlab/pull/248
New Contributors
- @timjupp made their first contribution in https://github.com/climlab/climlab/pull/204
- @dorrih-stardust made their first contribution in https://github.com/climlab/climlab/pull/214
Full Changelog: https://github.com/climlab/climlab/compare/v0.8.2...v0.9.0
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose about 2 months ago

climlab - Version 0.8.2
New feature: process class climlab.radiation.InstantInsolation()
which correctly interprets longitude, respects local solar time and calculates hour angle. A utility function climlab.solar.insolation.instant_insolation()
is also available, with usage mirroring the existing climlab.solar.insolation.daily_insolation()
.
Thanks to @HenryDane for this contribution!
This release also includes numerous bug fixes, updates for Python 3.11, and improvements to documentation and CI builds.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose over 1 year ago

climlab - Version 0.8.1
A major refactor of the internals: all the Fortran code has been moved into external companion packages climlab-rrtmg, climlab-cam3-radiation, and climlab-emanuel-convection. Climlab is now (once again!) a pure Python package. Builds of these helper packages are available through conda-forge and will be automatically installed as dependencies by conda / mamba.
The climlab source repo also moved to https://github.com/climlab/climlab
There should be no breaking changes to the user-facing API.
The major motivation for this change was to (vastly) simplify the development and testing of new-and-improved climlab internals (coming soon).
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose almost 3 years ago

climlab - Version 0.7.13
This is a maintenance release to support Python 3.10
The attrdict package by Brendan Curran-Johnson has been removed from the dependencies since it is broken on Python 3.10 and no longer under development.
A modified version of the MIT-licensed attrdict source is now bundled internally with climlab. There are no changes to climlab's public API.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose about 3 years ago

climlab - Version 0.7.12
New feature: the ability to report top-of-atmosphere emission separated into spectral bands with the RRTMG radiation code.
A new tutorial notebook illustrates what you can do with this feature.
The change is completely backwards compatible. A new input flag return_spectral_olr
has been added to the RRTMG_LW
process, which defaults to False
.
Many thanks to @AndrewWilliams3142 for leading this new contribution.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose almost 4 years ago

climlab - Version 0.7.11
This version brings some under-the-hood improvements to the automated download and caching of required data files. These services are now outsourced to pooch.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose almost 4 years ago

climlab - Version 0.7.10
No changes to climlab functionality.
This release brings some modernization to the build and test infrastructure:
- migrating all CI testing to GitHub Actions
- Removing appveyor and travisCI
- renaming the default source code branch from master to main
- Improvements to documentation of build and test procedures
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose almost 4 years ago

climlab - Version 0.7.9
- Bug fixes
- Improvements to the documentation, specifically on how to build the docs locally.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose over 4 years ago

climlab - Version 0.7.8
Bug fixes.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose over 4 years ago

climlab - Version 0.7.7
Bug fixes
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose over 4 years ago

climlab - Version 0.7.6
Bug fixes, some improvements to build infrastructure and docs, and tested compatibility with Python 3.8 on all platforms.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose over 5 years ago

climlab - Version 0.7.5
This is mostly a bug fix release to fix some issues with the diagnostics created by the new AdvectionDiffusion class introduced in v0.7.4
There are also improvements to the Windows build on Appveyor.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose almost 6 years ago

climlab - Version 0.7.4
A new flexible 1D advection-diffusion solver:
climlab.dynamics.AdvectionDiffusion
is a new parent class for 1D advection-diffusion processes- Operates along any named axis
- Non-uniform grids are supported
- No breaking changes to existing Diffusion classes; they now subclass
climlab.dynamics.AdvectionDiffusion
and simply set the advecting velocity to zero. - New numerics are implemented in
climlab.dynamics.adv_diff_numerics
; this module is independent of theclimlab.Process
objects and can be used outside the context of climlab models. - Improved documentation of the
climlab.dynamics
module
Plus some bug fixes.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose almost 6 years ago

climlab - Version 0.7.3
Bug fix and changes to continuous integration for Python 2.7 compatibility
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose about 6 years ago

climlab - Version 0.7.2
Improvements to surface flux processes, a new data management strategy, and improved documentation.
Details:
- climlab.surface.LatentHeatFlux
and climlab.surface.SensibleHeatFlux
are now documented, more consistent with the climlab API, and have new optional resistance
parameters to reduce the fluxes (e.g. for modeling stomatal resistance)
- climlab.surface.LatentHeatFlux
now produces the diagnostic evaporation
in kg/m2/s. climlab.convection.EmanuelConvection
produces precipitation
in the same units.
- The previous PRECIP
diagnostic (mm/day) in climlab.convection.EmanuelConvection
is removed. This is a BREAKING CHANGE.
- Data files have been removed from the climlab source repository. All data is now accessible remotely. climlab will attempt to download and cache data files upon first use.
- climlab.convection.ConvectiveAdjustement
is now accelerated with numba
if it is available (optional)
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose about 6 years ago

climlab - Version 0.7.1
This release brings deeper xarray integration, include one breaking change to climlab.solar.orbital.OrbitalTable
, Python 3.7 compatibility, and minor enhancements.
Details:
- Removed
climlab.utils.attr_dict.AttrDict
and replaced with AttrDict package (a new dependency) - Added
xarray
input and output capabilities forclimlab.solar.insolation.daily_insolation()
climlab.solar.orbital.OrbitalTable
andclimlab.solar.orbital.long.OrbitalTable
now returnxarray.Dataset
objects containing the orbital data.- The
lookup_parameter()
method was removed in favor of using built-in xarray interpolation. - New class
climlab.process.ExternalForcing()
for arbitrary externally defined tendencies for state variables. - New input option
ozone_file=None
for radiation components, sets ozone to zero. - Tested on Python 3.7. Builds will be available through conda-forge.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose over 6 years ago

climlab - Version 0.7.0
New functionality, improved documentation, and a few breaking changes (hopefully for the better) to the API.
Major new functionality includes convective adjustment to the moist adiabat, and moist EBMs with diffusion on moist static energy gradients.
climlab.convection.ConvectiveAdjustement
now allows non-constant critical lapse rates, stored in input parameteradj_lapse_rate
.- New switches to implement automatic adjustment to dry and moist adiabats (pseudoadiabat)
climlab.EBM()
and its daughter classes are significantly reorganized to better respect CLIMLAB principles:
- Essentially all the computations are done by subprocesses
- SW radiation is now handled byclimlab.radiation.SimpleAbsorbedShortwave
class
- Diffusion and its diagnostics now handled byclimlab.dynamics.MeridionalHeatDiffusion
class.
- Diffusivity can be altered at any time by the user, e.g. during timestepping
- Diffusivity input valueK
in classclimlab.dynamics.MeridionalDiffusion
is now specified in physical units of m2/s instead of (1/s). This is consistent with its parent classclimlab.dynamics.Diffusion
.- A new class
climlab.dynamics.MeridionalMoistDiffusion
for the moist EBM (diffusion down moist static energy gradient) - Tests that require compiled code are now marked with
pytest.mark.compiled
for easy exclusion during local development
- A new class
Under-the-hood changes include
- Internal changes to the timestepping; the
compute()
method of every subprocess is now called explicitly. Process.compute()
now always returns tendency dictionaries
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose almost 7 years ago

climlab - Version 0.6.5
This release mainly adds to the documentation, including a detailed page with instructions for contributing to climlab.
This is associated with the forthcoming release of a meta-description paper in Journal of Open Source Software.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose about 7 years ago

climlab - Version 0.6.4
This release brings a new simplified API for coupling together subcomponents of a model.
There is now a method climlab.couple()
that accepts a list of processes and returns a parent model with the given subprocesses nested inside it.
This is considered a beta feature for now and is not really documented. It partially addresses #65
Also included is a new SimpleAbsorbedShortwave
class for energy balance models, and numerous bug fixes.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose about 7 years ago

climlab - Version 0.6.3
This release has some under-the-hood improvements to the Fortran builds that will let us build properly for a wider variety of platforms (including Windows / Python 3).
With thanks to @xoviat
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose about 7 years ago

climlab - Version 0.6.3.dev1
This is an experimental release with an improved build scheme. This release is really just to test the automated build procedure on conda-forge.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose about 7 years ago

climlab - Version 0.6.2
This release provides
- the Emanuel convection scheme, so we can now set up and run a comprehensive single- or multi-column radiative-convective model with interactive water vapor
- support for asynchronous coupling of time-dependent components
- significant optimization of some climlab internals to speed up the runtime
No backwards-incompatible changes have been introduced.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose about 7 years ago

climlab - Version 0.6.1
This release brings basic integration with xarray.
There are now to_xarray()
methods for automated translation of climlab model variables into xarray.DataArray
and xarray.Dataset
objects. See the new docs.
This should simplify analysis and plotting of model output.
Deeper integration with xarray
is planned for later releases.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose over 7 years ago

climlab - Version 0.6.0
With this release, climlab is now fully Python 3 compatible!
Other goodies include:
- improvements to the documentation
- a recipe for building climlab with
conda-build
is now included - a few bug fixes and minor enhancements
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose over 7 years ago

climlab - Version 0.5.6
This release fixes some issues with the source distribution that are causing problems building on conda-forge.
No changes to climlab functionality.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose about 8 years ago

climlab - Version 0.5.5
This release includes yet more refinements to the build procedure, moving toward a fully automated build on conda-forge
(hopefully coming in climlab release 0.6!)
Unused parts of the RRTMG_SW and RRTMG_LW source code (the column_model
versions) have been removed from the climlab
repository.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose about 8 years ago

climlab - Version 0.5.3
This version includes pristine, unmodified copies of RRTMG_SW and RRTMG_LW source code downloaded from AER, along with (very slightly) modified forms of a few Fortran code files for climlab.
A few under-the-hood changes to the build procedure hopefully paving the way for automatic builds with conda-forge (stay tuned!)
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose about 8 years ago

climlab - Version 0.5.2
The source distribution was broken in v0.5.1.
This update fixes the source distribution so the tarball available from pypi actually works.
No changes to user functionality.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose about 8 years ago

climlab - Version 0.5.1
Many under-the-hood changes to the wrappers for Fortran radiation components (RRTMG and CAM3) to make it easier to build the package on different systems.
Building with python setup.py build
or python setup.py install
now uses numpy.distutils.core.setup
which automates the building of Fortran extensions with f2py
.
Installing climlab from pre-built binaries using conda
is coming in the near-future.
There are no new changes to the public API.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose about 8 years ago

climlab - Version 0.5.0
Major update including
- Vastly improved,simplified and consistent interfaces for the CAM3 and RRTMG radiation modules
- Better testing
- Better documentation
- More robust build procedure
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose about 8 years ago

climlab - Version 0.4.2
New features include:
- The RRTMG radiation scheme
- A much-improved build process for the Fortran extension (build once at install time with
python setup.py install
, no need to rebuild for different grid dimensions) - numerous enhancements and simplifications to the API.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose about 8 years ago

climlab - Version 0.4.0
Climlab now has
- comprehensive documentation
- a reasonably comprehensive automated test suite
- support for latitude-longitude grids
- numerous other bug fixes and small enhancements
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose over 8 years ago

climlab - Version 0.3.2
This update includes:
- bug fixes
- more intelligent slicing of
climlab.Field
variables - more robust and functional CAM3 radiation module
- a suite of automated tests
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose about 9 years ago

climlab - Version 0.3.0
The internals of the climlab.Process
object have been significantly reorganized for a more consistent API.
Major new functionality includes a climlab
wrapper for the CAM3 radiation code, using a compile-on-demand strategy to create the interactive Python object from Fortran code at run-time when the user invokes a new climlab.radiation.CAM3Radiation()
process.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose about 9 years ago

climlab - First public release of process-oriented climlab code
First public release of the new climlab
code: a python package for Process-Oriented Climate Modeling.
All model code is now organized around the concept of a Process
with arbitrarily complex trees of subprocesses.
All the functionality of v0.1 is preserved and expanded upon, but the API has changed substantially.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose about 10 years ago

climlab - climlab 2014 version
The first release of climlab code.
A not particularly well organized collection of code for EBMs, single-column grey radiation models, and orbital / insolation calculations.
Future releases will have a substantially different API and functionality.
Climate Change - Earth and Climate Modeling
- Jupyter Notebook
Published by brian-rose over 10 years ago
