Skip to main content

CliMT is a Toolkit for building Earth system models in Python.

Project description

=====
CliMT
=====


.. image:: https://img.shields.io/pypi/v/climt.svg
:target: https://pypi.python.org/pypi/climt
:alt: PyPI

.. image:: https://img.shields.io/travis/CliMT/climt.svg
:target: https://travis-ci.org/CliMT/climt
:alt: Continuous Integration

.. image:: https://ci.appveyor.com/api/projects/status/h9ayx22cxyfwh5rh?svg=true
:target: https://ci.appveyor.com/project/JoyMonteiro/climt
:alt: Continuous Integration

.. image:: https://img.shields.io/codecov/c/github/CliMT/climt.svg
:target: https://travis-ci.org/CliMT/climt
:alt: Coverage

.. image:: https://readthedocs.org/projects/climt/badge/
:target: https://climt.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status

.. image:: https://zenodo.org/badge/74854230.svg
:target: https://zenodo.org/badge/latestdoi/74854230
:alt: Zenodo DOI

CliMT is a Toolkit for building Earth system models in Python. CliMT stands for *Climate Modelling
and diagnostics Toolkit* -- it is meant both for creating models and for generating diagnostics
(radiative fluxes for an atmospheric column, for example). However, since it might eventually
include model components for purposes other than climate modelling (local area models, large-eddy
simulation), we prefer to keep the abbreviation un-expanded!

CliMT hopes to enable researchers to easily perform online analysis and make
modifications to existing models by increasing the ease with which models
can be understood and modified. It also enables educators to write
accessible models that serve as an entry point for students into Earth
system modeling, while also containing state-of-the-art components.

Initially CliMT contains only components for the atmosphere, and does not yet
include a coupler. But there are plans to extend CliMT to a fully coupled Earth
system model in the future. The toolkit is also written in such a way that it
could enable the development of non-climate models (e.g. weather prediction,
large-eddy simulation). To do so requires only that the prognostic and
diagnostic schemes are wrapped into the correct Python-accessible interface.

CliMT builds on Sympl_, which provides the base classes and array and constants handling
functionality. Thanks to Sympl_ and Pint_, CliMT is also a fully units aware model. It is
useful to know how Sympl_ works to use CliMT better. Read more about Sympl_ at
https://sympl.readthedocs.io.

* Free software: BSD license
* Documentation: https://climt.readthedocs.io.

Installation
-------------

CliMT can be installed directly from the python package index using pip.

pip install climt

should work on most systems. From version 0.9.2 onwards, this command will
install binary wheels, eliminating the requirement of a compiler on your
system.

Detailed instructions for Mac and Linux systems are available in the `documentation`_.

Features
--------

* CliMT is fully units-aware!
* Uses the xarray_ `DataArray` abstraction to build self describing model arrays.
* Provides different levels of abstraction towards building a climate model.
* Like Sympl_, CliMT consciously uses descriptive names in the user API to ensure
model scripts are self-documenting.
* Allows for quick prototyping of earth system model components.
* Provides a clean and convenient interface to add new components.

Credits
-------

This package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.

.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage
.. _Sympl: https://github.com/mcgibbon/sympl
.. _Pint: https://pint.readthedocs.io
.. _xarray: http://xarray.pydata.org
.. _documentation: http://climt.readthedocs.io/en/latest/installation.html


=======
History
=======

v.0.14.7
--------

* Fix issue with pip v10 and pandas 0.22 conflicts
v.0.14.3
-------

* Fix release issue because of pip API change

v.0.14.1
--------
* Fix appveyor fail due to pip changes

v.0.14.0
--------

* Fixed broken version numbers

v.0.12.0
--------

* new release to fix version numbers and create zenodo ID

v.0.9.4
-------

* Added attributes to inputs/outputs/ etc., to work with ScalingWrapper
Added tests as well.
* Added tests for constants functions
* Fixed requirements to ensure this version of climt installs
the correct versions of sympl and numpy.

v.0.9.3
-------

* Released because of a labelling issue. See 0.9.2 for details.

v.0.9.2
--------
* Updated documentation
* Cleaned up examples
* Added (*)_properties as a property to all components
* The gas constant for dry air in the Emanuel scheme is now renamed _Rdair
* RRTMG LW and SW are now OpenMP parallel
* Added Instellation component to calculate zenith angle
* Added tests to increase coverage
* New constants handling functionality added
* Travis builds now use stages
* Appveyor CI up and running
* Pre-installation of cython and numpy no longer necessary for source builds
* Added snow-ice component
* Ozone profiles do not need to be specified externally
* Now also tested on Python 3.6

Breaking Changes
----------------

* API for constants setting changed to `set_constant_from_dict` and `add_constants_from_dict`
* `GfsDynamicalCore` renamed to `GFSDynamicalCore` for consistency
* `get_prognostic_version` method of `ClimtImplicit` renamed to `prognostic_version`, and
no longer accepts timestep as an argument. The current timestep should be set in
`ClimtImplicit.current_time_step` during each iteration.
* `RRTMGShortwave` now uses sympl's solar constant by default instead of from fortran.

