PADDLE: Python Atmospheric Dynamics: Discovery and Learning about Exoplanets

raw JSON →
1.3.0 verified Mon Apr 27 auth: no python

PADDLE (Python Atmospheric Dynamics: Discovery and Learning about Exoplanets) is an open-source, user-friendly Python frontend of the canoe general circulation model (GCM) for exoplanet atmospheres. Current version is 1.3.0, released in January 2025. The project is actively maintained on GitHub, with frequent releases adding new features such as two-stream radiative transfer, cubed-sphere remapping, and opacity implementations.

pip install paddle
error ModuleNotFoundError: No module named 'canoe'
cause The canoe GCM engine is a required dependency but not automatically installed by pip.
fix
Install canoe separately: 'pip install canoe' (or follow the canoe installation instructions at https://github.com/elijah-mullens/canoe)
error ImportError: cannot import name 'EarthAtmosphere' from 'paddle'
cause The class name might be different or the API changed in recent versions.
fix
Check the documentation for the correct class name. As of v1.3.0, use 'from paddle.atmosphere import EarthAtmosphere' if that is the correct class; otherwise use 'paddle.atmosphere.Earth()' depending on version.
error AttributeError: module 'paddle' has no attribute 'radiative_transfer'
cause This error typically occurs when using an older version (<1.2.14) that didn't have the radiative_transfer module.
fix
Upgrade paddle to >=1.2.14 via 'pip install --upgrade paddle'.
breaking Version 1.3.0 requires snapy2 >= 2.1.4. Older versions of snapy2 are incompatible and will cause import errors.
fix Upgrade snapy2 with 'pip install snapy2>=2.1.4' before installing or upgrading paddle.
gotcha The package name 'paddle' conflicts with the popular PaddlePaddle deep learning framework. Importing both in the same environment may cause namespace collisions.
fix Use virtual environments and avoid installing both packages simultaneously. If necessary, alias the import: import paddle as paddle_exo
deprecated The old two-stream radiative transfer implementation from v1.2.x is deprecated in favor of the new two-stream RT subroutines added in v1.2.14. The old API may be removed in a future release.
fix Migrate to the new radiative_transfer.two_stream module. See documentation for new function signatures.
breaking Starting from v1.3.0, the internal module 'paddle.internals' has been removed. Any code relying on it will break.
fix Replace internal imports with public APIs. If you need low-level access, use 'canoe' directly.

Import paddle and create an Earth atmosphere object. Running a simulation requires the canoe engine to be installed separately.

import paddle
from paddle import atmosphere

# Initialize a simple Earth-like atmosphere
atm = atmosphere.EarthAtmosphere()
print(atm)

# Run a basic simulation (requires canoe installed)
# result = atm.run(duration_days=10)
# print(result)