Skip to main content

Package for process-oriented climate modeling

Project description

Python package for process-oriented climate modeling

| **Brian E. J. Rose**
| Department of Atmospheric and Environmental Sciences
| University at Albany

``python install``

or, if you are developing new code

``python develop``

About climlab
``climlab`` is a flexible engine for process-oriented climate modeling.
It is based on a very general concept of a model as a collection of individual,
interacting processes. ``climlab`` defines a base class called ``Process``, which
can contain an arbitrarily complex tree of sub-processes (each also some
sub-class of ``Process``). Every climate process (radiative, dynamical,
physical, turbulent, convective, chemical, etc.) can be simulated as a stand-alone
process model given appropriate input, or as a sub-process of a more complex model.
New classes of model can easily be defined and run interactively by putting together an
appropriate collection of sub-processes.

Most of the actual computation for simpler model components use vectorized
``numpy`` array functions. It should run out-of-the-box on a standard scientific
Python distribution, such as ``Anaconda`` or ``Enthought Canopy``.

New in version 0.3, ``climlab`` now includes Python wrappers for more
numerically intensive processes implemented in Fortran code (specifically the
CAM3 radiation module). These require a Fortran compiler on your system,
but otherwise have no other library dependencies. ``climlab`` uses a compile-on-demand
strategy. The compiler is invoked automatically as necessary when a new process
in created by the user.

Currently, ``climlab`` has out-of-the-box support and documented examples for

- 1D radiative and radiative-convective single column models, with various radiation schemes:
- Grey Gas
- Simplified band-averaged models (4 bands each in longwave and shortwave)
- One GCM-level radiation module (CAM3)
- 1D diffusive energy balance models
- Seasonal and steady-state models
- Arbitrary combinations of the above, for example:
- 2D latitude-pressure models with radiation, horizontal diffusion, and fixed relative humidity
- orbital / insolation calculations
- boundary layer sensible and latent heat fluxes

Example usage
The directory ``climlab/courseware/`` contains a collection of IPython / Jupyter
notebooks (*.ipynb) used for teaching some basics of climate science,
and documenting use of the ``climlab`` package.
These are self-describing, and should all run out-of-the-box once the package is installed, e.g:

``jupyter notebook Insolation.ipynb``

The first versions of the code and notebooks were originally developed in winter / spring 2014
in support of an undergraduate course at the University at Albany.
See the original course webpage at

The package and its API was completely redesigned around a truly object-oriented
modeling framework in January 2015.

It was used extensively for a graduate-level climate modeling course in Spring 2015:
Many more examples are found in the online lecture notes for that course:

Version 0.3 was released in February 2016. It includes many internal changes and
some backwards-incompatible changes (hopefully simplifications) to the public API.
It also includes the CAM3 radiation module.

Contact and Bug Reports
Users are strongly encouraged to submit bug reports and feature requests on
github at

This code is freely available under the MIT license.
See the accompanying LICENSE file.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
climlab-0.3.0.tar.gz (2.2 MB) Copy SHA256 hash SHA256 Source None Feb 15, 2016

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page