Skip to main content

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

Project description

CliMT

PyPI Continuous Integration Continuous Integration Coverage Documentation Status

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.

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.

History

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 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.9.3.tar.gz (9.7 MB view details)

Uploaded Source

Built Distributions

climt-0.9.3-cp36-cp36m-win_amd64.whl (12.4 MB view details)

Uploaded CPython 3.6m Windows x86-64

climt-0.9.3-cp36-cp36m-manylinux1_x86_64.whl (10.8 MB view details)

Uploaded CPython 3.6m

climt-0.9.3-cp36-cp36m-macosx_10_6_intel.whl (10.1 MB view details)

Uploaded CPython 3.6m macOS 10.6+ intel

climt-0.9.3-cp35-cp35m-win_amd64.whl (12.4 MB view details)

Uploaded CPython 3.5m Windows x86-64

climt-0.9.3-cp35-cp35m-manylinux1_x86_64.whl (10.8 MB view details)

Uploaded CPython 3.5m

climt-0.9.3-cp27-cp27mu-manylinux1_x86_64.whl (10.8 MB view details)

Uploaded CPython 2.7mu

climt-0.9.3-cp27-cp27m-manylinux1_x86_64.whl (10.8 MB view details)

Uploaded CPython 2.7m

File details

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

File metadata

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

File hashes

Hashes for climt-0.9.3.tar.gz
Algorithm Hash digest
SHA256 2552f02e639810408ba8a74cab3bd04ad85522c85879b9bd8b8a6eb9f8fb7ce0
MD5 5eadc7a5d70b9b965a92abcea598d255
BLAKE2b-256 f677f3a338b6da42f91497d6eeb939d02c43146971b61d2c26a94d0ff3778a08

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for climt-0.9.3-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 1da9ced61b5086155dbe5c91fb104e639c820f0ab862880044745969badb8f46
MD5 4a65cd2a50595ec8f9738cf000ea4032
BLAKE2b-256 eb4ef7c1fbddc3bab136c0a807c579386bf22b75e052cb0cb631fdbd099cde32

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for climt-0.9.3-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 9b5bce61d2f606b32a40118050238c0ba59bf57ce622a25eab120dc870b6281e
MD5 adc3285b7b820d35d633da3075cff2bf
BLAKE2b-256 84472981d6b293f7af10a93aa35f3ac81363bcf202ae854fbc7960989e219060

See more details on using hashes here.

File details

Details for the file climt-0.9.3-cp36-cp36m-macosx_10_6_intel.whl.

File metadata

File hashes

Hashes for climt-0.9.3-cp36-cp36m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 0435c35bc44a8578a3aa0b256cf68916a4e55cf7b73424c5b93e8e59a4428ee7
MD5 abd32eec196334b38c5b9b4eae06927a
BLAKE2b-256 518db195839ae6cd74dbdbbfe0f9ee607af218ef31ca3299230253d85a1e433d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for climt-0.9.3-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 34f7b8320b66bc8458665a53dda3a949a4cdbecbbdb6fc0e365fab3645cfb2cc
MD5 b57b7cd5923783acfb1c024f39201293
BLAKE2b-256 8b171f266a6278e7d2ece4b2743ca1d83f5f2eae8ce4aaeb87eeaa54fcc5f0ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for climt-0.9.3-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 2e2a2aa12ae1e51c1b9d38ddf143c5813398e515a0ab497e95b8ab95561dab9a
MD5 36b8587696833a95f726e124c63f3163
BLAKE2b-256 8c38299063268b37eba1edc8c3180be14c24eda6725929e5ef974cedca4d2822

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for climt-0.9.3-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 1d77f6fe3f5f8ed06ba3c2c122a7526415e30b235289950c1273381b7431acad
MD5 a4e8ab7d740bd27dab5e8074769602d5
BLAKE2b-256 88759dd4ce6c855cd875f0baf7009bc384ca8e6fc69a8b3a43aa975560ac3a8a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for climt-0.9.3-cp27-cp27m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 3532d491ba25007b997a3060e6e01ed4ceb45ce51b62898e8d7a5295e5cae147
MD5 e87021fcf05bc7759767b915943f62db
BLAKE2b-256 ad97d55d0d7a32c264da73151f1498637c6a239bbf168d85da8ffe9006cc0351

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