v.0.9.1
-------
* Held-Suarez and moist GCM with grey radiation work!
* Added DCMIP initial conditions, test 4 tried out.
* Dynamical core integrated now.
* BIG change in the build system. Tests pass on Mac as well
* Arrays can now have arbitrary dtype (to use qualitative, string, quantities)
* Added Emanuel Convection, surface energy balance model and ice sheet energy balance
* 2D coordinates are now supported for horizontal coordinates
* Replaced create_output_arrays() with a more general
get_state_dict_for() and get_numpy_arrays_from_state()
combination.
* State arrays now have coordinates
* Updated documentation
* RTD finally working, phew!
* Added RRTMG Longwave, Simple Physics
* Added helper functions to reduce boilerplate code in components

Breaking Changes
----------------

Latest
-------

* method to obtain piecewise constant prognostic has been renamed to
:code:`piecewise_constant_version`
* Ozone profile has been modified
* Heating rate for RRTMG top-of-atmosphere is no longer manually set to zero
* Components no longer accept constants during initialisation. All constant handling
is done internally.

v.0.9
------
* SlabSurface no longer uses depth_slab_surface as input
* changed order of outputs of GfsDynamicalCore and SimplePhysics to conform
to TimeStepper order of diagnostics, new_state
* get_default_state now accepts mid_levels and interface_levels instead of z
to specify vertical coordinates.
* mass_to_volume_mixing_ratio now uses numpy arrays instead of DataArrays.

Project details


Download files

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

Source Distribution

climt-0.14.8.tar.gz (24.7 MB view details)

Uploaded Source

Built Distributions

climt-0.14.8-cp36-cp36m-win_amd64.whl (27.5 MB view details)

Uploaded CPython 3.6m Windows x86-64

climt-0.14.8-cp36-cp36m-manylinux1_x86_64.whl (25.8 MB view details)

Uploaded CPython 3.6m

climt-0.14.8-cp35-cp35m-win_amd64.whl (27.5 MB view details)

Uploaded CPython 3.5m Windows x86-64

climt-0.14.8-cp35-cp35m-manylinux1_x86_64.whl (25.8 MB view details)

Uploaded CPython 3.5m

climt-0.14.8-cp27-cp27mu-manylinux1_x86_64.whl (25.8 MB view details)

Uploaded CPython 2.7mu

climt-0.14.8-cp27-cp27m-manylinux1_x86_64.whl (25.8 MB view details)

Uploaded CPython 2.7m

File details

Details for the file climt-0.14.8.tar.gz.

File metadata

  • Download URL: climt-0.14.8.tar.gz
  • Upload date:
  • Size: 24.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for climt-0.14.8.tar.gz
Algorithm Hash digest
SHA256 fd999a27603f1ea75ceeeaf0d21e38a6fa789bbc989f90e39519de1837928350
MD5 9cefcce2228dfef6119948a13d1e1ad4
BLAKE2b-256 9b289f1ef05d3d208f41958eaf9d23d5698ab221f65e264e8d4ba02ab4f0c0c1

See more details on using hashes here.

File details

Details for the file climt-0.14.8-cp36-cp36m-win_amd64.whl.

File metadata

File hashes

Hashes for climt-0.14.8-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 e93adb03b5cc23de8fb0848d007564313ae7421a2bba9b7bdc6f4426fb7318e1
MD5 f496c93c728208e6ee4a8f7c55295f48
BLAKE2b-256 6f0941f5d54e83e359c47a9df2fb80663276d590bc4094f05c2b7572cddf9d3e

See more details on using hashes here.

File details

Details for the file climt-0.14.8-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for climt-0.14.8-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 e5227f0ce28fb6cee90b92e772e61337f3924dc9de76be77d4c870b6c472810d
MD5 f87afbc574f15aeff616788faec2e96d
BLAKE2b-256 7fc6c9e4974d7322c25bcc00e999b202bed67e3c139fab8b3db695e4a1ab52c7

See more details on using hashes here.

File details

Details for the file climt-0.14.8-cp35-cp35m-win_amd64.whl.

File metadata

File hashes

Hashes for climt-0.14.8-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 0ed8e2728b1c79da23a27260741ae2c3b3973a22a0930213ee14afc81f063b5e
MD5 fc8eb03763c2b80df2039eab5f4d20e6
BLAKE2b-256 db7b27a2486d02f2738741b3d58cf03ae9a2ac73a53fa555e306719ed26a3aac

See more details on using hashes here.

File details

Details for the file climt-0.14.8-cp35-cp35m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for climt-0.14.8-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 cd788472b366c141777e24f72bab80d833128e1b81c3b0eea52cad46171448ad
MD5 6d3c32f0db8170d4d8757242186c833a
BLAKE2b-256 46b3af0d9ac1bdbaec7554262506776c9519ea605f0bbfb0379d829aef39ea97

See more details on using hashes here.

File details

Details for the file climt-0.14.8-cp27-cp27mu-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for climt-0.14.8-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 196ca4189689b68eaa4cbefb789fb8c7dd8d30e73f273057faee1cc8a43c6d8c
MD5 179e3bab286568217e9e2103a3b9caab
BLAKE2b-256 12ae2e5b2fc1482ff6da90f937dbd2506e8438f55acf6dcb231096693f81171b

See more details on using hashes here.

File details

Details for the file climt-0.14.8-cp27-cp27m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for climt-0.14.8-cp27-cp27m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 eeb71724e3b14b6443520b52e99b3622c0ecd2dc4fe0238b91cb850293b79bc5
MD5 3f241a35c71417a68e24e8eeb0822fc0
BLAKE2b-256 8b63f2200afa7bad2936482621b35370b72a0298c281c88ae71f23ca1afd6fe5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page