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

Uploaded Source

Built Distributions

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

Uploaded CPython 3.6m Windows x86-64

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

Uploaded CPython 3.6m

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

Uploaded CPython 3.5m Windows x86-64

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

Uploaded CPython 3.5m

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

Uploaded CPython 2.7mu

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

Uploaded CPython 2.7m

File details

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

File metadata

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

File hashes

Hashes for climt-0.9.4.tar.gz
Algorithm Hash digest
SHA256 9ad3e6a643d9402563ae87691338cafaaa8b6cbbeca64e82debae003648cdb00
MD5 750eef70c0f377e2aa6eb831cbce8136
BLAKE2b-256 9b35c00695ff78186b8bf44d7dddfe37cf0d699cd27b81b2dd5db2c69753540f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for climt-0.9.4-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 9322f9d590c4037f1e7480a78210b188101dfed6052052af548960a1c8637a23
MD5 1b0c14cd4646a4d7bbfc7f814e62a53c
BLAKE2b-256 64f34d0c9ed0d93d88ad46dc9a8cc2ae6434b894f64778f46cc9e68866d6e60e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for climt-0.9.4-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 8346a0042027f74e7d46f8038fcb0b8dcbda0d44d1402318e8f932cea4f2d24d
MD5 d072d9eaad5a3e45435ada15c393a4de
BLAKE2b-256 401f570f48ea6c3ff21b82a69bb5771a23427128fdb4737cc78fcf4b70d9d719

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for climt-0.9.4-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 546453bb03177778138316a46146f5e43314b2990ef51627062e4e16cc2adeb6
MD5 f91e76279c1fde5e1fcb933b12fda106
BLAKE2b-256 da170ff66c0eb64dfe1e421d27aa3497d7c9f0658d4a19ccd38da2e88a88ff10

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for climt-0.9.4-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 d2c0d353386ac20db6b9f1435a088a39c0db4d8dc67995fb94d330c933b37946
MD5 a433675a9ba5bc038b8ec18bc58bcc73
BLAKE2b-256 dd747ca9e09728b9309fd4987a4129988cd11877f22ba7739838b41868d67a36

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for climt-0.9.4-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 b6a7057c0ba8386b1934f18151738797b65e4338586da8f550671dbd88d3726f
MD5 a4a923058fb39376e9ec2085e021cd61
BLAKE2b-256 d86c9035d502ff298883199c8d7523bf0d6497783d8ec0ff108ab369359d278a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for climt-0.9.4-cp27-cp27m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 963fe6b135813a549217be77d1ccb5f392df8408d4f019e3fe3534072da7338c
MD5 52c0486d4cdc59ca079bcb998c2a0b97
BLAKE2b-256 52ba31ae3945621560d2091cf572582fd0c32edf09b32ac2296a607e729bcdeb

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