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

Uploaded Source

Built Distributions

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

Uploaded CPython 3.6m Windows x86-64

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

Uploaded CPython 3.6m

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

Uploaded CPython 3.5m Windows x86-64

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

Uploaded CPython 3.5m

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

Uploaded CPython 2.7mu

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

Uploaded CPython 2.7m

File details

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

File metadata

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

File hashes

Hashes for climt-0.10.0.tar.gz
Algorithm Hash digest
SHA256 c71b3ad3ea602ff8422ed855ef3e9dc760d9965cf533311f5980387a627d2bf6
MD5 ee0db105209aaa7a8fcd50591298932a
BLAKE2b-256 a669b056e0f3d6dafaff0c6bed89400effc511cffe400a28f00ec9eefabe221c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for climt-0.10.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 0387cfb8827ebe4b5295b2340c97c04b1947c63befe055324d1725c7ee694a0d
MD5 c134d8ecf722fd83c3656f4692b532ac
BLAKE2b-256 ee087ee17e351854f7417cc7b3b64b0c199bca6e277d2b681895700a5728700b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for climt-0.10.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 5aa32265e4442c28dd07d2d3a2909e09964fc1fa72f232d2f35010bd71d00e3a
MD5 930d1d14ef1cec044af30be75bdd4c5e
BLAKE2b-256 7be5f7e6f6d01f8bd2c12d0b5034690a669a7d2b2094c9e4fe8f5f03423a6d26

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for climt-0.10.0-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 c6fa7c98cc9d5eb41edf37b43568d6fa7bda29da52cfd963b377632315b66b5c
MD5 944685596e7ee02589005901e22c66e3
BLAKE2b-256 6158204a2b6f2a501e2f910b9b35930b27f55419a199b367e46defa6746223eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for climt-0.10.0-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 378b3675ec217e437d8d7ef927fd07eb00505da341434cbd39de7a504b5aa25c
MD5 7a0fa07f5152387733ddbda1211ee2e8
BLAKE2b-256 54a9e518220dfe3548c9126f269cbaec3e5904eaf2e8e16429669c7f45c2e919

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for climt-0.10.0-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 820bab93bd45236c90c3f868b826764eec9d4ee41c6da6260d268397e07c7137
MD5 67f627d6c681ee6dfa45bb2f2c5293e2
BLAKE2b-256 398ce72ce0068e20c5e5355254542e2a8e5fcfce59515fbc74b641aeb7ea1750

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for climt-0.10.0-cp27-cp27m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 83e803fd0c06fdb9aecabae6e996978ae52d0125015247e3100b37dd681fc37d
MD5 c0c950d8537cb2b412f7a36c117f3ee2
BLAKE2b-256 2c652724b17acc3418f74c9f90a3fc08494a48ee0254b33f78a6898a2f7395de

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