Skip to main content

climt

PyPI Continuous Integration Continuous Integration Coverage Documentation Status Zenodo DOI ./docs/climt_logo.jpg

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

Note - The GFS dynamical core has been made into a seperate package called gfs_dynamical_core for ease of maintenance. If you need the dynamical core, please install this package from source or directly using pip. Doing this will automatically install climt as well.

pip install gfs_dynamical_core

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.

Citing climt

If you use climt in your research, please cite the following paper documenting sympl and climt

https://www.geosci-model-dev.net/11/3781/2018/

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

History

v.0.17.0

  • Removed dycore to move it to independent package

v.0.16.15

  • Move to Github Actions tentatively finished!

v.0.16.11

  • New component BucketHydrology that implements Manabe first generation land model

  • BucketHydrology calculates the sensible and latent heat flux within the component

  • Conservation test for the component also added

  • Moving CI to Github Actions

v.0.16.8

  • Fix timeout for all MAC builds

v.0.16.6

  • Prevent MAC OS builds from timing out

v.0.16.5

  • Fix formatting errors which prevent pypi deployment

v.0.16.4

  • Fix MCICA for the shortwave component of RRTMG

  • Revise random number generation for MCICA

  • Improvement of the user interface to control MCICA

v.0.16.3

  • update numpy requirement to avoid binary incompatibility error

  • Fix error in documentation

v.0.16.2

  • Fix wheel build on Mac

v.0.16.1

  • Fixed issue with Mac build

  • Few changes in the dry convection component. Significantly improves the performance.

  • Changed logo!

  • Fixed failing docs build

v0.16.0

  • Added some documentation for using RRTMG with McICA

  • CI Testing for Mac and py37 added.

  • Refactored initialisation code

  • Enable the McICA version of RRTMG Longwave for consistency with the Shortwave component.

  • Fix bugs in IceSheet

  • Add tests to verify conservation of quantities

  • Fix bugs in initialisation

  • Fix energy conservation in surface flux scheme

  • Enable the McICA version of RRTMG Shortwave, so that partial cloud fractions can be used.

  • Add GMD example scripts to repository.

  • Fix docs to reflect API changes after refactor.

  • Fix wrong initialisation to use sigma values instead of pressure values of optical depth for GrayLongwaveRadiation

Breaking Changes

  • The flux outputs of GrayLongwaveRadiation have been renamed to eliminate on_interface_levels to keep consistency with other components.

  • All arrays are now 3/2d by default based on their expected dimensions.

  • horizontal dimensions are now lon, lat, but inputs used by components remain the same (latitude, longitude).

v.0.14.8

Many of the changes in this version come from changes in Sympl 0.4.0. We recommend reading those changes in the Sympl documentation.

  • Updated component APIs to work with Sympl 0.4.0

  • Many components which previously required horizontal dimensions now use wildcard matches for column dimensions.

  • Switched many print statements to logging calls.

  • Fixed bugs in some components

Breaking Changes

  • get_constant and set_constant have been removed, use the ones in Sympl.

  • Emanuel convection scheme can no longer be set to perform dry adiabatic adjustment to the boundary layer. This has been implemented in a separate component.

  • ClimtPrognostic, ClimtImplicitPrognostic, ClimtDiagnostic, ClimtImplicit have been removed. Use the base types in Sympl.

  • State initialization has been entirely re-worked. get_default_state now takes in an optional grid state instead of options to do with the state grid. A function get_grid is provided which can create a grid state, or one can be created manually. A grid state is a state containing air pressure and sigma on mid and interface levels, as well as surface pressure.

  • Replaced references to “thermal_capacity” with references to “heat_capacity” in component quantity names.

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 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.

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

climt-0.18.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

