A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

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

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

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

New Contributors

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 the climlab.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 for climlab.solar.insolation.daily_insolation()
  • climlab.solar.orbital.OrbitalTable and climlab.solar.orbital.long.OrbitalTable now return xarray.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 parameter adj_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 by climlab.radiation.SimpleAbsorbedShortwave class
    - Diffusion and its diagnostics now handled by climlab.dynamics.MeridionalHeatDiffusion class.
    - Diffusivity can be altered at any time by the user, e.g. during timestepping
    - Diffusivity input value K in class climlab.dynamics.MeridionalDiffusion is now specified in physical units of m2/s instead of (1/s). This is consistent with its parent class climlab.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

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