climt-0.18.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (6.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

climt-0.18.3-cp312-cp312-macosx_15_0_arm64.whl (7.1 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

climt-0.18.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

climt-0.18.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (6.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

climt-0.18.3-cp311-cp311-macosx_15_0_arm64.whl (7.1 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

climt-0.18.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

climt-0.18.3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (6.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

climt-0.18.3-cp310-cp310-macosx_15_0_arm64.whl (7.2 MB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

climt-0.18.3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.6 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

climt-0.18.3-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (6.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

climt-0.18.3-cp39-cp39-macosx_15_0_arm64.whl (7.2 MB view details)

Uploaded CPython 3.9macOS 15.0+ ARM64

File details

Details for the file climt-0.18.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for climt-0.18.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d1c01f29a3fe21aada9e7803a30b3985893ad1e24931870d7269450f18a133e3
MD5 bf050576818aaa7673373293648b2a15
BLAKE2b-256 36f198d99178d470a78603d0311dac9c634b460fe2acd4521d628171452f4f1a

See more details on using hashes here.

Provenance

The following attestation bundles were made for climt-0.18.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release_climt.yml on CliMT/climt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file climt-0.18.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for climt-0.18.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 42302ef8cef4ca583cbc79e38fa409f23ba5a91e5703c760105b028989f582ed
MD5 22fff76819e9061c6fe437e9ec24c33e
BLAKE2b-256 9a537f500851ba25e384f3d4152f9cd0341a0ef3382b2d29acf77d24a27aaddd

See more details on using hashes here.

Provenance

The following attestation bundles were made for climt-0.18.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release_climt.yml on CliMT/climt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file climt-0.18.3-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for climt-0.18.3-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 138bc84ada90761ac089773517dc4e12cc25f7782acc76053f05b6003fdde556
MD5 5172f79e374f4e3fc30792dae15edea8
BLAKE2b-256 cf7856fa37e4f97147c8a01fa6cd2064f83de87542325ad89584b5cdcd4889ea

See more details on using hashes here.

Provenance

The following attestation bundles were made for climt-0.18.3-cp312-cp312-macosx_15_0_arm64.whl:

Publisher: release_climt.yml on CliMT/climt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file climt-0.18.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for climt-0.18.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5b44dfdd44b7d22df88b66d0e34e9a0006ecd446dcf551691e6400b243fc274c
MD5 07afa45a7abb0620549ba78a5b4f59c7
BLAKE2b-256 c959d44fb40f5e84fc14affa53789059ae1a0b10ebd7dece425dcb60920d6adc

See more details on using hashes here.

Provenance

The following attestation bundles were made for climt-0.18.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release_climt.yml on CliMT/climt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file climt-0.18.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for climt-0.18.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3289fe0481832123c892ae4f66d314277a17f9e3f26a343def75c4c00c379219
MD5 f3ba3bc0a68002c72eb04fb97456eaf4
BLAKE2b-256 14ba678e273d50011b233b62768b9199d3d33ce62620d73b80442a74a424109e

See more details on using hashes here.

Provenance

The following attestation bundles were made for climt-0.18.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release_climt.yml on CliMT/climt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file climt-0.18.3-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for climt-0.18.3-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 adfa4deb6423948398bda11b8423819bad45062b94086e872b49aa6cf1335370
MD5 9bf15cdff0bdd01e1e4d1e21e1e36492
BLAKE2b-256 2d9f319961642eaa7d8c98a0085c3cefb034c76aeec8d55550a7b0616c009419

See more details on using hashes here.

Provenance

The following attestation bundles were made for climt-0.18.3-cp311-cp311-macosx_15_0_arm64.whl:

Publisher: release_climt.yml on CliMT/climt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file climt-0.18.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for climt-0.18.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 50d489486fd324a856837815d7b5f46135ef5ca56bd0f6666c605383486f5166
MD5 5ed6301e167066bd00c85a9c326ef41f
BLAKE2b-256 65b74e44080b20d1c37d9c5aea3f6f1a635b41b97682c379392d979e0cbb6580

See more details on using hashes here.

Provenance

The following attestation bundles were made for climt-0.18.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release_climt.yml on CliMT/climt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file climt-0.18.3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for climt-0.18.3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c0dc49711893d75d8863048aac29d953a0a997f76dd651974fa7905a62f61e04
MD5 3701f3ee1f3853d4bd3be68536535320
BLAKE2b-256 41b202c3791fef2b33f59cc8809342cf6bf4879ecdafc883bd0a63a9ac9b16e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for climt-0.18.3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release_climt.yml on CliMT/climt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file climt-0.18.3-cp310-cp310-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for climt-0.18.3-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 309b6c849bf30808ed1b00009180302a8c3b45d26e1d88e1d49e2e6242620f41
MD5 1d26d35d891db1ae26547f4353aebee5
BLAKE2b-256 337b55e0e7b97898f08e10bfba7c06fe94fac9bfef71eb98517d068a79ec0544

See more details on using hashes here.

Provenance

The following attestation bundles were made for climt-0.18.3-cp310-cp310-macosx_15_0_arm64.whl:

Publisher: release_climt.yml on CliMT/climt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file climt-0.18.3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for climt-0.18.3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 736a8249fbd3059e6f13bfab5aaabc4e8c5e104907ec56ba4352fc8e393d1c5e
MD5 78373bc9050c06677a498feb5ff7fca6
BLAKE2b-256 bcb6487bbc29693b5144c95045be04a669364c9097464a70f45fce7bedc66769

See more details on using hashes here.

Provenance

The following attestation bundles were made for climt-0.18.3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release_climt.yml on CliMT/climt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file climt-0.18.3-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for climt-0.18.3-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 71096484df07b90fd49d30ff704c9f292b7e78c9a506e0f9fc6ff0add2e65934
MD5 36ef4558695a9d7400a4547a2e799b83
BLAKE2b-256 acb595e16bf829c85ebc489fe0cb523e9bc412f13b2e29d07f99d773c005adce

See more details on using hashes here.

Provenance

The following attestation bundles were made for climt-0.18.3-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release_climt.yml on CliMT/climt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file climt-0.18.3-cp39-cp39-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for climt-0.18.3-cp39-cp39-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 bea11c3e9e579bdf69fde5c2c286b66f4b28b6793a5e1841619930c6980e4b2e
MD5 696bdf666022c7300655c276d01b76c9
BLAKE2b-256 e3e519b2197f000cb89ddd04fbae10254f1300906e9a2e5d6a2d7ac63a0c7eff

See more details on using hashes here.

Provenance

The following attestation bundles were made for climt-0.18.3-cp39-cp39-macosx_15_0_arm64.whl:

Publisher: release_climt.yml on CliMT/climt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.31.0

7 files

0.30.0

7 files

0.20.0

6 files

0.18.5

8 files

0.18.4

8 files

This release

0.18.3 This release

12 files

0.17.13

4 files

0.17.12

6 files

0.17.10

6 files

0.17.6

4 files

0.17.5

7 files

0.16.25

10 files

0.16.24

2 files

0.16.23

4 files

0.16.14

6 files

0.16.13

1 file

0.16.9

10 files

0.16.5

3 files

0.16.3

10 files

0.16.2

10 files

0.16.1

8 files

0.16.0

10 files

0.15.3

7 files

0.15.2

7 files

0.15.1

7 files

0.15.0

1 file

0.14.8

7 files

0.14.7

8 files

0.14.6

1 file

0.14.5

3 files

0.14.4

6 files

0.14.2

3 files

0.14.1

3 files

0.14.0

1 file

0.11.0

8 files

0.10.0

7 files

0.9.4

7 files

0.9.3

8 files

0.9.1

1 file

0.9.0

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page